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

UVA489 - Hangman Judge

时间:2021-05-24 09:13:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:can   idt   class   次数   man   print   sizeof   rgba   技术   

题意:

技术图片

 

 思路:

大体思路类似于今天上午写的那道题。一开始把题意搞错了,后来看了一下紫书的解析之后,原来是类似于在线处理那样,对于每一次猜想都要在线判断,如果已经猜完了并且赢了就不用再处理后面的了,如果猜的次数到了也不用处理后面的了。

注意判断的位置,是处理完之前判断还是处理完之后判断要搞清楚,不然就容易出错

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N = 26;
 4 bool st[N];
 5 int kase;
 6 
 7 bool is_win()
 8 {
 9     bool is_solve=true;
10         for(int i=0;i<26;i++)
11             if(st[i])
12             {
13                 is_solve=false;
14                 break;
15             }
16     return is_solve;
17 }
18 
19 int main()
20 {
21     while(scanf("%d",&kase),kase!=-1)
22     {
23         printf("Round %d\n",kase);
24         memset(st,0,sizeof st);
25         string a,b;
26         int wa_cnt=0;
27         int win,lost;
28         win=lost=0;
29         cin>>a>>b;
30         for(int i=0;i<a.size();i++)
31         {
32             st[a[i]-a]=true;
33         }
34         for(int i=0;i<b.size();i++)
35         {        
36             if(st[b[i]-a]==false)
37             {
38                 wa_cnt++;
39             }
40             else st[b[i]-a]=false;
41             if(wa_cnt>=7)
42             {
43                 lost=1;
44                 break;
45             }
46             if(is_win())
47             {
48                 win=1;
49                 break;    
50             }
51         }
52         if(lost)puts("You lose.");
53         else if(win)puts("You win.");
54         else puts("You chickened out.");
55     }
56     return 0;
57 }

 

UVA489 - Hangman Judge

标签:can   idt   class   次数   man   print   sizeof   rgba   技术   

原文地址:https://www.cnblogs.com/kaoru1120/p/14768598.html

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