Codeforces 730B:Minimum and Maximum(交互式问题)
http://codeforces.com/problemset/problem/730/B
题意:一个交互式问题,给出一个n代表有n个数字,你可以问下标为x和y的数的大小,会给出">","<"或"=",要求询问次数不能超过
,最后输出最小的数和最大的数的下标。
思路:很新奇的题目。先将两两比较整理出一个max数组和min数组,这个时候前后较大的一个会在max数组中,较小的会在min数组中,这个时候询问了n/2次。接着我们只要对每个组进行比较,因为较大的已经在max数组里面了,我们只要递推求得较大的,同理,也可以递推求得较小的。最后的答案就是最后的组了。
记得每次printf之后要fflush(stdout)。
#include <bits/stdc++.h>
using namespace std;
int ma[], mi[]; int main() {
int t;
scanf("%d", &t);
while(t--) {
int n;
scanf("%d", &n);
char s[]; int cnt = ;
for(int i = ; i < n; i += , cnt++) {
printf("? %d %d\n", i, i + );
fflush(stdout);
scanf("%s", s);
if(s[] == '>') ma[cnt] = i, mi[cnt] = i + ;
else ma[cnt] = i + , mi[cnt] = i;
}
if(n & ) { ma[cnt] = n, mi[cnt] = n; cnt++; }
for(int i = ; i < cnt; i++) {
printf("? %d %d\n", ma[i-], ma[i]);
fflush(stdout);
scanf("%s", s);
if(s[] == '>') ma[i] = ma[i-];
printf("? %d %d\n", mi[i-], mi[i]);
fflush(stdout);
scanf("%s", s);
if(s[] == '<') mi[i] = mi[i-];
}
printf("! %d %d\n", mi[cnt-], ma[cnt-]);
fflush(stdout);
}
return ;
}
Codeforces 730B:Minimum and Maximum(交互式问题)的更多相关文章
- Codeforces Educational Codeforces Round 15 A. Maximum Increase
A. Maximum Increase time limit per test 1 second memory limit per test 256 megabytes input standard ...
- codeforces Round #440 B Maximum of Maximums of Minimums【思维/找规律】
B. Maximum of Maximums of Minimums time limit per test 1 second memory limit per test 256 megabytes ...
- Codeforces 1107G Vasya and Maximum Profit 线段树最大子段和 + 单调栈
Codeforces 1107G 线段树最大子段和 + 单调栈 G. Vasya and Maximum Profit Description: Vasya got really tired of t ...
- Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)
1.Qt布局的作用 Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而 ...
- codeforces 496A. Minimum Difficulty 解题报告
题目链接:http://codeforces.com/contest/496/problem/A 题目意思:给出有 n 个数的序列,然后通过删除除了第一个数和最后一个数的任意一个位置的数,求出删除这个 ...
- Codeforces 1092F Tree with Maximum Cost(树形DP)
题目链接:Tree with Maximum Cost 题意:给定一棵树,树上每个顶点都有属性值ai,树的边权为1,求$\sum\limits_{i = 1}^{n} dist(i, v) \cdot ...
- [Educational Round 59][Codeforces 1107G. Vasya and Maximum Profit]
咸鱼了好久...出来冒个泡_(:з」∠)_ 题目连接:1107G - Vasya and Maximum Profit 题目大意:给出\(n,a\)以及长度为\(n\)的数组\(c_i\)和长度为\( ...
- Codeforces 1154G Minimum Possible LCM
题目链接:http://codeforces.com/problemset/problem/1154/G 题目大意: 给定n个数,在这些数中选2个数,使这两个数的最小公倍数最小,输出这两个数的下标(如 ...
- Codeforces 1107G Vasya and Maximum Profit [单调栈]
洛谷 Codeforces 我竟然能在有生之年踩标算. 思路 首先考虑暴力:枚举左右端点直接计算. 考虑记录\(sum_x=\sum_{i=1}^x c_i\),设选\([l,r]\)时那个奇怪东西的 ...
随机推荐
- Android开源项目SlidingMenu本学习笔记(两)
我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下.依据滑出项的Menu切换到相应的页面 文件夹结构: watermark/2/ ...
- zlog 程序日志的库 交叉编译(Linux生成ARM库,观察执行步骤)
1. zlog 是个很好的写程序日志的库,功能比较强大,上手快. 2. 下载地址:https://github.com/bmanojlovic/zlog 3. cd 到文件夹下,对 autogen.s ...
- PostgreSQL模式匹配的方法 LIKE等
PostgreSQL 提供了三种实现模式匹配的方法:传统 SQL 的 LIKE 操作符.SQL99 新增的 SIMILAR TO 操作符. POSIX 风格的正则表达式.另外还有一个模式匹配函数 su ...
- sql server DateTime与DateTime2的区别
DateTime字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fff ,3个f,精确到1毫秒(ms),示例 2014-12-03 17:06:15.433 .DateTime2字段 ...
- EF context.SaveChanges()特点
EF context.SaveChanges()特点 1 一次连接保存多条数据(工作单元模式): 2 内部通过事务来执行,如果一条数据保存失败,执行回滚操作: 3 延时加载 var userList= ...
- jquery多条件选择器
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- centos 6 yum源记录,离线下载rpm包的办法
wget -O /etc/yum.repos.d/CentOS6-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo rp ...
- Oracle VM VirtualBox ubuntu 共享文件设置
1.创建共享文件 2.在本机上选择共享文件路径,虚拟机设置共享文件名称,注意这里不能选择自动挂载 3. 虚拟机新建文件夹挂载共享文件 sudo mkdir /mnt/sharedsudo mount ...
- 零元学Expression Blend 4 - Chapter 30 8个Expression Blend4的快捷
原文:零元学Expression Blend 4 - Chapter 30 8个Expression Blend4的快捷 我针对工作区跟视窗的快捷键整理了八个Expression Blend4的快捷, ...
- JS浏览器滚轮事件实现横向滚动照片展
if(window.attachEvent){ ///*IE8注册事件*/ this.oc.attachEvent('onmousewheel',function(e) { //函数体 }); } e ...