【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 ...
随机推荐
- [Angular] Advanced DI
In this post, we are going to see how to solve one design pattern challenge. The challenge is what w ...
- oralce sql 创建指定时间段内的日历信息
-- Create table create table TEMP_CALENDAR ( MONTH VARCHAR2(6), W_7 VARCHAR2(2), W_1 VARCH ...
- cxf调用WebService
一.用CXF调用WebService的几种方式,参考: http://cxf.apache.org/docs/how-do-i-develop-a-client.html 二.JaxWsProxyFa ...
- nginx FastCGI模块(FastCGI)配置
http://www.howtocn.org/nginx:nginx%E6%A8%A1%E5%9D%97%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E4%B8%AD%E6 ...
- 关于类和对象的进一步讨论 C++
如果一个类中所有成员函数都是公用的,则可以在定义对象时对数据成员进行初始化: class Time { public: hour; minute; sec; }; Time t1={14,15,23 ...
- C#关于XML的一些简单用法
关于XML文件的用法,本文简单介绍创建.读取和增删操作 . 1.创建有三种方法 (1)通过XmlDocument创建,然后分级添加子目录 XmlDocument doc = new XmlDocume ...
- 移动端的click事件延迟触发的原理是什么?如何解决这个问题?
移动端的click事件延迟触发的原理是什么?如何解决这个问题? 原理 :移动端屏幕双击会缩放页面 300ms延迟 会出现点透现象 在列表页面上创建一个弹出层,弹出层有个关闭的按钮,你点了这个按钮关闭弹 ...
- Super超级ERP系统---(7)货位管理
货位是ERP系统总的仓库管理中必不可少的,仓库是有货架组成,货架上的每个格子就是一个货位,所有货位上的商品的库存总和就是仓库商品的库存.仓库的货位主要分为货架和托盘,货架就是仓库的固定货位,托盘就是移 ...
- url 域名 主机名
1. url = 协议//主机名(包括服务器的计算机名+域名)/路径 https:// i. cnblogs.com /index.html .com是顶级域名,从右向左,每碰到一个".&q ...
- Android studio 隐藏toolbar上的app title
getSupportActionBar().setDisplayShowTitleEnabled(false);