poj 1818 ATP

时间:2022-09-24 13:02:33

ATP

题意:足球锦标赛使用二分的策略,每次淘汰剩下人的一半,并且数据表明:排名相差k(include)之内的运动员,胜负难料,否则排名前的必定战胜排名后的;问给定n(n = 2x, x∈N, n <= 5000),k可能成为冠军的最差排名为多少?

误区:认为可以利用k递推,这样最后一名可是有机会成为冠军的。。但是里面有一个限制条件,那就是足球赛的淘汰规则;每次淘汰一半,导致所有的比赛次数为log(n);这就没有给排名后的队员足够的场数来利用排名前的队员打败所有比他等级高的对手,所以这就导致了等级低的选手可能不能在规定的比赛次数的前提下获得冠军;

思路:贪心+二分(等级就是排名)

贪心:每一个选手,如果每次都能打败他所能打败的最强的对手(这名对手必须没有出局),那么他最终获得冠军的可能就越大。同时这也给后面等级低成为冠军创造了机会;直接枚举标记即可;

二分:如果等级为i的选手有可能,那么前面的选手一定是可以的,所以只需要向后搜索即可;二分的基础

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
#include<cmath>
#include<stdlib.h>
#include<time.h>
#include<stack>
#include<set>
using namespace std;
#define rep0(i,l,r) for(int i = (l);i < (r);i++)
#define rep1(i,l,r) for(int i = (l);i <= (r);i++)
#define rep_0(i,r,l) for(int i = (r);i > (l);i--)
#define rep_1(i,r,l) for(int i = (r);i >= (l);i--)
#define MS0(a) memset(a,0,sizeof(a))
#define MS1(a) memset(a,-1,sizeof(a))
#define inf 0x3f3f3f3f
#define lson l, m, rt << 1
#define rson m+1, r, rt << 1|1
typedef __int64 ll;
template<typename T>
void read1(T &m)
{
T x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
m = x*f;
}
template<typename T>
void read2(T &a,T &b){read1(a);read1(b);}
template<typename T>
void read3(T &a,T &b,T &c){read1(a);read1(b);read1(c);}
template<typename T>
void out(T a)
{
if(a>) out(a/);
putchar(a%+'');
}
int stk[],vis[],kase,k;
bool judge(int id)
{
MS0(vis);
int top = ;
stk[top++] = id;
rep1(i,,kase){
int last = top;
rep0(j,,last){
for(int q = max(,stk[j] - k);q < id;q++)
if(vis[q] == ){
stk[top++] = q;
vis[q] = ;
break;
}
}
}
return top == id;
}
int main()
{
int n,ans;
kase = ;
read2(n,k);
while((n & (<<kase)) == ) kase++;
int l = ,r = n;//[l,r]中的值都是可选的
while(l <= r){
int mid = l + r >> ;
if(judge(mid)) ans = mid,l = mid + ;
else r = mid - ;//**
}
out(ans);
puts("");
return ;
}

poj 1818 ATP的更多相关文章

  1. POJ 3100 &amp&semi;amp&semi; ZOJ 2818 &amp&semi;amp&semi; HDU 2740 Root of the Problem&lpar;数学&rpar;

    题目链接: POJ:id=3100" style="font-size:18px">http://poj.org/problem? id=3100 ZOJ:http ...

  2. poj 1696 叉积理解

    Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3967   Accepted: 2489 Descrip ...

  3. POJ 3370&period; Halloween treats 抽屉原理 &sol; 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  4. POJ 2356&period; Find a multiple 抽屉原理 &sol; 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  5. POJ 2965&period; The Pilots Brothers&&num;39&semi; refrigerator 枚举or爆搜or分治

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22286 ...

  6. POJ 1753&period; Flip Game 枚举or爆搜&plus;位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

  7. POJ 3254&period; Corn Fields 状态压缩DP &lpar;入门级&rpar;

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9806   Accepted: 5185 Descr ...

  8. POJ 2739&period; Sum of Consecutive Prime Numbers

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20050 ...

  9. POJ 2255&period; Tree Recovery

    Tree Recovery Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11939   Accepted: 7493 De ...

随机推荐

  1. JDK结构介绍

    dt.jar和tools.jar位于:{Java_Home}/lib/下, 而rt.jar位于:{Java_Home}/jre/lib/下, 其中: (1) rt.jar是JAVA基础类库,也就是你在 ...

  2. 【Linux】Shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  3. IE10 下兼容性问题

    昨天在IE10下遇到这样一个问题 用jquery 获取textarea里的值 其中内容这里包含HTML  用$("#Id").val().$("#Id").ht ...

  4. &lbrack;反汇编练习&rsqb; 160个CrackMe之006

    [反汇编练习] 160个CrackMe之006. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  5. jquery&lowbar;EasyUI的学习

    1 Accordion(可折叠标签) 1.1 实例 1.1.1 代码 <html> <head> <meta http-equiv="Content-Type& ...

  6. 在 Parallels Desktop 中,全屏模式使用 Win7,唤醒时黑屏

    在Parallels Desktop中,全屏模式下使用Win7,如果Mac电脑自动休眠了,则无法再次唤醒了,唤醒时黑屏. 博主的Mac是2014款MBPR,键盘上所有的键都试过,还是无法唤醒电脑,每次 ...

  7. 老李分享:Uber究竟是用什么开发语言? 2

    Uber的任务分派系统是运行在Node上,这是一个运行在服务器端的JavaScript平台.当一个客户打开app或者网站来进行车辆预定或者调用其他的API来查看可用车辆信息的时候,大部分的这些服务都是 ...

  8. element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)

    来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...

  9. 27、 jq 拖拽

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. hadoop的块

    http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html http://www.cnblogs.com/cloudma/articles/had ...