码迷,mamicode.com
首页 > 其他好文 > 详细

list

时间:2016-04-10 00:56:54      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

list

uva,127

前面见过几次类似的模型了。似乎输入输出差不多形式。

考虑vector或list里面放stack。因为这道题目只涉及到随机访问,所以vector相对要快一点。

因为每次其左边的第一个或第三个与其与其匹配时,就把它放在左一或左三上。有木有压栈的感觉~~

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <vector>
 5 #include <stack>
 6 
 7 using namespace std;
 8 
 9 struct Node
10 {
11     char value;
12     char suit;  //char value[2];
13 };
14 
15 int match(Node x,Node y)
16 {
17     if(x.value==y.value || x.suit==y.suit)
18         return 1;
19     return 0;
20 }
21 
22 
23 
24 int main()
25 {
26     vector<stack<Node> > vr;
27     char v,s;       //Node s;
28     while(cin>>v && v!=#)  //cin>>s.value && strcmp(s.value,"#");
29     {
30         cin>>s;
31         stack<Node> sk;
32         sk.push((Node){v,s}); //sk.push(s);
33         vr.push_back(sk);
34         int i;
35         if(vr.size()==52)
36         {  while(true)
37             {
38                 for(i=0;i!=vr.size();i++)
39             {
40                 if(i>=3 && match(vr[i].top(),vr[i-3].top()))
41                 {
42                     vr[i-3].push(vr[i].top());
43                     vr[i].pop();
44                     break;
45                 }
46                 
47                 if(i>=1 && match(vr[i].top(),vr[i-1].top()))
48                    {
49                        vr[i-1].push(vr[i].top());
50                        vr[i].pop();
51                        break;
52                    }
53             }
54             if(i==vr.size()) break;
55             else if(vr[i].empty())
56                 vr.erase(vr.begin()+i);
57             }
58             cout<<vr.size()<<(vr.size()==1?" pile remaining:":" piles remaining:");
59             for(i=0;i<vr.size();i++)
60                 cout<< <<vr[i].size();
61             cout<<endl;
62             vr.clear();
63           }
64         
65     }
66     return 0;
67 }    
View Code

 

list

标签:

原文地址:http://www.cnblogs.com/do-it-best/p/5373024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!