BNU 三国杀
来源:互联网 发布:手机淘宝旺信在哪里 编辑:程序博客网 时间:2024/06/08 17:29
《三国杀》是一款热门的桌上游戏,融合了西方类似游戏的特点,并结合中国三国时期背景,以身份为线索,以卡牌为形式,集合历史、文学、美术等元素于一身。
相信很多人都玩过这款游戏,在此只对此问题做简单介绍:
【杀】
出牌阶段,攻击范围内对除自己以外的一名角色使用,效果是对该角色造成1点伤害。
攻击范围是1。(当计算距离 D ≤ 1 时,可以使用【杀】)
【马】
- Num 【马】
当该角色出【杀】计算与其他角色的距离时,始终 - Num。(可以理解为一种进攻上的优势)。
+ Num 【马】
当其他角色出【杀】计算与该角色距离时,始终 + Num。(可以理解为一种防御上的优势)。
(一角色最多装备一匹 - Num1 【马】 和 最多一匹 + Num2 【马】,可同时装备两种马。此处Num1 与 Num2 无关)
由于《三国杀》理论上来说是可以没有人数限制的,所以你叫了 N 个人一起来玩,大家坐成了一圈,逆时针依次编号 1到 N,现给出M 个操作,每个操作是以下两种之一:
"N1 S Num"——表示编号为N1 的玩家将要装备或替换一张【马】。
S 为 "+" 或 "-" ;
"K A B" ——表示A对B使用一张【杀】询问A 能否杀到B 。
能则输出 "Yes!" ,否则输出 "I'm sorry." 。
如图,赵云装备有一张 +1 【马】。
此时,赵云杀关羽时距离 D = 1 。而关羽想杀赵云时距离 D = 2 。
Input
第一行为T(1 ≤ T ≤ 10),表示测试数据组数。
每组数据第一行为两个整数N,M 。(2 ≤ N ≤ 1000 ,1 ≤ M ≤ 1000)
接下来有M 行,每一行格式为
"N1 S Num" (1 ≤ N1 ≤ N , S 为 "+" 或 "-" ,1 ≤ Num ≤ 100,N1和Num均为整数)
或 "K A B" (1 ≤ A,B ≤ N,A ≠ B,A、B都是整数)
假定游戏中无人阵亡。
Output
对于为每组数据,先输出一行 "Case #C:",C 对应数据组数,C 从1 到 T 。
对于每一个格式为 "K A B" 的操作,则输出 "Yes!" 或 "I'm sorry." 。
每组数据之后有一个空行。
Sample Input
2
3 1
K 1 3
5 4
K 1 3
K 1 2
1 - 1
K 1 4
Sample Output
Case #1:
Yes!
Case #2:
I'm sorry.
Yes!
Yes!
此题我只能用无语来表达我的心情了 !!一道简单地模拟题,理论上是很容易过的,不过此oj实在是变态!!
字符转化为数字,是给判错的,用atoi瞬间就过了...花费我好长时间检查bug。现在贴ac代码。
#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>#include<cmath>using namespace std;#define abs(x) ((x)<0?0-(x):(x))int min(int a,int b){return a<b?a:b;}int main(){ int T,i,j,n,hash1[1010],hash2[1010],tt=1,m,a,b,x; char str[3]; cin>>T; while(T--) { printf("Case #%d:\n",tt++); scanf("%d%d",&n,&m); for(i=1;i<=n;i++){ hash1[i]=0; hash2[i]=0; } while(m--) { scanf("%s",str); if(str[0]!='K') { b=atoi(str);//将字符串转化为数字 scanf("%s%d",str,&x); if(str[0]=='-') hash1[b]=x; else hash2[b]=x; } else { scanf("%d%d",&a,&b); //cout<<dis<<" "<<hash1[a]<<endl; printf(hash1[a]+1>=hash2[b]+min(abs(a-b),n-abs(a-b))?"Yes!\n":"I'm sorry.\n"); } } cout<<endl; } return 0;}
- BNU 三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- BNU
- 树言树语:三国杀随想
- 三国杀日语说明
- 玩“三国杀”游戏
- 三国杀判定篇
- 三国杀技巧
- 三国杀技能总结
- 三国杀技巧
- 职场三国杀
- 三国杀技巧详解
- 三国杀最新台词
- CentOS 5.5下LVM的分区管理
- 简单DP
- 如何调试DX程序
- Elias Gamma Coding
- PhoneGap 插件简介
- BNU 三国杀
- 如何使用W7100A模拟I2C总线
- 海量数据处理之数据库索引
- dll 和lib的调用方式
- Apache配置详解(最好的APACHE配置教程)
- pythonchallenge--8
- javascript常用跳转代码
- 单链表
- DB2分页显示