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 ;
}

HDU 3378的更多相关文章

  1. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  2. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  3. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  5. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  6. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  7. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  8. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  9. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

随机推荐

  1. chrome调试工具

    Chrome调试面板 Chrome 开发者工具是一套内置在Google Chrome中Web开发和调试工具.使用开发者工具来重演,调试和剖析您的网站.其中常用的有Elements(元素面板).Cons ...

  2. 【前端】Vue.js经典开源项目汇总

    Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...

  3. 无法读取服务器服务中的服务器队列性能数据。数据段的第一个四字节 (DWORD) 中包

    无法打开服务器服务性能对象.数据段的第一个四字节 (DWORD) 包含状态代码. 解决方法:修改注册表禁用PerfNet性能计数器. 具体方法:打开注册表,在HKEY_LOCAL_MACHINE\SY ...

  4. 创建Jmeter中使用的jar包中的工具类方法

    1. 在IDEA中新建一个maven工程. 2. 编写工具类方法,如加密算法.此处以加法为例. package DemoTest; public class DemoClass{ public int ...

  5. java 集合操作小结

    Map<String,String> m1=new HashMap<String,String>(); m1.put("zara", "name1 ...

  6. 决策树的剪枝,分类回归树CART

    决策树的剪枝 决策树为什么要剪枝?原因就是避免决策树“过拟合”样本.前面的算法生成的决策树非常的详细而庞大,每个属性都被详细地加以考虑,决策树的树叶节点所覆盖的训练样本都是“纯”的.因此用这个决策树来 ...

  7. Codeforces Round #241 (Div. 2) B. Art Union 基础dp

    B. Art Union time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  8. ionic serve 第一次可以访问,刷新报错解决方法

    想学习一下,在ionic start 新项目后, ionic serve 第一次可以访问是可以的, 可是刷新一下后就报错了,端口也没给占用, 网上找了半天也没找到问题所在, 最后研究了下: npm i ...

  9. IE类兼容一

    X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的.通过在meta中设置X-UA-Compatible的值,可以指定网页的兼容性模式设置. 在网页中指定的模式优 ...

  10. DRUID连接池的使用

    DRUID介绍    DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控 DB池连接和SQL的执行情况,可 ...