题目名称 2010. [USACO Mar10]星牛争霸
输入输出 starc.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 15
题目来源 Gravatarcstdio 于2015-07-03加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:12, 提交:33, 通过率:36.36%
Gravatarthomount 100 0.008 s 0.35 MiB C++
Gravatarmikumikumi 100 0.010 s 0.32 MiB C++
Gravatar炎帝 100 0.011 s 0.35 MiB C++
GravatarceerRep 100 0.011 s 0.38 MiB C++
Gravatarzhengtn03 100 0.012 s 0.55 MiB C++
GravatarFutureGazer 100 0.014 s 0.35 MiB C++
Gravatarcstdio 100 0.014 s 0.38 MiB C++
GravatarWang Yen Jen 100 0.037 s 0.38 MiB C++
Gravatarstdafx.h 100 0.048 s 0.40 MiB C++
Gravatar泪寒之雪 100 0.324 s 31.18 MiB C++
关于 星牛争霸 的近10条评论(全部评论)
就我一个人这么慢,尴尬死
Gravatar泪寒之雪
2017-07-09 14:50 3楼
线性规划做法,一定要记得初始化一个可行解!
GravatarFoolMike
2017-02-23 13:35 2楼
翻译个题目真累……(⊙﹏⊙)b
那个“<=100倍”的条件是得算上的……
解题报告:http://blog.csdn.net/wmdcstdio/article/details/46744225
Gravatarcstdio
2015-07-03 17:43 1楼

2010. [USACO Mar10]星牛争霸

★★★   输入文件:starc.in   输出文件:starc.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

星牛争霸2的beta版本上线了!Farmer John和Bessie正在测试这款游戏,在一对一对战中尝试使用不同的策略打败对方。星牛争霸2的游戏目标是在战斗中消灭敌人的军队。

每名玩家在战斗中拥有一支军队。一支军队包含多达三种不同类型的“单位”,它们各自的战斗力为正的实常数,不向玩家公布:战牛巡洋舰的战斗力为S1,圣牛武士的战斗力为S2,猛牛的战斗力为S3.玩家只知道,没有一种单位的战斗力是另一种单位的100倍以上。

一支军队的战斗力是其所有单位的战斗力之和。例如,一支拥有23艘战牛巡洋舰的军队战斗力为23*S1.

当两支军队互相攻击时,拥有较高总战斗力的一方将获胜。如果它们有着相等的战斗力,那么两名玩家中随机的一人获胜。

Farmer John和Bessie已经玩了N(0<=N<=300)局“测试对战”。在第i局对战中,Farmer John的军队有着J1_i艘战牛巡洋舰,J2_i个圣牛武士,J3_i个猛牛(0 <= J1_i + J2_i + J3_i <= 1000)。类似地,Bessie的军队有着B1_i艘战牛巡洋舰,B2_i个圣牛武士,B3_i个猛牛(0 <= B1_i + B2_i + B3_i <= 1000)。在他们对战后,Faremer John和Bessie用一个字符V_i记录下了获胜者:'J'代表Farmer John赢了这一局,'B'代表Bessie赢了这一局。

虽然这些胜负结果是他们仅有的信息,他们希望给定两支军队的单位组成后,预测一些战斗的结果。虽然,对于一些战斗,他们知道可能无法确切地预知胜者。

给定Farmer John和Bessie已玩过的N局测试对战信息,写出一个程序来确定M(1<=M<=2000)场新的比赛的胜者(如果可能的话)。

测试对战的结果信息是正确的:至少有一组战斗力值设置符合这些测试对战的结果。

为了演示这一过程,考虑几局测试对战,其中我们知道(但Farmer John和Bessie都不知道)S1=9.0,S2=7.0,S3=4.0:

 ---- Farmer John ----    ------- Bessie ------      战斗
   J1  J2  J3 J_战斗力       B1  B2  B3 B_战斗力      结果
    6   5   4    105         5   4   7    101          J
    5   4   2     81         3   5   5     82          B
    9   0  10    121         8   2   7    114          J

由这些结果,可以推断出如下两场战斗的胜负:

---- Farmer John ----    ------- Bessie ------       战斗
   J1  J2  J3 J_战斗力       B1  B2  B3 B_战斗力      结果
    6   6   4    112         5   4   7    101          J
              Farmer John的军队比第1局测试战斗中还要强
    9   0  10    121         8   2   6    110          J
              Bessie的军队比第3局测试战斗中还弱

【输入格式】

第1行:两个空格隔开的整数N和M。

第2..N+1行:第i+1行描述了一场战斗:一个代表胜者的字符,和六个代表单位数量的整数:V_i,J1_i,J2_i,J3_i,B1_i,B2_i和B3_i

第N+2..N+M+1行:第i+N+1行描述了一场新的战斗,有六个整数:J1_i,J2_i,J3_i,B1_i,B2_i和B3_i

【输出格式】

第1..M行:第i行输出第i场新战斗的结果:“J”代表Farmer John一定赢,“B”代表Bessie一定赢,“U”代表根据给定信息,无法确定谁赢。

【样例输入】

3 3

J 6 5 4 5 4 7

B 5 4 2 3 5 5

J 9 0 10 8 2 7

6 6 4 5 4 7

9 0 10 8 2 6

3 4 8 4 4 6

【样例输出】

J

J

U

【提示】

前两局对应于题目描述中给出的例子。最后一局的结果根据Farmer John和Bessie现有的信息无法确定。特别地,S_1=9.0,S_2=7.0,S_3=4.0和S_1=12.0,S_2=20.0,S_3=10.0都符合测试对战的结果,但当把这些战斗力值代入第三局新战斗时,它们将给出不同的结果。

【来源】

Jaehyun Park/KOI 2007, 2010