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——交互,思维的主要内容,如果未能解决你的问题,请参考以下文章

CF745 D 交互题 思维 二进制分解

E. DeadLee 思维 贪心 cf官方答案代码详解

代码源 Div1 - 107#452. 序列操作(思维)CF1198B

[贪心] aw3774. 亮灯时长(思维+后缀和+代码细节+CF1000B)

代码源 Div1 - 107#452. 序列操作(思维)CF1198B

CF1242B 0-1MST(思维)