#交互,鸽笼原理#CF1776C Library game
题目
有一个长度为 \(m\) 的书架,以及 \(n\) 个长度 \(a_1,a_2,\dots,a_n\)
Alessia 和 Bernardo 从书架上取书。每次由 Alessia 选择一个之前没选过的 \(i\),
并选择一个长度为 \(a_i\) 的区间,需要保证这个区间内的书全都没有被取过。然后 Bernardo 从区间内任意拿走一本书。
Bernardo 的目标是让 Alessia 某一步没有区间可选。输出谁赢,并交互构造方案。
\(n\leq 100,m\leq 5000\)
分析
引理:Alessia获胜当且仅当 \(a\) 降序排序后不存在 \(a_i>\lfloor\frac{m}{i}\rfloor\)
因为如果不存在,那么根据鸽笼原理每次必有一个区间长度大于等于 \(\lfloor\frac{m}{i}\rfloor\),必可选
否则若 \(\exists k,a_k>\lfloor\frac{m}{k}\rfloor\),让区间长度为 \(a_{1\sim k}\) 的区间选择的位置为 \(a_k\) 的倍数,其它任选。
因为 \(k>\lfloor\frac{m}{a_k}\rfloor\),必有一个位置是重复的
代码
#include <cstdio>
#include <cctype>
#include <algorithm>
using namespace std;
const int N=5011;
int n,m,s[N],a[N],v[N],o;
int iut(){
int ans=0; char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans;
}
int main(){
n=iut(); m=iut();
for (int i=1;i<=n;++i) a[i]=iut();
sort(a+1,a+1+n),reverse(a+1,a+1+n);
for (int i=1;i<=n;++i)
if (a[i]>m/i){
o=a[i];
break;
}
if (!o){
printf("Alessia\n"),fflush(stdout);
for (int i=1;i<=n;++i){
for (int j=1;j<=m;++j) s[j]=s[j-1]+v[j];
for (int j=a[i];j<=m;++j)
if (s[j]==s[j-a[i]]){
printf("%d %d\n",a[i],j-a[i]+1);
fflush(stdout);
break;
}
v[iut()]=1;
}
}else{
printf("Bernardo\n"),fflush(stdout);
for (int i=1;i<=n;++i){
int len=iut(),l=iut();
if (len>=o) printf("%d\n",(l+o-1)/o*o);
else printf("%d\n",l);
fflush(stdout);
}
}
return 0;
}
#交互,鸽笼原理#CF1776C Library game的更多相关文章
- HDU 5762 Teacher Bo (鸽笼原理) 2016杭电多校联合第三场
题目:传送门. 题意:平面上有n个点,问是否存在四个点 (A,B,C,D)(A<B,C<D,A≠CorB≠D)使得AB的横纵坐标差的绝对值的和等于CD的横纵坐标差的绝对值的和,n<1 ...
- Gym 100851G Generators (vector+鸽笼原理)
Problem G. Generators Input file: generators.in Output file: generators.outLittle Roman is studying li ...
- POJ_1065_Wooden_Sticks_(动态规划,LIS+鸽笼原理)
描述 http://poj.org/problem?id=1065 木棍有重量 w 和长度 l 两种属性,要使 l 和 w 同时单调不降,否则切割机器就要停一次,问最少停多少次(开始时停一次). Wo ...
- poj 3370 鸽笼原理知识小结
中学就听说过抽屉原理,可惜一直没机会见识,现在这题有鸽笼原理的结论,但其实知不知道鸽笼原理都可以做 先总结一下鸽笼原理: 有n+1件或n+1件以上的物品要放到n个抽屉中,那么至少有一个抽屉里有两个或两 ...
- poj 2356鸽笼原理水题
关于鸽笼原理的知识看我写的另一篇博客 http://blog.csdn.net/u011026968/article/details/11564841 (需要说明的是,我写的代码在有答案时就输出结果了 ...
- UVA 10620 - A Flea on a Chessboard(鸽笼原理)
UVA 10620 - A Flea on a Chessboard 题目链接 题意:给定一个跳蚤位置和移动方向.如今在一个国际象棋棋盘上,左下角为黑格,一个格子为s*s,推断是否能移动到白格子.问要 ...
- atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97
atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参 ...
- CodeChef February Challenge 2018 Points Inside A Polygon (鸽笼原理)
题目链接 Points Inside A Polygon 题意 给定一个$n$个点的凸多边形,求出$[ \frac{n}{10}]\ $个凸多边形内的整点. 把$n$个点分成$4$类: 横坐标奇, ...
- 1393 0和1相等串 鸽笼原理 || 化简dp公式
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393 正解一眼看出来的应该是鸽笼原理.记录每个位置的前缀和,就是dp[i ...
- 基于Apache Thrift的公路涵洞数据交互实现原理
基于Apache Thrift的公路涵洞数据交互实现原理 Apache Thrift简介 Apache Thrift(以下简称为“Thrift”) 是 Facebook 实现的一种高效的.支持多种编程 ...
随机推荐
- win32-LPCSTR->String
#include <string> void makebox(LPCSTR name) { std::string res(name); res += " is X"; ...
- 6大数据类型之间的转换及数据在内存中的缓存机制----day03
1.自动类型转换 当2个不同类型的数据进行运算的时候,默认向更高精度转换 数据类型精度从低到高:bool < int < float <complex 1,1强制类型转换 # Nu ...
- 用virtualenv创建虚拟环境
步骤 1.打开终端cmd,直接输入命令pip install virtualenv,前提已经将pip加入到环境变量中了 2.在e盘创建一个专门用来装虚拟环境的文件夹,如django_web_env 3 ...
- 【LeetCode回溯算法#09】全排列,排列问题以及其中涉及的去重操作
全排列 力扣题目链接 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1, ...
- 第128篇:浏览器存储(cookie、webStorage、 IndexedDB)
好家伙,本篇为<JS高级程序设计>第二五章"浏览器存储"学习笔记 我们先来讲个故事 一个"薅羊毛"的故事 (qq.com) 概括一下,就是 有个人通 ...
- ThreadPoolExecutor和Executors的区别
Executors创建的线程有两类 newFixedThreadPool和newSingleThreadExecutor,队列数量弹性,创建的线程的队列最大值为INTEGER.max容易造成OOM n ...
- 自定义ConditionalOnXX注解(二)
一.前言 在之前的文章<自定义ConditionalOnXX注解>中,介绍了Conditional注解的实现原理和实现自定义Conditional注解的基础方法,但是有些场景我们需要用一个 ...
- linux服务器文件实时同步
linux服务器文件实时同步 1 背景说明 在做系统集群部署时,涉及到两个或多个服务器之间文件同步.在软件层面linux服务环境找到以下两种同步方式 利用linux NFS功能将网络共享文件挂载成本地 ...
- Glide源码解析三(注册组件)
转载请标明出处,维权必究: https://www.cnblogs.com/tangZH/p/12900387.html Glide源码解析一,初始化 Glide源码解析二-into方法 Glide源 ...
- Jmeter 之正则表达式的使用
1 背景及用途: html.json数据都可以转化为文本,提供给正则去提取,使用正则可以提取全部数据,这就是正则表达式非常强大的一点. html格式响应更适合用xpath提取,性能比正则好一点 jso ...