第三题的优化暴力 #include <iostream> #include <set> #include <string> #include <vector> #include <map> #include <algorithm> using namespace std; int no=1; map<string,int> mp; int get_n(string &s) {     if(mp.count(s)) return mp[s];     mp[s] = no++;     return mp[s]; } int stno; vector<vector<int>> vvs; vector<int> one; map<int,vector<int>> mpone; void get_va(int d) {     vvs.resize(d);     getchar();     for(int i=0;i<d;i++){         string tmp;         getline(cin,tmp);         while(tmp.size()) {             auto p = find(tmp.begin(),tmp.end(),',');             if(p==tmp.end()){                 int n=get_n(tmp); //                if(n==stno) one.push_back(i);                 if(mpone.count(n)) {                     mpone[n].push_back(i);                 }else{                     mpone[n]=vector<int>{i};                 }                 vvs[i].push_back(n);                 break;             }else{                 int pos = p-tmp.begin();                 string t =tmp.substr(0,pos);                 int n=get_n(t);                 if(mpone.count(n)) {                     mpone[n].push_back(i);                 }else{                     mpone[n]=vector<int>{i};                 }                 if(n==stno) one.push_back(i);                 vvs[i].push_back(n);                 tmp=tmp.substr(pos+1);             }         }     }     return ; } int main() {     string s;     int d;     cin>>s;     cin>>d;     stno = get_n(s);     get_va(d); //    for(auto v: mpone) { ////        for(auto n: v.second) cout<<n<<" ";cout<<endl; //    }     vector<bool> vst(no,false);     set<int> st;     for(auto v:mpone[stno]) {         for(int i : vvs[v]) {             st.insert(i);             vst[i] = true;         }     }     set<int> allk;     for(auto v: st) {         for(auto n:mpone[v]){             allk.insert(n);         }     }     for(auto n: allk) {         for(auto v: vvs[n]) {             vst[v] = true;         }     }     int ans = 0;     for(auto v: vst) {         if(v==true) {             ans++;         }     }     cout<<ans;     return 0;; }
点赞 评论

相关推荐

点赞 评论 收藏
分享
过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
牛客网
牛客企业服务