poj 2491

    技术2022-05-20  67

         话说省赛选拔以后深感自己的STL技术不如人(和sleeoiforest教主差得牛远啊。。。TAT),所以找写和STL有关的题目做做。以下是个map的水题(但思想我还是参考了某神的才想到的。。。。),开两个map找映射即可,代码很好理解,不多说。

     

          以下是代码:

     

         

    #include<iostream> #include<string> #include<map> using namespace std; map<string,string> s; map<string,int> ss; int main() { string st[3],head,sa,sb; int i,j,k,n,t; cin>>n; for(i=1;i<=n;i++) { cin>>t; s.clear(); ss.clear(); head=""; for(j=0;j<t-1;j++) { cin>>sa>>sb; s[sa]=sb; ss[sa]++; ss[sb]++; } k=0; map<string,int>::iterator it; for(it=ss.begin();it!=ss.end();it++) { if((*it).second==1) st[k++]=(*it).first; } for(j=0;j<k;j++) { if(s[st[j]].size()!=0) head=st[j]; } cout<<"Scenario #"<<i<<":"<<endl<<head<<endl; while(s[head].size()!=0) { cout<<s[head]<<endl; head=s[head]; } cout<<endl; } return 0; }

     


    最新回复(0)