CodeForces Round #280 (Div.2)
A. Vanya and Cubes
题意:
给你n个小方块,现在要搭一个金字塔,金字塔的第i层需要 个小方块,问这n个方块最多搭几层金字塔。
分析:
根据求和公式,有,按照规律直接加就行,直到超过n。
#include <cstdio> int main()
{
int n;
scanf("%d", &n);
int sum = , cnt = ;
while(n > sum)
{
cnt++;
sum += cnt * (cnt + ) / ;
}
if(sum > n) cnt--;
printf("%d\n", cnt); return ;
}
代码君
B. Vanya and Lanterns
题意:
有一条长为l的路,每个灯的坐标为ai(坐标原点为路的最左端),每个路灯照亮的范围为d,要求整条路都能被照亮,求d的最小值。
分析:
上来写个了二分,果断超时了。
换个思路:
对这n个路灯的位置排序
因为d要照亮整条路,所以要满足:
- 第一个路灯要照亮路的最左端,d至少为 a0
- 两个相邻路灯之间要被照亮,d至少为(ai - ai-1) / 2
- 最后一个路灯要照亮路的最右端,d至少为 l - an-1
要同时满足这些条件,取其中最大值即可。
#include <cstdio>
#include <algorithm> const int maxn = + ;
double a[maxn], l;
int n; int main()
{
scanf("%d%lf", &n, &l);
for(int i = ; i < n; ++i) scanf("%lf", &a[i]);
std::sort(a, a + n); double ans = a[] - ;
for(int i = ; i < n; ++i)
{
ans = std::max(ans, (a[i]-a[i-])/);
}
ans = std::max(ans, l - a[n-]);
printf("%.10f\n", ans); return ;
}
代码君
C. Vanya and Exams(贪心)
题意:
有n门科目满分为r,每门科目现有分数为ai,每提高该科目一分需要写bi篇文章。为了要使平均分不低于avg,求写文章的最少篇数。
分析:
很明显的贪心,计算出一个还需要提高的分数,在不超过满分的前提下先提高bi小的科目的分数。
#include <cstdio>
#include <algorithm> const int maxn = + ; typedef __int64 LL; struct Exam
{
LL a, b;
Exam(LL a=, LL b=):a(a), b(b) {}
bool operator < (const Exam& rhs) const
{
return b < rhs.b;
}
}exam[maxn]; int main()
{
LL n, r, avg, sum = ;
scanf("%I64d%I64d%I64d", &n, &r, &avg);
for(int i = ; i < n; ++i)
{
LL a, b;
scanf("%I64d%I64d", &a, &b);
sum += a;
exam[i] = Exam(a, b);
}
std::sort(exam, exam + n); LL ans = , p = ;
LL need = n * avg - sum;
while(need > )
{
if(exam[p].a == r) { p++; continue; }
LL temp = std::min(need, r - exam[p].a);
ans += temp * exam[p].b;
need -= temp;
p++;
}
printf("%I64d\n", ans); return ;
}
代码君
D. Vanya and Computer Game(数论)
题意:
题意没弄清,结果无限WA
有两个人每次对怪物造成1点伤害,怪物的血量为a。
他们两人的每秒攻击次数分别为x、y,而且攻击时间均匀分布在这1秒内
问打败该怪物时,是被谁打败的,还是同时被两个人打败的。
分析:
首先我们化小数为整数,不妨将1秒均匀分成xy份单位时间
则两人分别每隔y、x个单位时间攻击一次,对怪物造成1点伤害
我们得到两人每次攻击时间的序列
y, 2y, 3y,,,,,,
x, 2x, 3x,,,,,,
有序合并两个序列,我们就能知道怪物是被谁打到的。
可以用一个标记数组0、1、2来记录第i次攻击是第一个人、第二个人、两人同时发起的。
不难发现其实标记数组是循环的,所以只要求出其中一个循环节即可。
循环节长度为x/g + y/g,其中g = gcd(x, y),注意在两人同时发出攻击时,怪物是收到2点伤害的。
#include <cstdio> typedef __int64 LL;
const int maxn = + ;
char flag[maxn]; LL gcd(LL a, LL b)
{
LL r = a % b;
while(r)
{
a = b;
b = r;
r = a % b;
}
return b;
} int main(void)
{
//freopen("in.txt", "r", stdin);
LL n, x, y;
scanf("%I64d%I64d%I64d", &n, &x, &y);
LL g = gcd(x, y);
LL p = , q = , cnt = ;
while(p <= y/g || q <= x/g)
{
if(x*p < y*q)
{
p++;
flag[cnt++] = ;
}
else if(x*p > y*q)
{
q++;
flag[cnt++] = ;
}
else
{
p++;
q++;
flag[cnt++] = ;
}
}
flag[] = flag[cnt] = ; for(int i = ; i < n; ++i)
{
LL a;
scanf("%I64d", &a);
a %= cnt;
if(flag[a] == ) puts("Vova");
else if(flag[a] == ) puts("Vanya");
else puts("Both");
} return ;
}
代码君
CodeForces Round #280 (Div.2)的更多相关文章
- Codeforces Round #280 (Div. 2) E. Vanya and Field 数学
E. Vanya and Field Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/492/pr ...
- Codeforces Round #280 (Div. 2) D. Vanya and Computer Game 二分
D. Vanya and Computer Game Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contes ...
- Codeforces Round #280 (Div. 2) C. Vanya and Exams 贪心
C. Vanya and Exams Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/492/pr ...
- Codeforces Round #280 (Div. 2) A B C 暴力 水 贪心
A. Vanya and Cubes time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- Codeforces Round #280 (Div. 2)E Vanya and Field(简单题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud 本场题目都比较简单,故只写了E题. E. Vanya and Field Vany ...
- Codeforces Round #280 (Div. 2)_C. Vanya and Exams
C. Vanya and Exams time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- Codeforces Round #280 (Div. 2) E. Vanya and Field 思维题
E. Vanya and Field time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces Round #280 (Div. 2) D. Vanya and Computer Game 预处理
D. Vanya and Computer Game time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- Codeforces Round #280 (Div. 2) A. Vanya and Cubes 水题
A. Vanya and Cubes time limit per test 1 second memory limit per test 256 megabytes input standard i ...
随机推荐
- matlab和本机MySQL链接
1.安装好 ***matlab*** 和 ***mysql***: 2.[下载](http://dev.mysql.com/downloads/connector/j/#downloads) mysq ...
- BZOJ 1083: [SCOI2005]繁忙的都市 裸的最小生成树
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1083 代码: #include<iostream> #include< ...
- 【转发】SSH无密码登录的配置
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:http://cn.soulmachine.me/ 原文地址:http ...
- PHP7 扩展之自动化测试
在安装 PHP7 及各种扩展的过程中,如果你是用源码安装,会注意到在 make 成功之后总会有一句提示:Don't forget to run 'make test'. 这个 make test 就是 ...
- HDU 1695 GCD (容斥原理+欧拉函数)
题目链接 题意 : 从[a,b]中找一个x,[c,d]中找一个y,要求GCD(x,y)= k.求满足这样条件的(x,y)的对数.(3,5)和(5,3)视为一组样例 . 思路 :要求满足GCD(x,y) ...
- Eclipse 编译错误 Access restriction:The type *** is not accessible due to restriction on... 解决方案
报错: Access restriction:The type JPEGCodec is not accessible due to restriction on required library C ...
- Java运行系统命令并获取值(Process java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)
package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; ...
- iOS开发--网络下载
这里使用的是NSURLConnection的代理请求下载,并且是具有进度,UI能实时刷新,至于NSURLConnection如何请求.并且有几种请求方法请看NSURLConnection请求简介,在这 ...
- QT进度条QProgressBar的练习(定制QProgressBar,单独成为一个控件)
progressbar.h #ifndef PROGRESSBAR_H #define PROGRESSBAR_H #include <QProgressBar> class QStrin ...
- 项目SVN的IP地址发生变化时修改SVN为新的IP地址
在eclipse或者Myeclipse自带的svn:subclipse中修改ip地址 项目开发中有可能要修改SVN的IP地址,entries文件里面包含svn服务器的地址信息.每个文件夹都会产生一个e ...