Codeforces Round #700 (Div. 2) C. Searching Local Minimum 交互二分
传送门
题意: 给一个数组,让你找到a[i]<min(a[i+1],a[i−1])a[i]<min(a[i+1],a[i-1])a[i]<min(a[i+1],a[i−1])位置iii,每次询问iii可以得到a[i]a[i]a[i],最多询问100次,且a[0]=a[n+1]=+∞a[0]=a[n+1]=+∞a[0]=a[n+1]=+∞。
我们考虑假设我们知道了a[i]a[i]a[i]和a[i+1]a[i+1]a[i+1],如果a[i]<a[i+1]a[i]<a[i+1]a[i]<a[i+1],那么左边一定存在答案,否则右边一定存在答案,按照这个性质二分就好啦。
可以看下面的图理解一下,画出来了a[i]<a[i+1]a[i]<a[i+1]a[i]<a[i+1]的情况,可以发现两个点连起来延伸的话,因为左边有个边界挡着,所以一定会出现一个vvv字型的图案,vvv字型图案的拐角处就是答案啦。
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n;
int ans;int query(int x)
{printf("? %d\n",x); fflush(stdout);int val; scanf("%d",&val);return val;
}int main()
{// ios::sync_with_stdio(false);
// cin.tie(0);scanf("%d",&n);int l=1,r=n;while(l<r){int mid=l+r>>1;int a=query(mid),b=query(mid+1);if(a<b) r=mid;else l=mid+1;}printf("! %d\n",l);return 0;
}
/**/
Codeforces Round #700 (Div. 2) C. Searching Local Minimum 交互二分相关推荐
- Codeforces Round #700 (Div. 2) C. Searching Local Minimum(交互)
链接: C. Searching Local Minimum 题意: 给你一个大小为 n 排列 , 一次询问可以得到位置 i 的数,要求在不超过 100 次询问的条件下找到该排列的一个波谷,即找到位置 ...
- CodeForces - 1480C Searching Local Minimum(交互+二分)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的排列,需要找出一个"局部最小值",所谓"局部最小值"就是对于某个 iii 来说,满足 ai<ai− ...
- 1479A - Searching Local Minimum 交互,二分,2019 ccpc 哈尔滨 E 拓扑排序
1479A - Searching Local Minimum 交互,二分 找一个区间[l,r]始终满足a[l+1]>a[l]&&a[r]<a[r+1],然后不断缩小区间当 ...
- Codeforces Round #700 (Div. 1Div. 2)
Codeforces Round #700 (Div. 1&&Div. 2) 题号 题目 知识点 A Yet Another String Game 签到 B The Great He ...
- Codeforces Round #700 (Div. 2)A~D2解题报告
Codeforces Round #700 (Div. 2)A~D2解题报告 A Yet Another String Game 原题链接 http://codeforces.com/contest/ ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
- 构造图 Codeforces Round #236 (Div. 2) C. Searching for Graph
题目地址 1 /* 2 题意:要你构造一个有2n+p条边的图,使得,每一个含k个结点子图中,最多有2*k+p条边 3 水得可以啊,每个点向另外的点连通,只要不和自己连,不重边就可以,正好2*n+p就结 ...
- Codeforces Round 700 (Div. 2) B题 英雄杀怪兽
Codeforces Round 700 (Div. 2) B题 链接: https://codeforces.com/contest/1480/problem/B 大致意思: n组数据,每组数据的第 ...
- Codeforces Round #700 (Div. 2) A ~ E ,6题全,超高质量良心题解【每日亿题】2021/2/8
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Yet Another String Game B - The Great Hero C ...
最新文章
- php5.*.* iis 安装
- 【题解】SDOI2008莎拉公主的困惑
- leetcode 395. Longest Substring with At Least K Repeating Characters| 395. 至少有 K 个重复字符的最长子串(分治法)
- 单元格自适应宽度_Excel如何对表格进行自适应设置,方法很简单
- junit mockito_从工作中清除代码–使用JUnit 5,Mockito和AssertJ编写可执行规范
- roadhog不是内部或外部命令_git:git 不是内部或外部命令,也不是可运行的程序
- ARTS打卡计划第6周-REVIEW-超越编码的避免项目失败的软技能
- HTTP1.1/2.0与QUIC协议
- python- 属性 静态方法,类方法
- Day9--Python--函数入门
- AudKit AAX Converter for Mac 有声读物转换器
- 电影下载地址大集合,只要是电影就能找到
- Error running ...: No jdk for module
- 如何用WGDI进行共线性分析(中)
- 头歌java 实训 答案 代码 java入门
- 从实体密保卡到动态口令令牌
- matlab元胞带索引的数组,Matlab-元胞数组的索引
- 微信证据以及数据恢复删除记录恢复交易恢复
- unity语言如何切换成中文
- 用基础jQuery制作个性化留言板
热门文章
- mini2440:最简单的嵌入式linux驱动程序模块,mini2440:最简单的嵌入式Linux驱动程序模块 解决找不到mini2440……sample...
- 22岁少年破解史上最严重网络攻击,拯救全球互联网,三个月后却被FBI逮捕
- 为什么男性比女性死得更早,心疼一秒钟!
- 爱泼斯坦事件发酵,MIT师生发起抗议逼迫校长Rafael Reif辞职
- 荐书 | 攻克世纪难题,拒绝领取菲尔兹奖的孤独数学天才的一生
- clover 主题_Clover主题更换
- 小手拍拍机器人_幼儿园互动儿歌游戏,小朋友瞬间变听话!
- php 筛选数组,2020-07-24 php 通过数组键值对筛选数组
- 平流式初沉池贮砂斗计算_城市污水处理厂产泥量的计算
- java 根据客户端重定向_JavaWeb【1.4HttpServletResponse类、重定向】