CodeForces896 B. Ithea Plays With Chtholly

Posted ONION_CYC

tags:

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

【题目】B. Ithea Plays With Chtholly

【题意】交互题,有n格,每次给一个[1,c]的数字,回答填入的位置后再次给数字,要求在m轮内使n格填满且数列不递减。n,m>=2,1<=c<=1000,1<=n*[c/2]<=m<=1000

【算法】贪心

【题解】对于每次的数字x,找到第一个严格大于的位置替换之(或占一个新的空位置)。

这样替换的好处是,不改变当前数列已经满足不递减这一事实的前提下,使数列更优。

那么,每个格子最多被替换c次,总轮数为(n-1)*c+1。

考虑将数字分成[1,c/2]和[c/2+1,c]两部分,一部分从左维护不递减数列,另一部分从右维护不递增数列,总轮数为(n-1)*[c/2]+1,满足要求。

技术分享图片
#include<cstdio>
int n,m,c,num,x,y,a[1010];
//learn from wangrq
int main(){
    scanf("%d%d%d",&n,&m,&c);
    while(num<n){
        scanf("%d",&x);
        if(x*2<=c){
            y=1;
            while(a[y]&&a[y]<=x)y++;
        }
        else{
            y=n;
            while(a[y]&&a[y]>=x)y--;
        }
        if(!a[y])num++;
        a[y]=x;
        printf("%d\n",y);
        fflush(stdout);
    }
    return 0;
}
View Code

 

以上是关于CodeForces896 B. Ithea Plays With Chtholly的主要内容,如果未能解决你的问题,请参考以下文章

[Codeforces896C] Willem, Chtholly and Seniorious (ODT-珂朵莉树)

[codeforces 260]B. Ancient Prophesy

codeforces 655B B. Mischievous Mess Makers(贪心)

codeforces 653B B. Bear and Compressing(dfs)

Codeforces Round #352 (Div. 2) B. Different is Good

CodeForces B. Obtaining the String