您的位置:首页 > 其它

SRM 814 Div 1 ElectionFraudDiv1(250pt)

2012-06-03 17:25 316 查看
2012/6/3

TopCoderSRM 814 Div One 250pt

给定若干人的选举得到的比率,求总投票人数的最小值

近似,精度

大意:对于一定的人数,根据“四舍五入”的规则,可以有一定的人数的范围,,注意前者要和0取较大值,一般程序中为枚举n<1000

问题:总的枚举的人数的上限是多少?

嘉哥说明了一个方向,如果能够证明对于n>1000存在的解,肯定可以通过n<1000,来得到,那么确实只要枚举n<1000的就可以了。

1/3

class ElectionFraudDiv1
{
public:
double max(double a, double b) {
if (a > b) return a; else return b;
}
int MinimumVoters(vector <int> percentages)
{
bool flag;
int t, sa, sb, a, b;

for (t = 1; t <= 10000; t++) {
flag = true;
sa = sb = 0;
EACH(p, percentages) {
a = int(max(0,ceil(t*(*p-0.5)/100)));
b = int(ceil(t*(*p+0.5)/100)-1);
if (a > b) { flag = false; break; }
sa += a; sb += b;
}
if (flag && sa <= t && t <= sb) return t;
}
return -1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: