SRM 814 Div 1 ElectionFraudDiv1(250pt)

来源:互联网 发布:淘宝天猫客服怎么找 编辑:程序博客网 时间:2024/05/01 06:43

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;}


原创粉丝点击