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

规则去玩三国杀就理解了

纯模拟

注意的点:有已经分出胜负但还在杀的情况出现,所以要每次杀操作前判断是否分出胜负,如果已经分出胜负了就continue,不用接着往下操作

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std ;
int n ;
typedef struct L{
char js[] ;
int al ;
int esc ;
int sc ;
}L ;
L kk[] ;
int pk ;
int bjnj,wnj ;
int ok()
{
int f= ;
int cntfz= ;
int cntnj= ;
int cntzc= ;
for(int i= ;i<n ;i++)
{
if(!strcmp(kk[i].js,"ZG"))
{
if(kk[i].al)
f= ;
}
if(!strcmp(kk[i].js,"FZ"))
{
if(kk[i].al)
cntfz++ ;
}
if(!strcmp(kk[i].js,"NJ"))
{
if(kk[i].al)
{
bjnj=i ;
cntnj++ ;
}
}
if(!strcmp(kk[i].js,"ZC"))
{
if(kk[i].al)
cntzc++ ;
}
}
if(!(cntzc+cntfz) && cntnj== && f)
{
pk= ;
wnj=bjnj ;
}
if(!(cntfz+cntnj))
{
if(pk)
{
kk[wnj].sc=n ;
}
for(int i= ;i<n ;i++)
{
if(!strcmp(kk[i].js,"ZG"))
kk[i].sc=+cntzc*+kk[i].esc ;
if(!strcmp(kk[i].js,"ZC"))
kk[i].sc=+cntzc+kk[i].esc ;
}
return ;
}
if(!f)
{
if(cntnj== && cntfz== && cntzc==)
{
for(int i= ;i<n ;i++)
if(!strcmp(kk[i].js,"ZG"))
kk[i].sc= ;
kk[wnj].sc=+n* ;
return ;
}
for(int i= ;i<n ;i++)
{
if(!strcmp(kk[i].js,"NJ"))
if(kk[i].al)
kk[i].sc= ;
if(!strcmp(kk[i].js,"FZ"))
kk[i].sc=cntfz*+kk[i].esc ;
}
return ;
}
return ;
}
int main()
{
int t ;
scanf("%d",&t) ;
while(t--)
{
int m ;
scanf("%d%d",&n,&m) ;
for(int i= ;i<n ;i++)
{
scanf("%s",kk[i].js) ;
kk[i].al= ;
kk[i].esc= ;
kk[i].sc= ;
}
pk= ;
for(int i= ;i<m ;i++)
{
int a,b ;
scanf("%d%d",&a,&b) ;
if(ok())
continue ;
kk[b].al= ;
if(!strcmp(kk[a].js,"FZ") && (!strcmp(kk[b].js,"ZG")))
{
kk[a].esc+= ;
}
if(!strcmp(kk[a].js,"FZ") && (!strcmp(kk[b].js,"ZC")))
{
kk[a].esc++ ;
}
if(!strcmp(kk[a].js,"FZ") && (!strcmp(kk[b].js,"NJ")))
{
kk[a].esc++ ;
}
if(!strcmp(kk[a].js,"ZG") && (!strcmp(kk[b].js,"FZ")))
{
kk[a].esc++ ;
}
if(!strcmp(kk[a].js,"ZG") && (!strcmp(kk[b].js,"NJ")))
{
kk[a].esc++ ;
}
if(!strcmp(kk[a].js,"ZC") && (!strcmp(kk[b].js,"FZ")))
{
kk[a].esc++ ;
}
if(!strcmp(kk[a].js,"ZC") && (!strcmp(kk[b].js,"NJ")))
{
kk[a].esc++ ;
}
}
ok() ;
for(int i= ;i<n ;i++)
{
if(!i)
printf("%d",kk[i].sc) ;
else
printf(" %d",kk[i].sc) ;
}
putchar('\n') ;
}
return ;
}

最新文章

  1. Codeforces Round #354 (Div. 2) ABCD
  2. 从vue1.0到vue2.0遇到的一些问题的记录
  3. 全球首发免费的MySql for Entity Framework Core
  4. [AJAX系列]$.get(url,[data],[fn],[type])
  5. OKhttp的封装(上)
  6. Correspondence / ˏkɔris&#39;pɔndәns / dictionary10-800.doc
  7. dos 加用户
  8. iOS的SandBox的结构研究
  9. Struts中的 saveToken的方法
  10. Linux系统下使用crontab添加计划任务的方法
  11. Mitmproxy首页、文档和下载 - 支持SSL的HTTP代理 - 开源中国社区
  12. Codeforces Round #315 (Div. 2)
  13. CentOS 6.0图解网络安装全过程
  14. oracle 查询前一小时、一天、一个月、一年的数据
  15. Linux命令之chown
  16. cocos2d-x游戏开发系列教程-坦克大战游戏关卡选择场景的编写下
  17. python3 re正则匹配数据获取案例
  18. python_如何通过实例方法名字调用方法?
  19. Python: 你不知道的 super
  20. PHP生成当前月份包括最近12个月内的月份

热门文章

  1. iOS开发进阶 - 基于PhotoKit的图片选择器
  2. 采用OpenReplicator解析MySQL binlog
  3. du df 磁盘命令
  4. Linux服务器上ftp的搭建和使用
  5. 记jsp判断
  6. maven(一)maven自带的插件
  7. 2017 beijing icpc E - Rikka with Competition
  8. HDU5299 圆的扫描线 &amp;&amp; 树上删边博弈
  9. java classloader原理深究
  10. 转:在Eclipse的Debug页签中设置虚拟机参数