【codeforces 807D】Dynamic Problem Scoring
【题目链接】: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的更多相关文章
- 【codeforces 527D】Clique Problem
[题目链接]:http://codeforces.com/contest/527/problem/D [题意] 一维线段上有n个点 每个点有坐标和权值两个域分别为xi,wi; 任意一对点(i,j) 如 ...
- 【codeforces 793C】Mice problem
[题目链接]:http://codeforces.com/contest/793/problem/C [题意] 给你每个点x轴移动速度,y轴移动速度; 问你有没有某个时刻,所有的点都"严格& ...
- 【26.09%】【codeforces 579C】A Problem about Polyline
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【codeforces 749A】Bachgold Problem
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- codeforces 807 D. Dynamic Problem Scoring(贪心+思维)
题目链接:http://codeforces.com/contest/807/problem/D 题意:对于动态计分的 Codeforces Round ,已知每题的 score 是根据 Round ...
- 【Codeforces 1096D】Easy Problem
[链接] 我是链接,点我呀:) [题意] 让你将一个字符串删掉一些字符. 使得字符串中不包含子序列"hard" 删掉每个字符的代价已知为ai 让你求出代价最小的方法. [题解] 设 ...
- 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 ...
- 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 ...
- AC日记——Dynamic Problem Scoring codeforces 807d
Dynamic Problem Scoring 思路: 水题: 代码: #include <cstdio> #include <cstring> #include <io ...
随机推荐
- C语言学习笔记:15_c语言中的进制操作.c
/* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...
- Spring注解@RequestMapping请求路径映射问题
@RequestMapping请求路径映射,假设标注在某个controller的类级别上,则表明訪问此类路径下的方法都要加上其配置的路径.最经常使用是标注在方法上.表明哪个详细的方法来接受处理某次请求 ...
- Myeclipse快捷键备忘
1.编辑类 Ctrl+定义好的类名 链接到你定义好的类的窗口 Ctrl + / 为选中的一段代码加上或去掉注释符 // (必须选中代码块) Ctrl ...
- xml配置文件中的转义字符
https://stackoverflow.com/questions/14607920/the-character-breaks-passwords-that-are-stored-in-the-w ...
- ES shrink ——一般是结合rollover一起使用的,一开始没有看懂官方shrink文档,当看了这个之后就明白了
rollover Elasticsearch 从 5.0 开始,为日志场景的用户提供了一个很不错的接口,叫 rollover.其作用是:当某个别名指向的实际索引过大的时候,自动将别名指向下一个实际索引 ...
- Uva 11754(枚举+中国剩余定理)
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- web 端即时通讯
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
- 前端学习笔记-HTML(一)
- TensorFlow-LSTM序列预测
问题情境:已知某一天内到目前为止股票各个时刻的价格,预测接下来短时间内的价格变化. import tushare as ts import time from collections import n ...
- Android Studio复制项目 两个App之间不覆盖安装操作步骤
步骤一:修改包名 第五步注意:不能以数字等作为包名的开头. 步骤二:修改清单文件里面的包名 第八步注意:如果报红,从新引入新的包名下的Mainactivity类. 步骤三:修改Gradle Scrip ...