cf 1011 D. Rocket

Posted lishengkangshidatiancai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf 1011 D. Rocket相关的知识,希望对你有一定的参考价值。

此题为一道交互题,交互题就是你自己输出的数据是计算机程序的读入文件,而计算机的输出文件需要你读入。每次输出之后要加一个fflush(stdout);,来清空输出缓冲区

#include<bits/stdc++.h>
using namespace std;
int p[110];
int main()
{
    int m,n,x;
    scanf("%d%d",&m,&n);
    for(int i=0;i<n;i++)
    {
        printf("1
");
        fflush(stdout);
        scanf("%d",&x);
        if(x==0) return 0;
        else p[i]=x;
    }
    int l=1,r=m;
    int t=0;
    while(true)
    {
        int mid=(l+r)/2;
        printf("%d
",mid);
        fflush(stdout);
        scanf("%d",&x);
        if(p[t%n]==-1)
        {
            x=-x;
        }
        if(x==0)
          break;
        else if(x==1)
        {
            l=mid+1;
        }
        else if(x==-1)
            r=mid-1;
        t++;
    }
}

 

以上是关于cf 1011 D. Rocket的主要内容,如果未能解决你的问题,请参考以下文章

CF#358 D. Alyona and Strings DP

CF 570 D. Tree Requests

cf1173 D. Nauuo and Circle

CF 1114 D. Flood Fill

cf 1244 D. Paint the Tree

CF 914 D. Bash and a Tough Math Puzzle