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. 何为K-邻近算法

    答:K-邻近算法,英文为K-nearest neighbor(KNN),就是计算要测试对象与k个样本对象之间的距离,通过距离的大小来对测试对象进行分类

  2. linux top 各个标识的含义 详解

        top之前一直都是一知半解,今天周末加班,我的工作已经完成,在等同事吃饭,就把这个写下来. 第一行: top - 20:42:47 up 57 days,  1:25,  4 users,  ...

  3. db2 函数、存储过程示例

    1.函数 --drop function getMaxDate; create FUNCTION getMaxDate (y int, m int ) returns date begin DECLA ...

  4. kylin入门到实战:入门

    版权申明:转载请注明出处.文章来源:http://bigdataer.net/?p=292 排版乱?请移步原文获得更好的阅读体验 1.概述 kylin是一款开源的分布式数据分析工具,基于hadoop之 ...

  5. java.lang.IllegalArgumentException的解决方法

    java.lang.IllegalArgumentException这个错误基本上就是jdk版本的问题 把jdk1.8换成jdk1.7就可以了 这里可以设置jdk最低版本 这里默认要选择jdk1.7 ...

  6. codeforces 484B - LubaAndTicket - 贪心

    2017-08-22 10:54:00 writer:pprp 题意如下: 给你6个数组,你的操作可以是更改某一位的数字成为0-9之间任意一个数,要求前三个数字的和与后三个数字的和相等. 问你最少用几 ...

  7. ThinkPHP开发笔记-用户登录注册

    1.修改模块配置,Application/当前模块名/Conf/config.php <?php return array( //数据库配置信息 'DB_TYPE' => 'mysql', ...

  8. nginx 开启rewrite thinkcmf

    server{ ... 省略 location / { index index.php index.html index.htm; #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则 if ...

  9. nyoj139——康托展开

    我排第几个 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说 ...

  10. python:小乌龟turtle

    turtle的意思是乌龟,也是python中自带的图形函数,使用turtle的方法也很形象,就好像在画布上有一个小乌龟(在画布上是一个箭头),然后你可以让它动来动去,它经过的地方就被留下了记号. 例如 ...