思路:暴力,用vis标记数组实时记录一下之前的行i+1和上一行i否全相等,false表示全相等。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset((a),(b),sizeof(a)) char mp[105][105]; bool vis[105]={false}; int main() { ios::sync_with_stdio(false); cin.tie(0); int n,m; cin>>n>>m; for(int i=0;i<n;i++) { cin>>mp[i]; } int cnt=0; for(int j=0;j<m;j++) { bool f=true; for(int i=0;i<n;i++) { if(i+1<n&&!vis[i+1]) { if(mp[i+1][j]<mp[i][j]) { cnt++; f=false; break; } } } if(f) for(int i=0;i<n;i++) { if(i+1<n&&!vis[i+1]) { if(mp[i+1][j]>mp[i][j]) vis[i+1]=true; } } } cout<<cnt<<endl; return 0; }