BNUOJ 34968 石头剪子布
来源:互联网 发布:我的淘宝网卖家中心 编辑:程序博客网 时间:2024/05/02 16:25
1000ms
1000ms
65536KB
64-bit integer IO format: %lld Java class name: Main
Mochavic很喜欢玩石头剪子布,某天他叫了一个小伙伴来和他玩。在玩之前他们约定好,两人总共玩N局。Mochavic总共只能出R1次石头,S1次剪刀,P1次布;他的小伙伴总共只能出R2次石头,S2次剪刀,P2次布(R1+S1+P1=R2+S2+P2=N)。如果某一局Mochavic获胜则他的得分+1,如果是平局则得分不变,如果输了得分-1。现在Mochavic想知道N局过后自己得分的最大值和最小值分别是多少。
Input
输入的第一行为一个整数T(T≤1000)表示数据组数。接下来T行每行6个非负整数R1,S1,P1,R2,S2,P2,(R1+S1+P1在int范围内,R1+S1+P1=R2+S2+P2)。
Output
对于每组数据输出两个数表示得分的最大值和最小值。
Sample Input
21 1 1 1 1 13 0 0 0 3 0
Sample Output
3 -33 3
这是一个看起来非常恐怖,但是想明白了之后就非常简单的题。
首先举个例子:
比如A出的石头剪刀布(依次,下同)为:4,5,6;B出的为5,6,4;
那么为了A赢得多,首先肯定尽量满足A赢。于是最开始得分为4+4+5=13分;
而这样下来之后,A还剩0,1,1;B还剩0,2,0;
这个时候很多人开始纠结到底怎么才扣分最少;
其实从这个例子我们就可以发现,无论怎样,A肯定平一局输一局,得分-1;
所以最后最多得分为12分;
最少得分只用求出B的最多得分,然后取负数就可以了。
代码如下:
#include <stdio.h>#include <fstream>#include <string.h>#include <iostream>#include <math.h>#include <algorithm>#include <vector>#include <map>#define PI acos(-1.0)#define M 1000005 //10^6#define eps 1e-8#define moo 1000000007using namespace std;//a>b>cint main(){ int a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,d1,d2,d3,d4,T; while(scanf("%d",&T)!=EOF) { while(T--) { scanf("%d%d%d",&a1,&b1,&c1); scanf("%d%d%d",&a2,&b2,&c2); a3=a1;a4=a2; b3=b1;b4=b2; c3=c1;c4=c2; int xans=0; int nans=0; xans=xans+min(a1,b2); if(a1>b2) { a1=a1-b2;b2=0; } else { b2=b2-a1;a1=0; } xans=xans+min(b1,c2); if(b1>c2) { b1=b1-c2;c2=0; } else { c2=c2-b1;b1=0; } xans=xans+min(c1,a2); if(c1>a2) { c1=c1-a2;a2=0; } else { a2=a2-c1;c1=0; } //3个选择语句,求出A尽可能多的赢的次数。 a2=max(a2-a1,0);b2=max(b2-b1,0);c2=max(c2-c1,0); //让A剩余的尽量平,不能平的就是输的。 xans=xans-a2-b2-c2; nans=nans+min(a3,c4); if(a3>c4) { a3=a3-c4; c4=0; } else { c4=c4-a3; a3=0; } nans=nans+min(b3,a4); if(b3>a4) { b3=b3-a4;a4=0; } else { a4=a4-b3;b3=0; } nans=nans+min(c3,b4); if(c3>b4) { c3=c3-b4;b4=0; } else { b4=b4-c3;c3=0; } a3=max(a3-a4,0);b3=max(b3-b4,0);c3=max(c3-c4,0); nans=nans-a3-b3-c3; //同上半部分,只不过反过来了。 nans=-nans; //注意这里的取负数 cout<<xans<<" "<<nans<<endl; } }}
0 0
- BNUOJ 34968 石头剪子布
- 石头剪子布
- 石头剪子布
- 1019:石头剪子布
- 1019:石头剪子布
- 1019:石头剪子布
- 1019:石头剪子布
- 1019:石头剪子布
- 石头剪子布
- Python---石头剪子布
- 石头剪子布
- 04:石头剪子布
- 4.石头剪子布
- 石头剪子布的游戏
- 石头、剪子、布游戏系统
- noi-7599-石头剪子布
- 1019——石头剪子布
- android简单石头剪子布游戏
- 控制台java编译成功,运行失败
- Hibernate笔记(一)
- Hibernate笔记(二)
- resize2fs 修改ext2 ext3文件系统的大小 (普通分区也可,或者解决inode不够的问题)
- 设计模式一日一练:适配器模式(Adapter)
- BNUOJ 34968 石头剪子布
- db2 db2ls命令
- 关于Matlab中符号运算的因式分解、展开与合并
- CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记)
- PreferenceActivity
- Mysql笔记(一)
- centos6.5安装图形界面
- Jdbc笔记(一)
- 而笋颐炙侣歼映会吵腥岳热