hdu 6008

http://acm.hdu.edu.cn/showproblem.php?pid=6008

题意:world final的入场券是由一个规则确定的,首先他会分配一个g(总的门票数),g = x+y,x代表给五个中国赛区分配的入场券的个数,y代表给国外的那个赛区分配的个数

在中国赛区的学校是由首先依次轮流选取1->5个赛区的第一名,第二名,第三名,直到x用完,也就是说如果1赛区第二名可以进final的话,那么1-5个赛区的第一名一定都可以进final

当然,每个学校只占用一个名额,那个国外赛区的就是选取前y名,这前y名也不包括已经拿到final门票的学校

 

 

思路:模拟

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <string>
 4 #include <iostream>
 5 #include <map>
 6 using namespace std;
 7 
 8 string str[10][100];
 9 string es[100];
10 string ans;
11 int a[1005];
12 map<string,int>s;
13 bool vis[1005];
14 int main()
15 {
16     int t;
17     int g;
18     int x,y;
19     int cnt,cut=1;
20     scanf("%d",&t);
21     while(t--)
22     {
23         memset(vis,false,sizeof(vis));
24         cnt = 0;
25         s.clear();
26         y = -1;
27         cin>>g>>ans;
28         s[ans] = cnt++;
29         for(int i = 1;i<=5;i++)
30             for(int j = 1;j<=20;j++)
31             {
32                 cin>>str[i][j];
33                 if(!s.count(str[i][j]))
34                     s[str[i][j]] = cnt++;
35             }
36         for(int i = 1;i<=20;i++){
37             cin>>es[i];
38             if(!s.count(es[i]))
39                 s[es[i]] = cnt++;
40         }
41         cnt = 0;
42         for(x = 0;x<=g;x++)
43         {
44             memset(vis,false,sizeof(vis));
45             cnt = 0;
46             bool lo = false,cy = false;
47             if(x>0)
48             {
49                 for(int i = 1;i<=20;i++)
50                 {
51                     for(int j = 1;j<=5;j++)
52                     {
53                         if(cnt>=x)
54                             break;
55                         if(!vis[s[str[j][i]]])
56                         {
57                             if(str[j][i]==ans)
58                                 lo = true;
59                             vis[s[str[j][i]]] = true;
60                             cnt++;
61                         }
62                     }
63                     if(cnt>=x)
64                         break;
65                 }
66             }
67             if(g-x>0)
68             {
69                 for(int j = 1;j<=20;j++)
70                 {
71                     if(cnt>=g)
72                         break;
73                     if(!vis[s[es[j]]])
74                     {
75                         if(es[j]==ans)
76                             cy = true;
77                         vis[s[es[j]]] =true;
78                         cnt++;
79                     }
80                 }
81             }
82             if(!lo&&!cy)
83                 y = g-x;
84         }
85         printf("Case #%d: ",cut++);
86         if(y==-1)
87             printf("ADVANCED!\n");
88         else
89             printf("%d\n",y);
90     }
91     return 0;
92 }

 

转载于:https://www.cnblogs.com/Tree-dream/p/7486444.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件介绍: 芯邦CBM2098主控U盘量产工具v6008,本版本更新日期2014-10-23能修修复那些扩容盘,支持的芯片有2098P/2098E/2098S/2096E/2093E使用本工具可以轻松制作出加密型U盘,及U盘启动盘,还能给U盘分区。20141023版本修改说明:相关优化:1. 针对部分Flash量产成功后拷贝碎文件速度慢的问题,有一定程度的改善2. 针对ToshibaA19nm TLC(6TDK/6TCK等)做了相应的优化,对开卡容量和对比有一定程度的改善3. 针对Hynix1xnm MLC(8T2E/8T2D等)做了相应的优化,对对比良率有一定的提升4. 针对部分16bit Flash做了相应的优化,对开卡良率和对比良率有一定的提升新增功能:1. 增加ToshibaA19nm TLC Flash提示46脚需要接地的功能2. 增加软件提示警告后,某些可以继续量产的Flash,使用不同颜色的字显示的功能3. 增加了对B85T的支持相关BUG修复:1. 修复了部分Hynix20nm MLC Flash量产失败的问题2. 修复了部分Toshiba D3ED3 Flash上盘慢和读速度慢的问题3. 修复了量产工具保存锁盘信息到本地时,“LocalLockPort”需要重启生效的问题4. 修复了量产工具检查46脚跳线有问题的情况下,点击刷新,会出现量产工具卡死的问题5. 修复了量产工具界面在某些Win7电脑上出现按钮区超出对话框范围6. 修复了制作自动播放盘时,拷贝大文件失败的BUG7. 修复“低格 保留SN"导致无法再WIN2000系统上盘的问8. 修复了多个一起上盘出现某些位置重叠的问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值