【hpuoj】三国杀
来源:互联网 发布:浙江网站建设 seo 编辑:程序博客网 时间:2024/04/27 16:40
问题 I: 三国杀
时间限制: 1 Sec 内存限制: 128 MB提交: - 解决: - 状态
题目描述
《三国杀》是一款热门的桌上游戏,该游戏融合了西方类似游戏的特点,并结合中国三国时期背景,以身份为线索,以卡牌为形式,合纵连横,经过一轮一轮的谋略和动作获得最终的胜利。三国杀集合历史、文学、美术等元素于一身,在中国广受欢迎。
为了感受《三国杀》的魅力,KACA分析了游戏的流程。
游戏中的基础攻击卡牌是【杀】(出牌阶段,对攻击范围内除自己以外的一名角色使用,效果是对该角色造成1点伤害。)。
现在KACA假设了一种情况,现在有若干名玩家进行游戏,武将皆为白板,有若干条操作,KACA想知道操作后会产生什么结果。
已知攻击范围默认为1,相邻座位的玩家默认距离为1。
此外还有两种马具:
+h可使当其他角色出【杀】计算与该角色距离时,始终+h。
-h可使当该角色出【杀】计算与其他角色距离时,始终-h。
当然,一个角色最多只能装备一匹-h马和一匹+h马,若已有马具,再次装备同类型则会把之前的马具替换掉。
输入
多组测试数据。
第一行是两个数字n,m(2≤n≤1000,1≤m≤1000)分别代表玩家数量和操作次数。
下面m行有两种形式
1.某个玩家装备了一匹马,i P h(1≤i≤n,P为+或-,h(1≤h≤n)代表该马可提供的距离)
2.询问玩家A能否杀玩家B,K A B(K为一个字符,1≤A,B≤n)
输出
对于每组数据中的每次询问,若玩家A可以对玩家B出杀,则输出“No.# Can”,否则输出“No.# Cann't”,#代表A的编号。
样例输入
5 3K 1 31 - 1K 1 3
样例输出
No.1 Cann'tNo.1 Can
作为一个不玩三国杀的人,在某学长的科普下,理解错了三次题意;
花了一下午做这道并没有难度的题真是非常的……不知道该如何形容。
总之这类益智游戏,在下的智商可能真的有瓶颈。
//提醒一下注意三国杀是坐成一圈玩的
//玩游戏的人数可不是10人以内。
//一人能装备两种马具。(可能只有垃圾如我才读不懂题);
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){ int n,m; while(~scanf("%d%d",&n,&m)){ int flag1[1005]={0}; int flag2[1005]={0}; char s[5],v; int o,l; for(int i=0;i<m;i++){ getchar(); scanf("%s",s); int r,j; if(s[0]=='K') { scanf("%d%d",&r,&j); if(r==j)printf("No.%d Cann't\n",r); else{ if(r>j) l=min(r-j,n+j-r); else l=min(j-r,n+r-j); if(l+flag2[j]<=1+flag1[r])printf("No.%d Can\n",r); else printf("No.%d Cann't\n",r); } } else{ int k=strlen(s); int t=0; for(int b=0; b<k; b++) t=t*10+s[b]-'0'; getchar(); scanf("%c%d",&v,&o); if(v=='-') flag1[t]=o; else flag2[t]=o; } } } return 0;}
- 【hpuoj】三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- **【HPUOJ】
- 树言树语:三国杀随想
- 三国杀日语说明
- 玩“三国杀”游戏
- 三国杀判定篇
- 三国杀技巧
- 三国杀技能总结
- 三国杀技巧
- BNU 三国杀
- 职场三国杀
- 三国杀技巧详解
- Linux下VI方向键乱码
- js调用iframe内函数
- Boost::Python学习笔记
- [leetCode]118_Pascal's Triangle
- Modern C++ 变量声明与定义总结:auto,{},initializer_list与构造函数重载
- 【hpuoj】三国杀
- 欢迎使用CSDN-markdown编辑器
- 递归和迭代
- Dalvik虚拟机GC之 HeapBitmap ,GcMarkStack 与 CardTable
- 微信公众号授权及关注
- AFNetworking 3.0 源码解读(二)之 AFSecurityPolicy
- Android中ViewPager中Fragment被销毁问题
- 学习编程5个常见的疑问
- How to get method parameter names?