zoukankan      html  css  js  c++  java
  • 51nod 2523

    len=0 break

    len=1,f=0,ans++,保留前一行的v数组,即len不变;f=1,重新确定下一列中需要判哪一行(标记法),跟新v数组

    这题思路很清晰,但是写代码的时候弄错好几个变量,列和行写反,实际上要注意不能想当然的写变量!

    代码:

    #include<iostream>
    #include<cstdio>
    #include<vector>
    #include<string>
    #include<cstring>
    #define rep(i,a,b) for(int i=(a);i<(b);++i)
    using namespace std;
    #define maxn 200
    char s[maxn][maxn];
    int ans;
    vector<int>v;
    int main(){
        ans=0;
        int n,m;
        cin>>n;
        rep(i,0,n){
            scanf("%s",s[i]);
        }
        m=strlen(s[0]);
        rep(i,0,n){
            v.push_back(i);
        }
        int col=0;
        while(col<m){
            bool f=1;
            int len=v.size();
            //cout<<len<<endl;
            if(len==0){
                break;
            }
            rep(i,1,len){
                char x=s[v[i]][col];
                char y=s[v[i-1]][col];
                if(x<y)
                {
                    f=0;
                    //cout<<x<<" "<<y<<endl;
                    break;
                }
            }
            if(f){
                int tmp[maxn];
                rep(i,1,len){
                    char x=s[v[i]][col];
                    char y=s[v[i-1]][col];
                    if(x==y){
                        tmp[v[i]]=1;
                        tmp[v[i-1]]=1;
                    }
                }
                v.clear();
                rep(i,0,n){
                    if(tmp[i])
                    v.push_back(i);
                }
            }
            else ans++;
            col++;
    
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    204. 计数质数
    面试题 16.06. 最小差
    8. ubantu系统相关
    7. 理论
    6. 图像处理
    5.git
    4.Torch量化
    3.Torch优化工具
    2.DB算法及代码问题分析
    1. 显卡相关问题
  • 原文地址:https://www.cnblogs.com/pipitongkw1/p/10788196.html
Copyright © 2011-2022 走看看