c++ STL平常练习-7

 接上篇:

 

 

  
  
  
  
  1. int dis[101]; 
  2. bool iset[101]; 
  3. struct Node 
  4.     int nextNode; 
  5.     int cost; 
  6. }; 
  7. int main126() 
  8.     vector<Node> node[101]; 
  9.     int n,m; 
  10.     while(cin>>n>>m) 
  11.     { 
  12.         if(n==0 && m==0) break
  13.         int i,j; 
  14.         for(i=0; i<101; ++i) 
  15.         { 
  16.             node[i].clear(); 
  17.             dis[i] = 0XFFFFFFF; 
  18.             iset[i] = false
  19.         } 
  20.         for(i=0; i<m; ++i) 
  21.         { 
  22.             int a,b,c; 
  23.             cin>>a>>b>>c; 
  24.             Node no; 
  25.             no.nextNode = b; 
  26.             no.cost = c; 
  27.             node[a].push_back(no); 
  28.             no.nextNode = a;             
  29.             node[b].push_back(no); 
  30.         } 
  31.         int begin = 1; 
  32.         dis[begin] = 0; 
  33.         for(j=1; j<n; ++j) 
  34.         { 
  35.             iset[begin] = true
  36.             for(i=0; i<node[begin].size(); ++i)  //更新dis[]距离 
  37.             { 
  38.                 if(!iset[node[begin][i].nextNode] && (dis[begin] + node[begin][i].cost < dis[node[begin][i].nextNode])) 
  39.                 { 
  40.                     dis[node[begin][i].nextNode] = dis[begin] + node[begin][i].cost; 
  41.                 } 
  42.             } 
  43.             int min = 0XFFFFFFF;             
  44.             for(i=1; i<=n; ++i)     //找到最小距离的点 
  45.             { 
  46.                 if(!iset[i] && min > dis[i]) 
  47.                 { 
  48.                     min = dis[i]; 
  49.                     begin = i; 
  50.                 } 
  51.             } 
  52.         } 
  53.         cout<<dis[n]<<endl; 
  54.     } 
  55.  
  56.     return 0; 
  57.  
  58. struct Node2 
  59.     int nextNode,len,cost; 
  60. }; 
  61.  
  62. int main127() 
  63.     int n,m; 
  64.     while(cin>>n>>m) 
  65.     { 
  66.         vector<Node2> vn[101]; 
  67.         if(n==0 && m==0) 
  68.             break
  69.         int i,j ; 
  70.         for(i=0; i<m; ++i) 
  71.         { 
  72.             int a,b,d,p; 
  73.             cin>>a>>b>>d>>p; 
  74.             Node2 no; 
  75.             no.nextNode = b; 
  76.             no.len = d; 
  77.             no.cost = p; 
  78.             vn[a].push_back(no); 
  79.             no.nextNode = a; 
  80.             vn[b].push_back(no); 
  81.         } 
  82.   
  83.         int dis[101]; 
  84.         int cst[101]; 
  85.         bool iset[101]; 
  86.         for(i=0; i<101; ++i) 
  87.         { 
  88.             dis[i] = 0XFFFFFFF; 
  89.             iset[i] = false
  90.             cst[i] = 0; 
  91.         } 
  92.         int s,t; 
  93.         cin>>s>>t; 
  94.         dis[s] = 0;      
  95.          
  96.         for(j=1; j<n; ++j) 
  97.         { 
  98.             iset[s] = true
  99.             for(i=0; i<vn[s].size(); ++i) 
  100.             { 
  101.                 if(!iset[vn[s][i].nextNode] && (dis[s]+vn[s][i].len < dis[vn[s][i].nextNode] || (dis[s] + vn[s][i].len == dis[vn[s][i].nextNode] && cst[s] + vn[s][i].cost < cst[vn[s][i].nextNode]))) 
  102.                 { 
  103.                     dis[vn[s][i].nextNode] = dis[s] + vn[s][i].len; 
  104.                     cst[vn[s][i].nextNode] = cst[s] + vn[s][i].cost; 
  105.                 } 
  106.             } 
  107.  
  108.             int min = 0XFFFFFFF;         
  109.             for(i=1; i<=n; ++i) 
  110.             { 
  111.                 if(!iset[i] && min > dis[i]) 
  112.                 { 
  113.                     min = dis[i]; 
  114.                     s = i; 
  115.                 } 
  116.             } 
  117.         } 
  118.         cout<<dis[t]<<" "<<cst[t]<<endl; 
  119.     } 
  120.     return 0; 
  121.  
  122. int s3,n3,m3;  ///每个杯子的空体积 
  123.  
  124. struct Cup 
  125.     int ss,nn,mm; 
  126.     int t; 
  127.     Cup(int s1,int n1,int m1,int t1) 
  128.     { 
  129.         ss = s1;  nn = n1; mm = m1; t = t1;      
  130.     } 
  131. }; 
  132.  
  133.  
  134.  
  135. void AtoB3(int a,int &sa,int b,int &sb)    //把第一个杯子中的水倒入第二个杯子中 
  136.     if(b-sb >= sa) 
  137.     {        
  138.         sb = sb + sa; 
  139.         sa = 0;     //这两步不能颠倒 
  140.     }else 
  141.     { 
  142.         sa -= (b-sb); 
  143.         sb = b;      
  144.     } 
  145.  
  146. queue<Cup> qc; 
  147. bool mark4[101][101][101]; 
  148. int BFS3() 
  149. {    
  150.     while(!qc.empty()) 
  151.     { 
  152.         Cup cup = qc.front(); 
  153.         qc.pop(); 
  154.          
  155.     //  cout<<"Form : "<<cup.ss<<"  "<<cup.nn<<"  "<<cup.mm<<endl; 
  156.         int ss = cup.ss; 
  157.         int nn = cup.nn; 
  158.         int mm = cup.mm; 
  159.         mark4[ss][nn][mm] = true
  160.  
  161.         AtoB3(s3,ss,n3,nn);                 //s->n 
  162.     //  cout<<ss<<"  "<<nn<<"  "<<mm<<endl; 
  163.         if(!mark4[ss][nn][mm] )    //通过记录状态来确定是否添加新节点 
  164.         { 
  165.             qc.push(Cup(ss,nn,mm,cup.t+1)); 
  166.             mark4[ss][nn][mm] = true
  167.             if(ss == s3/2 && nn == s3/2) return cup.t +1 ; 
  168.             if(nn == s3/2 && mm == s3/2) return cup.t +1 ; 
  169.             if(ss == s3/2 && mm == s3/2) return cup.t +1 ; 
  170.         } 
  171.  
  172.         ss = cup.ss; 
  173.         nn = cup.nn; 
  174.         mm = cup.mm; 
  175. //      cout<<"Form : "<< ss<<"  "<< nn<<"  "<< mm<<endl; 
  176.         AtoB3(n3,nn,s3,ss);                 //n->s 
  177. //      cout<<ss<<"  "<<nn<<"  "<<mm<<endl; system("pause"); 
  178.         if(!mark4[ss][nn][mm] ) 
  179.         { 
  180.             qc.push(Cup(ss,nn,mm,cup.t+1)); 
  181.             mark4[ss][nn][mm] = true
  182.             if(ss == s3/2 && nn == s3/2) return cup.t +1 ; 
  183.             if(nn == s3/2 && mm == s3/2) return cup.t +1 ; 
  184.             if(ss == s3/2 && mm == s3/2) return cup.t +1 ; 
  185.         } 
  186.         ss = cup.ss; 
  187.         nn = cup.nn; 
  188.         mm = cup.mm; 
  189.         AtoB3(s3,ss,m3,mm);                 //s->m 
  190. //      cout<<ss<<"  "<<nn<<"  "<<mm<<endl; 
  191.         if(!mark4[ss][nn][mm] ) 
  192.         { 
  193.             qc.push(Cup(ss,nn,mm,cup.t+1)); 
  194.             mark4[ss][nn][mm] = true
  195.             if(ss == s3/2 && nn == s3/2) return cup.t +1 ; 
  196.             if(nn == s3/2 && mm == s3/2) return cup.t +1 ; 
  197.             if(ss == s3/2 && mm == s3/2) return cup.t +1 ; 
  198.         } 
  199.         ss = cup.ss; 
  200.         nn = cup.nn; 
  201.         mm = cup.mm; 
  202.         AtoB3(m3,mm,s3,ss);                 //m->s 
  203. //      cout<<ss<<"  "<<nn<<"  "<<mm<<endl; 
  204.         if(!mark4[ss][nn][mm] ) 
  205.         { 
  206.             qc.push(Cup(ss,nn,mm,cup.t+1)); 
  207.             mark4[ss][nn][mm] = true
  208.             if(ss == s3/2 && nn == s3/2) return cup.t +1 ; 
  209.             if(nn == s3/2 && mm == s3/2) return cup.t +1 ; 
  210.             if(ss == s3/2 && mm == s3/2) return cup.t +1 ; 
  211.         } 
  212.         ss = cup.ss; 
  213.         nn = cup.nn; 
  214.         mm = cup.mm; 
  215.         AtoB3(n3,nn,m3,mm);                 //n->m 
  216. //      cout<<ss<<"  "<<nn<<"  "<<mm<<endl; 
  217.         if(!mark4[ss][nn][mm] ) 
  218.         { 
  219.             qc.push(Cup(ss,nn,mm,cup.t+1)); 
  220.             mark4[ss][nn][mm] = true
  221.             if(ss == s3/2 && nn == s3/2) return cup.t +1 ; 
  222.             if(nn == s3/2 && mm == s3/2) return cup.t +1 ; 
  223.             if(ss == s3/2 && mm == s3/2) return cup.t +1 ; 
  224.         } 
  225.         ss = cup.ss; 
  226.         nn = cup.nn; 
  227.         mm = cup.mm; 
  228.         AtoB3(m3,mm,n3,nn);                 //m->n 
  229. //      cout<<ss<<"  "<<nn<<"  "<<mm<<endl;   
  230.         if(!mark4[ss][nn][mm] )                                
  231.         {   qc.push(Cup(ss,nn,mm,cup.t+1)); 
  232.         mark4[ss][nn][mm] = true
  233.             if(ss == s3/2 && nn == s3/2) return cup.t +1 ; 
  234.             if(nn == s3/2 && mm == s3/2) return cup.t +1 ; 
  235.             if(ss == s3/2 && mm == s3/2) return cup.t +1 ; 
  236.         } 
  237.     } 
  238.     return  -1; 
  239.  
  240. int main128() 
  241.  
  242.     while(cin>>s3>>n3>>m3) 
  243.     { 
  244.         if(s3==0 && n3==0 && m3==0) break
  245.         if(s3%2 != 0) 
  246.         {   cout<<"NO"<<endl; continue;} 
  247.         memset(mark4,false,sizeof(mark4)); 
  248.         while(!qc.empty()) qc.pop(); 
  249.         Cup cup(s3,0,0,0);       
  250.         qc.push(cup); 
  251.         int tmp = BFS3(); 
  252.         if(tmp == -1) cout<<"NO"<<endl; 
  253.         else 
  254.             cout<<tmp<<endl; 
  255.     } 
  256.  
  257.     return 0; 
  258.  
  259.  
  260. int circle[17]; 
  261. bool isEle[17]; 
  262. int size = 1; 
  263. int n4; 
  264. bool flag = false
  265. int ca = 1; 
  266. void prime_circle() 
  267.     if(size == n4) 
  268.     { 
  269.         if(isPrime(circle[1]+circle[size])) 
  270.         { 
  271.             if(flag) 
  272.             { 
  273.                 cout<<"Case "<<ca<<":"<<endl; 
  274.                 flag = false
  275.             } 
  276.             for(int i=1; i<=size; ++i) 
  277.                 cout<<circle[i]<<" "
  278.             cout<<endl; 
  279.         } 
  280.         return
  281.     } 
  282.     for(int i=1; i<=n4; ++i) 
  283.     { 
  284.         if(!isEle[i]) 
  285.         { 
  286.             if(isPrime(circle[size]+i)) 
  287.             { 
  288.                 circle[++size] = i; 
  289.                 isEle[i] = true
  290.              
  291.                 prime_circle(); 
  292.  
  293.                 --size; 
  294.                 isEle[i] = false
  295.             } 
  296.         } 
  297.     } 
  298.  
  299. int main129() 
  300. {        
  301.     circle[size] = 1; 
  302.     memset(isEle,false,sizeof(isEle)); 
  303.     isEle[1] = true
  304.     while(cin>>n4) 
  305.     { 
  306.         flag = true
  307.         prime_circle();  
  308.         ++ca; 
  309.         cout<<endl; 
  310.     } 
  311.  
  312.     return 0; 
  313.  
  314. int checks[101]; 
  315. int dp5[10000001]; 
  316. int main130() 
  317.     double dmount,n; 
  318.     int imount,size; 
  319.     while(cin>>dmount>>n && n) 
  320.     {    
  321.         for(int i=0; i<101; ++i) checks[i] = 0; 
  322.         imount = (int)(100*dmount); 
  323.         for(i=0; i<=imount; ++i) dp5[i] = 0; 
  324.         size = 0;        
  325.         while(n--) 
  326.         { 
  327.             bool flag = true
  328.             int m; 
  329.             cin>>m; 
  330.             for(int j=0; j<m; ++j) 
  331.             { 
  332.                 double dtmp; 
  333.                 char str[80]; 
  334.                 //scanf(" %c:%d",&ch,&dtmp);                 
  335.                 //cin>>ch>>":">>dtmp; 
  336.                 cin>>str; 
  337.                 int k=0; 
  338.                 while(str[k] == ' ') ++k; 
  339.                 char ch = str[k]; 
  340.                 k+=2; 
  341.                 dtmp = atof(str+k);  
  342.         //  cout<<"cout:  "<<ch<<" "<<dtmp<<endl; 
  343.                 if(ch != 'A' && ch != 'B' && ch != 'C'
  344.                 {   flag = false; } 
  345.                 else 
  346.                 { 
  347.                     if(dtmp <= 600) 
  348.                         checks[size] += (int)(dtmp*100); 
  349.                     else flag = false
  350.                 } 
  351.             } 
  352.  
  353.             if(flag) 
  354.             {                
  355.                 if(checks[size] <= 100000) 
  356.                     ++size; 
  357.             }             
  358.         } 
  359. //      for(i=0; i<size; ++i) 
  360. //          cout<<checks[i]<<endl; 
  361.         for(i=0; i<size; ++i) 
  362.         { 
  363.             for(int j=imount; j>=checks[i]; --j) 
  364.                 dp5[j] = max(dp5[j],dp5[j-checks[i]]+checks[i]); 
  365.         } 
  366.         cout<<fixed<<setprecision(2)<<((double)dp5[imount])/100<<endl; 
  367.     } 
  368.     return 0; 
  369.  
  370. int main131()  //获取所有字符子串的个数,利用映射 
  371.     string str; 
  372.     while(cin>>str) 
  373.     { 
  374.         map<string,int> msi; 
  375.         for(int i=0; i<str.length(); ++i) 
  376.         { 
  377.             for(int j=1; j+i<=str.length(); ++j) 
  378.             { 
  379.                 string ss =  str.substr(i,j); 
  380.                 if(msi.find(ss) != msi.end()) 
  381.                     ++msi[ss]; 
  382.                 else msi[ss] = 1; 
  383.             } 
  384.         } 
  385.         map<string,int>::iterator b = msi.begin(); 
  386.         map<string,int>::iterator e = msi.end(); 
  387.         while(b!=e) 
  388.         { 
  389.             if(b->second > 1) 
  390.             { 
  391.                 cout<<b->first<<" "<<b->second<<endl; 
  392.             } 
  393.             ++b; 
  394.         } 
  395.     } 
  396.     return 0; 
  397.  
  398. void rol(char *str,int i) 
  399.     int len = strlen(str); 
  400.     str[len] = str[i]; 
  401.  
  402. int main132() 
  403.     int n; 
  404.     while(cin>>n) 
  405.     { 
  406.         while(n--) 
  407.         { 
  408.             char s1[33],s2[17]; 
  409.             for(int i=0; i<16; ++i)  
  410.             { 
  411.                 s1[i] = '0'
  412.                 s2[i] = '0'
  413.             } 
  414.             s2[16] = '\0'
  415.             while(i<33) s1[i++] = '\0'
  416.           
  417.             int a,b; 
  418.             cin>>a>>b; 
  419.             i=0; 
  420.             while(a) 
  421.             { 
  422.                 if(a & 0X8000)               
  423.                     s1[i] = '1';                     
  424.                 a <<= 1; 
  425.                 ++i; 
  426.             } 
  427.             i=0; 
  428.             while(b) 
  429.             { 
  430.                 if(b & 0X8000)               
  431.                     s2[i] = '1'
  432.                 b <<= 1; 
  433.                 ++i; 
  434.             } 
  435.     //      cout<<s1<<endl<<s2<<endl; 
  436.             for(i=0;i<15; ++i) 
  437.             { 
  438.                 if(strcmp(s1+i,s2) == 0) 
  439.                     break
  440.                 rol(s1,i); 
  441.             } 
  442.             if(i==15) 
  443.                 cout<<"NO"<<endl; 
  444.             else cout<<"YES"<<endl; 
  445.         } 
  446.     } 
  447.     return 0; 
  448.  
  449.  
  450. int dp6[101][101]; 
  451. int main140() 
  452.     char str1[80],str2[80]; 
  453.     while(cin>>str1+1>>str2+1) 
  454.     { 
  455.         int i,j ; 
  456.         for(i=0; i<101; ++i) 
  457.         {    
  458.             dp6[0][i] = 0; 
  459.             dp6[i][0] = 0; 
  460.         } 
  461.         int l1 = strlen(str1+1); 
  462.         int l2 = strlen(str2+1);  
  463.     //  cout<<l1<<"   "<<l2<<endl; 
  464.         for(i=1; i<=l1; ++i)       // 
  465.         { 
  466.             for(j=1; j<=l2; ++j) 
  467.             { 
  468.                 if(str1[i] == str2[j])               
  469.                     dp6[i][j] = 1+dp6[i-1][j-1]; 
  470.                 else                 
  471.                     dp6[i][j] = max(dp6[i-1][j],dp6[i][j-1]);                    
  472.             } 
  473.         } 
  474.         cout<<dp6[l1][l2]<<endl; 
  475.     } 
  476.     return 0; 
  477.  
  478. int main139() 
  479.     char str1[80],str2[80]; 
  480.     while(cin>>str1>>str2) 
  481.     { 
  482.         int l1 = strlen(str1); 
  483.         int l2 = strlen(str2); 
  484.         int i,j; 
  485.         for(i=0; i<101; ++i) 
  486.         { 
  487.             dp6[0][i] = 0; 
  488.             dp6[i][0] = 0; 
  489.         } 
  490.         for(i=1; i<=l1; ++i) 
  491.         { 
  492.             for(j=1; j<=l2; ++j) 
  493.             { 
  494.                 if(str1[i-1] == str2[j-1])               
  495.                     dp6[i][j] = dp6[i-1][j-1]+1; 
  496.                 else dp6[i][j] = max(dp6[i-1][j],dp6[i][j-1]); 
  497.             } 
  498.         } 
  499.          
  500.         cout<<dp6[l1][l2]<<endl; 
  501.     } 
  502.     return 0; 
  503.  
  504. /* 
  505. int main() 
  506. { 
  507.     int list6[101]; 
  508.     int i,j,n,k; 
  509.     while(cin>>n>>k) 
  510.     { 
  511.         for(i=0; i<101; ++i) 
  512.             dp6[0][i] = 0;        //此处的dp6[][]表示前j件东西的i件配对的最小值 
  513.         for(i=1; i<=n; ++i) 
  514.             cin>>list6[i]; 
  515.         sort(list6+1,list6+1+n); 
  516.         for(i=1; i<=k; ++i) 
  517.         { 
  518.             for(j=2*i; j<=n; ++j) 
  519.             { 
  520.                 if(j > 2*i) 
  521.                     dp6[i][j] = dp6[i][j-1];  //如j>2*i的话则表示最后两个可以或者不配对,则先赋值不配对 
  522.                 else dp6[i][j] = INF;           //如最后两个必须配对,那么就把其赋值无穷大 
  523.                 if(dp6[i][j] > dp6[i-1][j-2] + (list6[j]-list6[j-1]) * (list6[j]-list6[j-1])) 
  524.                     dp6[i][j] = dp6[i-1][j-2] + (list6[j]-list6[j-1])* (list6[j]-list6[j-1]); 
  525.             } 
  526.         } 
  527.         cout<<dp6[k][n]<<endl; 
  528.     } 
  529.  
  530.     return 0; 
  531. }*/ 
  532.  
  533. struct rice 
  534.     int price,weight; 
  535. }rices[101]; 
  536.  
  537. int size5; 
  538.  
  539. int main141()    //多重背包 
  540.     int C; 
  541.     int dp9[10001]; 
  542.     cin>>C; 
  543.     while(C--) 
  544.     { 
  545.         int n,m,i,j; 
  546.         cin>>n>>m;       
  547.         size5 = 1; 
  548.         int p,h,c,k; 
  549.         for(i=1; i<=m; ++i) 
  550.         {        
  551.             cin>>p>>h>>c;        
  552.             k=1;   
  553.             while(c-k>0)   //对物品进行分解 
  554.             { 
  555.                 rices[size5].price = p*k; 
  556.                 rices[size5].weight = h*k;               
  557.                 ++size5; 
  558.                 c -= k; 
  559.                 k*=2;                
  560.             }            
  561.             rices[size5].price = p*c;            
  562.             rices[size5].weight = h*c;           
  563.             ++size5;                 
  564.         } 
  565. //      for(i=1; i<size5; ++i) 
  566. //          cout<<rices[i].price<<"  "<<rices[i].weight<<endl; 
  567.  
  568.         for(i=0; i<10001; ++i) 
  569.             dp9[i] = 0; 
  570.  
  571.         for(i=1; i<size5; ++i) 
  572.         { 
  573.             for(j=n; j>=rices[i].price; --j) 
  574.             {  
  575.                 dp9[j] = max(dp9[j], dp9[j-rices[i].price] + rices[i].weight); 
  576.             } 
  577.         }    
  578.         cout<<dp9[n]<<endl; 
  579.     } 
  580.     return 0; 
  581.  
  582. bool check(bool que[9][9],int l,int c) 
  583. {    
  584.     int i; 
  585.     for(i=1; i<l; ++i)  //因为是按照行进行递归的所以函数里面此处判断列 
  586.     { 
  587.         if(que[i][c])        
  588.             return false;        
  589.     } 
  590.     for(i=1; i<l; ++i)          //此处判断斜线 
  591.     { 
  592.         for(int j=1; j<=8; ++j) 
  593.         { 
  594.             if(que[i][j]) 
  595.             { 
  596.                 if(abs(l-i) == abs(j-c)) 
  597.                     return false
  598.                 break
  599.             } 
  600.         } 
  601.     } 
  602.     return true
  603.  
  604. int cnt; 
  605.  
  606. void getqueue(bool que[9][9],int line) 
  607.     int i;   
  608.     for(i=1; i<=8; ++i)  //对行line循环列 
  609.     { 
  610.         if(check(que,line,i)) 
  611.         { 
  612.             if(line == 8)            
  613.                 ++cnt; 
  614.             else 
  615.             { 
  616.                 que[line][i] = true
  617.                 getqueue(que,line+1); 
  618.                 que[line][i] = false
  619.             } 
  620.         } 
  621.     } 
  622.  
  623. int main142() 
  624.     bool que[9][9]; 
  625.     memset(que,false,sizeof(que)); 
  626.     cnt = 0; 
  627.     getqueue(que,1); 
  628.     cout<<cnt<<endl;         
  629.     return 0; 
  630.  
  631. struct ch 
  632.     char c[26]; 
  633.     int index; 
  634. }; 
  635.  
  636.  
  637. int main() 
  638.     int n,m; 
  639.     map<char,ch>  mcc; 
  640.     cin>>n>>m; 
  641.     char str[4]; 
  642.     for(int i=0; i<n; ++i) 
  643.     {        
  644.         char c1,c2,c3; 
  645.         scanf("%s",&str); 
  646.         c1 = str[0]; 
  647.         c2 = str[1]; 
  648.         c3 = str[2]; 
  649.         if(mcc.find(c1) != mcc.end()) 
  650.         { 
  651.             if(c2 != '-'
  652.                 mcc.find(c1)->second.c[mcc.find(c1)->second.index++] = c2; 
  653.             if(c3 != '-'
  654.                 mcc.find(c1)->second.c[mcc.find(c1)->second.index++] = c3; 
  655.         }else 
  656.         { 
  657.             struct ch cc; 
  658.             cc.index=0; 
  659.             if(c2 != '-'
  660.                 cc.c[cc.index++] = c2; 
  661.             if(c3 != '-'
  662.                 cc.c[cc.index++] = c3; 
  663.             mcc[c1] = cc; 
  664.         } 
  665.     } 
  666. /*      map<char,ch>::iterator b = mcc.begin(); 
  667.         map<char,ch>::iterator e = mcc.end(); 
  668.         while(b!=e) 
  669.         { 
  670.             cout<<b->first<<"  :"; 
  671.             for(int j=0; j<b->second.index; ++j) 
  672.                 cout<<b->second.c[j]<<" "; 
  673.             ++b; 
  674.         } 
  675.         cout<<endl; 
  676. */ 
  677.         for(i=1; i<=m; ++i) 
  678.         { 
  679.             cin>>str; 
  680.             char c1=str[0],c2=str[1]; 
  681.              
  682.         } 
  683.      
  684.     return 0; 

 

你可能感兴趣的:(C++,算法,STL)