Codeforces 735C:Tennis Championship(数学+贪心)
http://codeforces.com/problemset/problem/735/C
题意:有n个人打锦标赛,淘汰赛制度,即一个人和另一个人打,输的一方出局。问这n个人里面冠军最多能赢多少场,其中一个人和另一个人能打比赛当且仅当这两个人赢的局数相差不超过1。
思路:比赛的时候不会做..直接log2(n)交,果断错了。看题解:因为限制条件两个人能比赛当且仅当他们赢得局数相差不超过1,设F[x]为冠军赢x盘的时候需要的总人数,那么有这样的递推式:F[x] = F[x-1] + F[x-2].(其中x-1的人和x-2的人打一盘,赢的人是x-1,就可以变成x了)。就是斐波那契数列。初始的时候F[1] = 2, F[2] = 3。因为斐波那契递增的很快,在1e18里面数量不多,所以先打出一个表,然后二分查找 n >= F[x] 的x,就是最后的答案了。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
const int N = ; long long dp[N]; int main() {
long long n;
cin >> n;
dp[] = ; dp[] = ;
int r = ;
for( ; ; r++) {
dp[r] = dp[r-] + dp[r-];
if(dp[r] > 1e18) break;
}
int l = ;
while(l <= r) {
int mid = (l + r) >> ;
if(dp[mid] <= n) l = mid + ;
else r = mid - ;
}
printf("%d\n", r);
return ;
}
Codeforces 735C:Tennis Championship(数学+贪心)的更多相关文章
- codeforces 735C. Tennis Championship(贪心)
		题目链接 http://codeforces.com/contest/735/problem/C 题意:给你一个数n表示有几个人比赛问最多能赢几局,要求两个比赛的人得分不能相差超过1即得分为2的只能和 ... 
- codeforces 735C Tennis Championship(贪心+递推)
		Tennis Championship 题目链接:http://codeforces.com/problemset/problem/735/C ——每天在线,欢迎留言谈论. 题目大意: 给你一个 n ... 
- Educational Codeforces Round 20  C 数学/贪心/构造
		C. Maximal GCD time limit per test 1 second memory limit per test 256 megabytes input standard input ... 
- Codeforces Round #382 (Div. 2)C. Tennis Championship 动态规划
		C. Tennis Championship 题目链接 http://codeforces.com/contest/735/problem/C 题面 Famous Brazil city Rio de ... 
- Codeforces Round #382 (Div. 2) C. Tennis Championship 斐波那契
		C. Tennis Championship time limit per test 2 seconds memory limit per test 256 megabytes input stand ... 
- Codeforces Round #382 (Div. 2) C. Tennis Championship
		C. Tennis Championship time limit per test 2 seconds memory limit per test 256 megabytes input stand ... 
- C. Tennis Championship dp递推 || 找规律
		http://codeforces.com/contest/735/problem/C C. Tennis Championship time limit per test 2 seconds mem ... 
- Tennis Championship
		Tennis Championship time limit per test 2 seconds memory limit per test 256 megabytes input standard ... 
- Codeforces735C Tennis Championship                                                                                            2016-12-13 12:06             77人阅读              评论(0)              收藏
		C. Tennis Championship time limit per test 2 seconds memory limit per test 256 megabytes input stand ... 
- codeforces Gym 100338E 	Numbers (贪心,实现)
		题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ... 
随机推荐
- Java学习——基本数据类型
			Java两大数据类型 内置数据类型 引用数据类型 变量就是申请内存存储值,内存管理系统根据变量的类型分配相应的存储空间存储该类型的数据. 内置数据类型 8中基本类型(四个整数型,两个浮点型),一种字符 ... 
- PLSQL 的简单命令之五
			--1. 查询和Zlotkey相同部门的员工姓名和雇用日期 select a.last_name,a.hire_date ,b.department_name from employees a,dep ... 
- ks使用lvm分区,ks启动
			part /boot -fstype ext3 -size= part swap -size= part pv. -size= -grow volgroup vg_root pv. logvol / ... 
- Apache, Nginx获得nginx代理后的真实用户Ip
			Nginx 的反向代理设置 proxy_set_header X-Real-IP $remote_addr; apache可以设置日志格式将 %h替换为 %{X-Real-Ip}i 如: LogFo ... 
- MySQL复制-设置延迟复制
			mysql> stop slave ; Query OK, 0 rows affected (0.00 sec) mysql> change master to master_delay= ... 
- mongodb的连接和开启安全验证
			首先是启动mongodb a.打开cmd,cd进入mongodb的安装目录下的bin目录下面,执行 mongod --dbpath D:\MongoDBdata(数据存放的目录) 或者将mongodb ... 
- 新版mysql(mysql-5.7.12-winx64)安装
			之前安装了一个php集成运行环境的mysql,不太习惯,还是想弄一个原生的环境来进行学习.于是,卸载了php集成环境中的mysql. 计算机环境:win7 x64. 1.mysql-5.7.12-wi ... 
- PostgreSQL Monitor pg_view
			PostgreSQL Monitor pg_view https://github.com/zalando/pg_view Requirements Linux 2.6, python 2.6, ps ... 
- 数据库迁移之从oracle 到 MySQL
			方式一: 手动方式导入导出 手动的方式导入, 就是操作步骤会比较繁琐一些. 对Table 的结构和数据: 1. 使用 SQL Developer 把 oracle 的 table 的schema 和 ... 
- SQL between查询 范围查询
			--sal为员工工资 select * from emp; 
