A: DSKer的卡牌游戏

Posted Dicer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了A: DSKer的卡牌游戏相关的知识,希望对你有一定的参考价值。

题目链接:http://acm.xidian.edu.cn/problem.php?id=1310

  用栈模拟整个过程,我在开始的时候先往栈中压入了一个‘m’,用来和第一个压入的y或Y判断,方便代码与后面相同,也方便栈空是的操作(原因是不怎么熟悉stack,瞎J8想 了一个操作),模拟他的全过程就好,题目没有其他难点;

  还有就是清空栈,(虽然不知道为什么第一次没有清空栈也过了),但还是觉得应该清空栈;后面一题就因为没有清空队列卡了好久;

 1 #include<stdio.h>
 2 #include<stack>
 3 #include<string.h>
 4 
 5 using namespace std;
 6 
 7 char A[1005];
 8 stack<char> S1;
 9 char B[1005];
10 
11 void dfs(int len)
12 {
13     for(int i = 0;i < len;i++)
14     {
15         int top = S1.top();
16         if(A[i] == top && A[i] == y)
17             {
18                 S1.pop();
19                 A[i] = Y;
20                 i--;
21             }
22         else if(A[i] == top && A[i] == Y)
23             {
24                 S1.pop();
25             }
26         else
27             S1.push(A[i]);
28     }
29 }
30 
31 
32 
33 
34 int main()
35 {
36     while(scanf("%s",A) != EOF)
37     {
38         while(!S1.empty())            //清空栈 
39         S1.pop();
40     
41         S1.push(m);
42         dfs(strlen(A));
43         int k = 0;
44         while(S1.top() != m)        //将栈中数据去除放到一个数组中,正序输出 
45         {
46             B[k] = S1.top();
47             S1.pop();
48             k++;
49         }
50         for(int i = k - 1;i >= 0;i--)
51             printf("%c",B[i]);
52         printf("\n");
53     }
54     return 0;
55 } 

 

以上是关于A: DSKer的卡牌游戏的主要内容,如果未能解决你的问题,请参考以下文章

IOS游戏推荐再任性一次,再次全DLC体验这款超高评分的卡牌游戏,再不上车,可能就真的没有下一次了

100行代码教你写个卡牌翻翻乐小游戏

100行代码教你写个卡牌翻翻乐小游戏

100行代码教你写个卡牌翻翻乐小游戏

[usaco dec 15] 卡牌游戏 cardgame [贪心]

集训试题SiriusRen的卡牌 set