EOJ Monthly 2018.11 猜价格 (模拟)
分三种情况:
1.k=1。此时每次都说反话,反着二分即可。
2.1<k <= n。那么在前n次问答中一定会出现一次错误,通过不断输出1找出那个错误发生的位置(若回答是>那这就是错误)。此后每隔k次就会有一个错误发生,判断出来即可。
3.k > n。不能用上面的方式,否则回答次数会超过2n。因为k>n,所以在2n次问答中只会出现一个错误,所以通过每次输出两个同样的数,判断是否出现错误。当两次得到应答不一致时,就说明错误发生,再输出一个同样的数确定是非。此外便可以正常二分。
*清空缓冲区要用cin
#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
typedef long long LL;
LL n,k;
void gao1()
{
LL mid,L= 1, R= ((1LL)<<n)-1;
char c;
while(L<=R){
mid = L+(R-L)/2;
printf("%lld\n",mid);
cin>>c;
if(c== '=' ){
break;
}
else if(c== '<' ){
R = mid-1;
}
else{
L = mid+1;
}
}
}
void gao2()
{
int pos;
char c;
for(int i=1;i<=n;++i){
printf("1\n");
cin>>c;
if(c=='>'){
break;
}
}
LL mid,L= 1, R= ((1LL)<<n)-1;
int cnt = 1;
while(L<=R){
mid = L+(R-L)/2;
printf("%lld\n",mid);
cin>>c;
if(c=='=')
break;
else if(c=='<'){
if(cnt==k){
cnt = 0;
R = mid-1;
}
else L = mid+1;
}
else{
if(cnt==k){
cnt = 0;
L = mid+1;
}
else{
R = mid-1;
}
}
cnt++;
}
}
void gao3()
{
LL mid,L= 1, R= ((1LL)<<n)-1;
char c1,c2;
bool flag = true;
while(L <= R ){
mid = L+(R-L)/2;
printf("%lld\n",mid);
cin>>c1;
if(c1=='=')
break;
if(flag){
printf("%lld\n",mid);
cin>>c2;
if(c2=='=')
break;
if(c1!=c2){ //error
flag = false;
char c3;
printf("%lld\n",mid);
cin>>c3;
if(c1==c3){
if(c1=='<') L = mid+1;
else R = mid-1;
}
else{
if(c2=='<') L = mid+1;
else R = mid-1;
}
}
else{
if(c1=='<') L = mid+1;
else R = mid-1;
}
}
else{
if(c1=='<') L = mid + 1;
else R = mid - 1;
}
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int in;
scanf("%lld %lld",&n, &k);
if(n==1){
printf("1\n");
return 0;
}
if(k==1) gao1();
else if(k<=n) gao2();
else gao3();
return 0;
}
EOJ Monthly 2018.11 猜价格 (模拟)的更多相关文章
- EOJ Monthly 2018.11 D. 猜价格
猜价格 分两种情况讨论: k≤n,先猜至多 k 次 1,由于回答 <1 肯定是假的,所以可以把剩余系下是哪次错试出来,然后用至多 n 次搞定. k>n,每个数都猜两次,如果两次结果不一样, ...
- EOJ Monthly 2018.8 D. Delivery Service-树上差分(边权/边覆盖)(边权转点权)(模板题)
D. Delivery Service 单测试点时限: 2.5 秒 内存限制: 512 MB EOJ Delivery Service Company handles a massive amount ...
- EOJ Monthly 2018.7
准备继续大学acm啦 又要开始愉快的码码码啦 第一次在华东师大OJ上面做题 看来EOJ上的积分体质是假的,我怎么一把上红??? A.数三角形 神tm的防AK题放在A,出题人很不友好啊... 先写了个暴 ...
- EOJ Monthly 2018.3
985月赛我只喜欢ECNU.jpg A. 打工时不可能打工的 Time limit per test: 2.0 seconds Memory limit: 256 megabytes 我 Ayano ...
- EOJ Monthly 2018.4
A. ultmaster 的小迷妹们 Time limit per test: 2.0 seconds Memory limit: 256 megabytes ultmaster 男神和他的小迷妹们准 ...
- EOJ Monthly 2018.4 (E.小迷妹在哪儿(贪心&排序&背包)
ultmaster 男神和小迷妹们玩起了捉迷藏的游戏. 小迷妹们都希望自己被 ultmaster 男神发现,因此她们都把自己位置告诉了 ultmaster 男神,因此 ultmaster 男神知道了自 ...
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
- [EOJ Monthly 2018.10][C. 痛苦的 01 矩阵]
题目链接:C. 痛苦的 01 矩阵 题目大意:原题说的很清楚了,不需要简化_(:з」∠)_ 题解:设\(r_i\)为第\(i\)行中0的个数,\(c_j\)为第\(j\)列中0的个数,\(f_{i,j ...
- 【EOJ Monthly 2018.7】【D数蝌蚪】
https://acm.ecnu.edu.cn/contest/92/problem/D/ D. 数蝌蚪 Time limit per test: 2.0 seconds Memory limit: ...
随机推荐
- Artech的MVC4框架学习——第五章Model的绑定
第一Model绑定本质就是为目标Action方法生成参数列表的过程,参数数据存在于http请求.请求的 URL .消息报头或主体中. 第二aciton 参数的元数据通过 ParameterDescri ...
- MacOS 安装 nginx
brew install nginx 开机启动 $ sudo cp `brew --prefix nginx`/homebrew.mxcl.nginx.plist /Library/LaunchDae ...
- stopImmediatePropagation和stopPropagation (事件、防止侦听)
参考: ActionScript 3.0 Step By Step系列(六):学对象事件模型,从点击按扭开始 actionscript宝典 一.事件模型 egret中的事件模型和flash是一样的,但 ...
- 使用curl进行s3服务操作
最近使用curl对s3进行接口测试,本想写个总结文档,但没想到已有前辈写了,就直接搬过来做个记录吧,原文见: http://blog.csdn.net/ganggexiongqi/article/de ...
- mysql rowid实现
) a, b b表是数据表
- centos6.8升级python3.5.2
1.查看系统python版本 [root@myserver01 Python-]# python -V Python 2.升级3.5.2 A.下载:wget https://www.python.or ...
- OC开发_整理笔记——多线程之GCD
一.进程和线程 二.各种队列! 1.GCD:Grand Central Dispatch 2.串行队列(Serial) 你可以创建任意个数的串行队列,每个队列依次执行添加的任务,一个队列 ...
- tomcat启动后,页面浏览时报错 Unable to compile class for JSP的解决方案【原创】
问题描述: tomcat启动后,console正常,console中语句为: 信息: Server startup in 7291 ms 但浏览器访问首页面http://localhost:808 ...
- Linux 系统内核的调试
http://www.ibm.com/developerworks/cn/linux/l-kdb/index.html 本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟 ...
- OKEX API
本文介绍OKEX API Rest 开始使用 REST,即Representational State Transfer的缩写,是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方 ...