P8320 『JROI-4』Sunset 题解
题意
这是一道交互题
首先,在这里感谢出题人让我知道了怎么写交互题。
在
询问方式有三种:
返回的数值
题解
模拟?
画图发现,如果第
考虑二分。
在这个数组中二分查询这个
过程在图片里面。
清零之后求
代码
#include <bits/stdc++.h>
using namespace std;
int ans[50005];
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
for(int i=n;i>=1;i--){
printf("? 1 %d\n\n",n);
fflush(stdout);//刷新缓存
int biao;
scanf("%d",&biao);
int l=1,r=n;
while(l<r){
int mid=(l+r)>>1;
int tmp;
printf("? 1 %d\n\n",mid);
fflush(stdout);//刷新缓存
scanf("%d",&tmp);
if(tmp==biao) r=mid;
else l=mid+1;
}
printf("? 2 %d\n\n",r);
fflush(stdout);//刷新缓存
ans[r]=i;
}
printf("!");
for(int i=1;i<=n;i++) printf(" %d",ans[i]);
puts("\n");
fflush(stdout);//刷新缓存
}
return 0;
}