剪刀石头布
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1246 Accepted Submission(s): 375
Problem Description
现有M个人一起玩剪刀石头布,以1-M编号,每人出一种,出过不再改变,但是我们并不知道它到底是哪一种。 (其中石头赢剪刀,剪刀赢布,布赢石头,一样则平)
裁判用两种说法对这M个人所构成的输赢关系进行描述:
一:"1 A B",表示第A个人和第B个人出的一样。
二:"2 A B",表示第A个人赢第B个人。
裁判对M个人,用以上两种说法,连说N句话,其中有真的、也有假的。
一句话出现以下情况,就是假话,否则就是真话。
1) 该句话与之前的某些真话冲突;
2) 该句话中A或B比M大;
3) 该句话表示A赢A。
请根据给定的M和N,输出假话数。
其中(1 <= M <= 10,000),(0 <= N <= 10,000)
裁判用两种说法对这M个人所构成的输赢关系进行描述:
一:"1 A B",表示第A个人和第B个人出的一样。
二:"2 A B",表示第A个人赢第B个人。
裁判对M个人,用以上两种说法,连说N句话,其中有真的、也有假的。
一句话出现以下情况,就是假话,否则就是真话。
1) 该句话与之前的某些真话冲突;
2) 该句话中A或B比M大;
3) 该句话表示A赢A。
请根据给定的M和N,输出假话数。
其中(1 <= M <= 10,000),(0 <= N <= 10,000)
Input
第1行是一个自然数K,代表有K组数据。
每组数据以一个空行分隔,其中每组数据的第1行是两个自然数M、N,以空格分开。
每组数据的第2行至N+1行,每行是三个自然数X,A,B,三个数之间用空格分开,X(1或2)表示说法的种类。
每组数据以一个空行分隔,其中每组数据的第1行是两个自然数M、N,以空格分开。
每组数据的第2行至N+1行,每行是三个自然数X,A,B,三个数之间用空格分开,X(1或2)表示说法的种类。
Output
每组数据对应一行,每行有一个整数,代表假话数。
Sample Input
3
43 11
1 4 3
2 3 3
1 4 1
1 4 4
2 3 3
1 2 2
2 1 4
1 1 1
2 1 4
2 3 4
2 3 2
66 9
2 3 1
2 4 4
2 1 2
2 4 3
2 4 2
2 2 3
1 3 2
1 2 1
1 1 1
6 7
2 3 7
2 1 2
2 4 4
1 2 1
1 3 2
1 2 3
2 1 3
Sample Output
5
4
3
携程员工运动会场地问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 821 Accepted Submission(s): 231
Problem Description
携程每年要举行员工运动会,现在需要搭建三角形的场地给运动员们自由活动。
现在有N (3 <= N <= 40)个栅栏段(每个栅栏长度Li (1 <= Li <= 40)),必须刚好用掉所有的栅栏拼成一个最大面积的三角形活动区域,
求这个最大面积。
现在有N (3 <= N <= 40)个栅栏段(每个栅栏长度Li (1 <= Li <= 40)),必须刚好用掉所有的栅栏拼成一个最大面积的三角形活动区域,
求这个最大面积。
Input
* 第一行: 整数 N ,表示有多少个栅栏
* 第 2..N+1行: 共N 行, 每行中包括一个整数, 表示 一个栅栏的长度.( 多个栅栏的长度可以出现相同).
* 第N+3行:第二组数据。
每组数据隔一空行,文件末尾以0结尾。
* 第 2..N+1行: 共N 行, 每行中包括一个整数, 表示 一个栅栏的长度.( 多个栅栏的长度可以出现相同).
* 第N+3行:第二组数据。
每组数据隔一空行,文件末尾以0结尾。
Output
每行输出一个截取后的整数,即最大面积乘以100后的整数。 如果无法构成,输出 -1。
Sample Input
5
1
1
3
3
4
5
12
37
1
4
3
0
Sample Output
692
-1
位图像素的颜色
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1299 Accepted Submission(s): 597
Problem Description
有一个在位图上画出矩形程序,一开始位图都被初始化为白色(RGB颜色表示为R=G=B=255)。该程序能够按照顺序绘出N个矩形。新绘制的矩形能够覆盖位图上原有的颜色。程序执行完毕后,需要查询M个点的颜色,输出这些点的RGB值。
每组数据都是在初始化后开始绘制。
每组数据都是在初始化后开始绘制。
Input
第一行包含参数N和M,分别表示矩形个数和需要查询的像素个数(1 ≤N, M≤ 1000 );
剩下N行每行包含7个参数x1, y1, x2, y2, r, g, b,表示绘制一个(x1,y1),(x2,y2)为顶点的矩形,填充颜色为RGB(r, g, b),其中x1≤x2, y1≤y2数据在整型范围;0≤ r,g,b ≤ 255;
最后M行分别包含参数X和Y,表示需要查询的像素位置。
如果某行N=M=0就表示输入结束。
剩下N行每行包含7个参数x1, y1, x2, y2, r, g, b,表示绘制一个(x1,y1),(x2,y2)为顶点的矩形,填充颜色为RGB(r, g, b),其中x1≤x2, y1≤y2数据在整型范围;0≤ r,g,b ≤ 255;
最后M行分别包含参数X和Y,表示需要查询的像素位置。
如果某行N=M=0就表示输入结束。
Output
对于每个用例,按行输出查询的像素的RGB值,每行包含3个整数,分别表示RGB值。
Sample Input
1 2
0 0 2 3 127 196 200
1 2
3 0
2 3
8 16 32 64 0 255 128
8 48 32 64 255 0 0
12 47
13 48
14 64
0 0
Sample Output
127 196 200
255 255 255
0 255 128
255 0 0
255 0 0
夺旗
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 411 Accepted Submission(s): 194
Problem Description
小时候玩过一种小游戏,夺旗。游戏规则:共有N组旗子,每组旗子数量已知,两个玩家轮流拔旗,每次只能选某一组,拔掉一定数量的旗子,至少需要拔一个,拔掉旗子之后,还可以将该组旗子中余下的任意多个旗子中任选几个放到其它的任意一组或几组里。一堆旗子被拔空后就不能再往此处插旗了。先无法拔旗的人为输者。
假设每次都是你先拔旗子,且每个player都足够聪明,现在给你旗子的组数、每组旗子的数量,请判断出你能否获胜。
例如:如果最开始有4组旗子,旗子个数分别为3 1 4 2,而你想决定要先拿走第三组旗子中的两个旗子,旗子个数变为3 1 2 2,然后他可以使旗子组达到的状态有以下几种:
3 1 2 2(不移动)
4 1 1 2(移动到第一组一个)
3 2 1 2(移动到第二组一个)
3 1 1 3(移动到第四组一个)
4 2 0 2(移动到第一组一个,第二组一个)
4 1 0 3(移动到第一组一个,第四组一个)
3 2 0 3(移动到第二组一个,第四组一个)
5 1 0 2(全部移动到第一组)
3 3 0 2(全部移动到第二组)
3 1 0 4(全部移动到最后)
假设每次都是你先拔旗子,且每个player都足够聪明,现在给你旗子的组数、每组旗子的数量,请判断出你能否获胜。
例如:如果最开始有4组旗子,旗子个数分别为3 1 4 2,而你想决定要先拿走第三组旗子中的两个旗子,旗子个数变为3 1 2 2,然后他可以使旗子组达到的状态有以下几种:
3 1 2 2(不移动)
4 1 1 2(移动到第一组一个)
3 2 1 2(移动到第二组一个)
3 1 1 3(移动到第四组一个)
4 2 0 2(移动到第一组一个,第二组一个)
4 1 0 3(移动到第一组一个,第四组一个)
3 2 0 3(移动到第二组一个,第四组一个)
5 1 0 2(全部移动到第一组)
3 3 0 2(全部移动到第二组)
3 1 0 4(全部移动到最后)
Input
可能有多组测试数据(测试数据组数不超过1000)
每组测试数据的第一行是一个整数,表示N(1<=N<=10)
第二行是N个整数分别表示该组旗子中旗子的数量。(每组旗子数目不超过100)
当输入的N为0时,表示输入结束输出对于每组测试数据。
每组测试数据的第一行是一个整数,表示N(1<=N<=10)
第二行是N个整数分别表示该组旗子中旗子的数量。(每组旗子数目不超过100)
当输入的N为0时,表示输入结束输出对于每组测试数据。
Output
Win表示你可以获胜,输出Lose表示你必然会败。
Sample Input
3
2 1 3
2
1 1
0
Sample Output
Win
Lose