CF 628A --- Tennis Tournament --- 水题
题目大意:给定n,b,p,其中n为进行比赛的人数,b为每场进行比赛的每一位运动员需要的水的数量,
p为整个赛程提供给每位运动员的毛巾数量,
每次在剩余的n人数中,挑选2^k=m(m <=n)个人进行比赛,剩余的n-m个人直接晋级,
直至只剩一人为止,问总共需要的水的数量和毛巾的数量
解题思路:毛巾数很简单: n*p即可
水的数量:1,2,4,8,16,32,64,128,256,512,提前打成一个表,
根据当前剩余的人数n在表中二分查找最大的小于等于n的数,结果即为本次进行比赛的人数,记为a[pos]
根据a[pos]计算相应的水的数量,并用n-a[pos]/2(淘汰人数)以进行下一轮的计算,直至n为1
/* CF 628A --- Tennis Tournament --- 水题 */
#include <cstdio>
#include <algorithm>
using namespace std; int a[] = { , , , , , , , , , }; //在a的{x,y)中查找小于等于key的第一个位置
int BinarySearch(int x, int y, int key){
while (x < y){
int mid = x + (y - x) / ;
if (a[mid] <= key && a[mid + ] > key){
return mid;
}
else if (a[mid] > key){
y = mid;
}
else{
x = mid+;
}
}
return -;
} int main()
{
#ifdef _LOCAL
freopen("D:input.txt", "r", stdin);
#endif
int n, b, p; while (scanf("%d%d%d", &n, &b, &p) == ){
int sum = ;
int t = n;
while (t != ){
//查找当前t个人需要多少人进行比赛
int pos = BinarySearch(, , t); //a[pos]即为比赛人数的 a[pos]/2为裁判数
sum += (a[pos] * b + a[pos] / );
t -= (a[pos] / ); //减去淘汰的a[pos]/2即为剩余人数
}
printf("%d %d\n", sum, n*p);
} return ;
}
CF 628A --- Tennis Tournament --- 水题的更多相关文章
- CF 628B New Skateboard --- 水题
CD 628B 题目大意:给定一个数字(<=3*10^5),判断其能被4整除的连续子串有多少个 解题思路:注意一个整除4的性质: 若bc能被4整除,则a1a2a3a4...anbc也一定能被4整 ...
- 一道cf水题再加两道紫薯题的感悟
. 遇到一个很大的数除以另一个数时,可以尝试把这个很大的数进行,素数因子分解. . 遇到多个数的乘积与另一个数的除法时,求是否能整除,可以先求每一个数与分母的最大公约数,最后若分母数字为1,则证明可整 ...
- Codeforces CF#628 Education 8 A. Tennis Tournament
A. Tennis Tournament time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 做了一道cf水题
被一道cf水题卡了半天的时间,主要原因时自己不熟悉c++stl库的函数,本来一个可以用库解决的问题,我用c语言模拟了那个函数半天,结果还超时了. 题意大概就是,给定n个数,查询k次,每次查询过后,输出 ...
- CF451C Predict Outcome of the Game 水题
Codeforces Round #258 (Div. 2) Predict Outcome of the Game C. Predict Outcome of the Game time limit ...
- Educational Codeforces Round 8 A. Tennis Tournament 暴力
A. Tennis Tournament 题目连接: http://www.codeforces.com/contest/628/problem/A Description A tennis tour ...
- CF451B Sort the Array 水题
Codeforces Round #258 (Div. 2) Sort the Array B. Sort the Array time limit per test 1 second memory ...
- Codeforces Round #334 (Div. 2) A. Uncowed Forces 水题
A. Uncowed Forces Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/604/pro ...
- SRM 584 第一次玩TopCoder。。。只水题一道。。。
第一次topcoder,以前老感觉没有资格去做tc,cf什么的,现在已经慢慢接触了. 感觉还可以,还是有让我们这些蒻菜安慰的水题. tc的确很好玩,用客户端比赛,还有各种规则,而且还是只编写一个类提交 ...
随机推荐
- 【树莓派】使用树莓派制作img镜像(一)
最近一直在折腾树莓派,前几天装了10台设备,最近又来了15台开发板子.基本每台设备都需要进行如下操作: 1.安装树莓派OS,并配置键盘.时区.语言编码格式等: 2.新增组.用户.配置静态IP地址: 3 ...
- XMLHttpRequest 加载进度
XMLHttpRequest 相关资料请移步这里直接查看,我这里就不在赘述: https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpReque ...
- [poj3321]Apple Tree(dfs序+树状数组)
Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 26762 Accepted: 7947 Descr ...
- DuiLib 自定义识别控件
遇到一个断点无法识别自定义的控件,运气比较好,一搜就搜出来了: 参考地址:http://www.bkjia.com/ASPjc/992050.html 主要是这个函数: CControlUI* CDi ...
- <a>每次点击都会让浏览器重新打开一个窗口问题
<a> 标签的 target 属性规定在何处打开链接文档.如果在一个 <a> 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的.名称与 ...
- vs2010 vc++ 统一修改所有工程的目录配置
vs2005和vs2008中都是通过 工具-选项-项目和解决方案-VC++目录,设置 头文件include .库文件lib.可执行文件dll的路径,以便在引用dll动态链接库文件时,可以查找到该文件的 ...
- python decorator的理解
一.decorator的作用 装饰器本质上是一个Python函数,可以让其他函数在不做任何代码变动的前提下增加额外功能. 装饰器的返回值也是一个函数对象.python里函数也是对象. 它经常用于有切面 ...
- CodeForces 166B (凸包)
求一个多边形是否完全在另一个凸多边形内. 乍一看,好像要判点在多边形内,但复杂度不允许,仔细一想,可以把两个多边形的点混起来求一个共同的凸包,如果共同的凸包依旧是原来凸包上的点,说明是. #inclu ...
- 程序设计入门——C语言 第5周编程练习 1高精度小数(10分)
1 高精度小数(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商,为了 ...
- linux之iptables
from http://www.geekfan.net/6921/ Iptables是专为Linux操作系统打造的极其灵活的防火墙工具.对Linux极客玩家和系统管理员来说,iptables非常有用. ...