3 条题解

  • 3
    @ 2026-1-30 15:34:32
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int t;
        cin>>t;
        while(t--){
            int n;
            cin>>n;
            vector<string>a(n);
            for(int i=0;i<n;i++){
                cin>>a[i];
            }
            sort(a.begin(),a.end());
            string t="";
            for(int i=0;i<n;i++){
                t+=a[i];
            }
            int f=1;
            for(int i=1;i<t.size();i++){
                if(t[i-1]>t[i])
                    f=0;
            }
            cout<<f<<endl;
        }
        return 0;
    }
    
    • 1
      @ 2026-7-28 14:07:35

      #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; vectora(n); for(int i=0;i<n;i++){ cin>>a[i]; } sort(a.begin(),a.end()); string t=""; for(int i=0;i<n;i++){ t+=a[i]; } int f=1; for(int i=1;i<t.size();i++){ if(t[i-1]>t[i]) f=0; } cout<<f<<endl; } return 0; }

      • -1
        @ 2026-5-2 8:30:55
        #define LL long long
        using namespace std;
        int in[26];
        bool g[26][26];
        bool vis[26];
        vector<int> ord;
        
        bool dfs(int u){
            vis[u] = true;
            for(int v=0;v<26;v++){
                if(g[u][v]){
                    if(vis[v]) return false;
                    if(!dfs(v)) return false;
                }
            }
            ord.push_back(u);
            return true;
        }
        
        bool check(){
            memset(in,0,sizeof in);
            memset(g,0,sizeof g);
            memset(vis,0,sizeof vis);
            ord.clear();
            return true;
        }
        
        int main(){
            int T;
            cin>>T;
            while(T--){
                int n;
                cin>>n;
                vector<string> strs(n);
                for(int i=0;i<n;i++) cin>>strs[i];
                check();
                bool ok = true;
                for(int i=0;i<n&&ok;i++){
                    for(int j=i+1;j<n&&ok;j++){
                        int len = min(strs[i].size(), strs[j].size());
                        int k=0;
                        while(k<len&&strs[i][k]==strs[j][k]) k++;
                        if(k==len){
                            if(strs[i].size()>strs[j].size()) ok=false;
                        }else{
                            int u = strs[i][k]-'a';
                            int v = strs[j][k]-'a';
                            if(!g[u][v]){
                                g[u][v] = true;
                                in[v]++;
                            }
                        }
                    }
                }
                if(!ok){
                    cout<<"0"<<endl;
                    continue;
                }
                queue<int> q;
                for(int i=0;i<26;i++){
                    if(in[i]==0) q.push(i);
                }
                vector<int> res;
                while(!q.empty()){
                    int u = q.front();
                    q.pop();
                    res.push_back(u);
                    for(int v=0;v<26;v++){
                        if(g[u][v]){
                            in[v]--;
                            if(in[v]==0) q.push(v);
                        }
                    }
                }
                for(int i=0;i<26;i++){
                    if(in[i]>0){
                        ok=false;
                        break;
                    }
                }
                if(!ok){
                    cout<<"0"<<endl;
                    continue;
                }
                string t;
                for(auto s:strs) t += s;
                string sorted_t = t;
                sort(sorted_t.begin(), sorted_t.end());
                if(t == sorted_t){
                    cout<<"1"<<endl;
                }else{
                    bool flag = true;
                    for(int i=0;i<t.size()-1&&flag;i++){
                        if(t[i]>t[i+1]) flag=false;
                    }
                    cout<<(flag?"1":"0")<<endl;
                }
            }
            return 0;
        }
        //:)
        //114514
        
        

        你们的有我"简洁吗"

        • 1

        信息

        ID
        3246
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        递交数
        83
        已通过
        28
        上传者