文章

递增序列(2019国赛)

递增序列1.png递增序列2.png

直接暴力 注意要搜索五个方向

#include<bits/stdc++.h>
using namespace std;
string a[100];
int n=30,m=50;
int find(char key,int x,int y){
    int ans=0,i,j;
    for(i=1;x+i<n&&y+i<m;i++){
        if(a[x+i][y+i]>key) {
            ans++;
        }
    }
    for(i=1;x+i<n;i++){
        if(a[x+i][y]>key){
            ans++;
        } 
    }
    for(i=1;y+i<m;i++){
        if(a[x][y+i]>key) {
            ans++;
        }
    }
    for(i=1;x-i>=0&&y+i<m;i++){
        if(a[x-i][y+i]>key) {
            ans++;
        }
    }
    for(i=1;y-i>=0&&x+i<n;i++){
        if(a[x+i][y-i]>key) {
            ans++;
        }
    }
    return ans;
}
int main()
{
    int i,j,sum=0;
    for(i=0;i<30;i++){
        cin>>a[i];
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            sum+=find(a[i][j],i,j);
        }
    }
    cout<<sum<<endl;
    return 0;
}

原题链接

https://www.lanqiao.cn/problems/819/learning/

License:  CC BY 4.0