cf1270D——交互,思维
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf1270D——交互,思维相关的知识,希望对你有一定的参考价值。
对前k+1个数询问k+1次即可,询问结果只会有两个数:第m个和第m+1个,较大的数出现次数就是m次
#include<bits/stdc++.h> using namespace std; #define N 505 map<int,int>mp; int a[N],n,k,m; void ask(){ cout<<"? "; for(int i=1;i<=k;i++) cout<<a[i]<<" "; cout<<endl; } int main(){ cin>>n>>k; if(k==1){puts("! 1");return 0;} for(int i=1;i<=k+1;i++){ int cnt=0; for(int j=1;j<=k+1;j++) if(j!=i)a[++cnt]=j; ask(); int pos,val; cin>>pos>>val; mp[val]++; } // 一个数出现(较大的)m次,另一个数出现k+1-m次 int Max=0,ans; for(auto p:mp) Max=max(Max,p.first); for(auto p:mp) if(p.first==Max) ans=p.second; cout<<"! "<<ans<<endl; }
以上是关于cf1270D——交互,思维的主要内容,如果未能解决你的问题,请参考以下文章
代码源 Div1 - 107#452. 序列操作(思维)CF1198B
[贪心] aw3774. 亮灯时长(思维+后缀和+代码细节+CF1000B)