【题目链接】:http://codeforces.com/contest/807/problem/D

【题意】



给出n个人的比赛信息;

5道题

每道题,或是没被解决->用-1表示;

或者给出解题的所用的时间;

(每道题的分数与解决率有关,越高,分越低);

然后有个人想利用这个特点,注册很多个账号;

试图改变每道题的解决率,以期让自己的分数大于某个人;

如果这个人没有解决某道题的话;

那些新加入的人也不能解决那道题.

问最少需要注册多少个账号才能让你的分数大于某个人;

【题解】



顺序枚举加入了多少个人->k;

对于自己做得快的题,让这道题的解决率变低,让这题更有价值,即这k个人都没做对;

对于自己做得慢的题,让这道题的解决率变高,让这题价值变得低一点,即这k个人都做对了这题;

当然,对于你自己都没做对的题,你只能让他们都做不对这题啦



【Number Of WA】



1



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 120+20; int n,solves[6],a[N][6],tsolves[6]; int cal(int time,int ac,int tot)
{
if (time==-1) return 0;
if (2*ac>tot) return 2*(250-time);
if (4*ac>tot) return 4*(250-time);
if (8*ac>tot) return 6*(250-time);
if (16*ac>tot) return 8*(250-time);
if (32*ac>tot) return 10*(250-time);
return 12*(250-time);
} bool check(int k)//k是枚举的添加的cheater参赛选手个数
{
rep1(i,1,5) tsolves[i] = solves[i];
rep1(i,1,5)
{
if (a[1][i]!=-1)//需要先解决这个问题,新注册的账号才能提交正确的
{
if (a[2][i]==-1)
{
//keep the ratio
}
else
if (a[1][i]>a[2][i])//如果用的时间比较长,让这个题的AC率
//提高
{
tsolves[i]+=k;
}
}
}
int l = 0,r = 0;
rep1(i,1,5)
{
l+=cal(a[1][i],tsolves[i],n+k);
r+=cal(a[2][i],tsolves[i],n+k);
}
return l>r;
} int main()
{
//freopen("D:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
cin >> n;
rep1(i,1,n)
{
rep1(j,1,5)
{
cin >> a[i][j];
if (a[i][j]!=-1)
solves[j]++;
}
}
rep1(i,0,n*33)
{
if (check(i))
{
cout <<i <<endl;
return 0;
}
}
cout <<-1<<endl;
return 0;
}

【codeforces 807D】Dynamic Problem Scoring的更多相关文章

  1. 【codeforces 527D】Clique Problem

    [题目链接]:http://codeforces.com/contest/527/problem/D [题意] 一维线段上有n个点 每个点有坐标和权值两个域分别为xi,wi; 任意一对点(i,j) 如 ...

  2. 【codeforces 793C】Mice problem

    [题目链接]:http://codeforces.com/contest/793/problem/C [题意] 给你每个点x轴移动速度,y轴移动速度; 问你有没有某个时刻,所有的点都"严格& ...

  3. 【26.09%】【codeforces 579C】A Problem about Polyline

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  4. 【codeforces 749A】Bachgold Problem

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  5. codeforces 807 D. Dynamic Problem Scoring(贪心+思维)

    题目链接:http://codeforces.com/contest/807/problem/D 题意:对于动态计分的 Codeforces Round ,已知每题的 score 是根据 Round ...

  6. 【Codeforces 1096D】Easy Problem

    [链接] 我是链接,点我呀:) [题意] 让你将一个字符串删掉一些字符. 使得字符串中不包含子序列"hard" 删掉每个字符的代价已知为ai 让你求出代价最小的方法. [题解] 设 ...

  7. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) D - Dynamic Problem Scoring

    地址:http://codeforces.com/contest/807/problem/D 题目: D. Dynamic Problem Scoring time limit per test 2 ...

  8. Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring

    D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  9. AC日记——Dynamic Problem Scoring codeforces 807d

    Dynamic Problem Scoring 思路: 水题: 代码: #include <cstdio> #include <cstring> #include <io ...

随机推荐

  1. HDU 5358(2015多校联合训练赛第六场1006) First One (区间合并+常数优化)

    pid=5358">HDU 5358 题意: 求∑​i=1​n​​∑​j=i​n​​(⌊log​2​​S(i,j)⌋+1)∗(i+j). 思路: S(i,j) < 10^10 & ...

  2. 开启 J2EE(五)— Servlet之状态管理

    HTTP无状态协议 首先我们要知道: HTTP协议是无状态协议. 我们知道HTTP协议就是server通过Request从浏览器接收和Response向浏览器输出的这么一个过程(浏览器和server的 ...

  3. 零基础学python-2.24 一些经常使用函数

    今天我举一些经常使用的函数,让大家了解一下: 函数 作用 dir([obj]) 浏览对象的属性 help([obj]) 显示对象的文档字符串 ini([obj]) 将对象转为整形 len([obj]) ...

  4. Linux - vim的基本使用

    通过which指令来查看文件位置! [root@local ~]# which vim /usr/bin/vim [root@local ~]# which vi /usr/bin/vi [root@ ...

  5. vcpkg错误分析方法

    最近在使用vcpkg时,经常会碰到CMake错误. 有些以前能编译通过的包, 过一段时间又不能编译错误了. 错误提示一般是CMake错误, 弄得很郁闷. 我采用以下步骤解决了问题: 分析错误 查看错误 ...

  6. It Started With A Kiss

  7. 修改织梦plus目录名

    1.修改plus目录名 修改inlclude文件夹下common.inc.php 140行 //插件目录,这个目录是用于存放计数器.投票.评论等程序的必要动态程序 $cfg_plus_dir = $c ...

  8. 【Oracle】利用trace文件重建控制文件

    重建步骤: 1.生成trace文件: alter database backup controlfile to trace; 2.找到生成的trace文件: show parameter dump u ...

  9. 基于ACE的TAO开发---一个简单的入门实例-----VS2008(二)

    上一节已经说了如何编译idl文件.现在就用编好的文件来写一个最小的corba小程序的.程序分为服务器程序和客户端程序. 说明下,代码是<基于C++CORBA高级编程>一书中的例子. 1.首 ...

  10. C# switch 语句

    switch ("MySql") //选择语句 // case语句 成对 结束 执行到 第一个break { case "SqlServer2000": cas ...