Codeforces 897D. Ithea Plays With Chtholly (交互)

Posted Bestcoderg

tags:

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

题目链接:D. Ithea Plays With Chtholly

题意:

  给你n张纸,在纸上写字(在 1 - c之间)可以写m次数 (技术分享图片,)。(主要是交互,让你判断)

题解:

  首先,看到m>=n*c/2,我们假设从1位置放入数据,如果放入的数据大于前面已经放入的数据那就往后排小于就替换。这样放的话,每个位置替换最大的次数是C,所以最大的次数总数是n*c。发现正好差了一倍。所以我们可以从两边放入,(小于c/2从1放入,大于c/2从N位置放入)这样每个位置替换的最大次数就是c/2,就正好可以过了。(要注意这次题目必须刷新缓冲区(好像是~英文不好~~~),要用fflush或是cin的endl)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int MAX_N = 1e3+9;
 4 int vec[MAX_N];
 5 int main()
 6 {
 7     int N,M,T,c;
 8     memset(vec,0,sizeof(vec));
 9     cin>>N>>M>>c;
10     int t;
11     int num = 0;
12     while(~scanf("%d",&t))
13     {
14         if(t <= c/2)
15         {
16             int pos = 1;
17             for( pos = 1;pos <= N;pos++)
18             {
19                 if(vec[pos] == 0) num++;
20                 if(vec[pos] == 0 || vec[pos] > t)
21                 {
22                     vec[pos] = t;
23                     break;
24                 }
25             }
26             cout<<pos<<endl;
27         }
28         else
29         {
30             int pos = N;
31             for( pos = N;pos >= 1;pos--)
32             {
33                 if(vec[pos] == 0) num++;
34                 if(vec[pos] == 0 || vec[pos] < t)
35                 {
36                     vec[pos] = t;
37                     break;
38                 }
39             }
40             cout<<pos<<endl;
41         }
42         if(num == N) break;
43     }
44     return 0;
45 }

 

以上是关于Codeforces 897D. Ithea Plays With Chtholly (交互)的主要内容,如果未能解决你的问题,请参考以下文章

codeforces 897A Scarborough Fair 暴力签到

897A. Scarborough Fair# 斯卡布罗集市(模拟)

897B. Chtholly's request#长度为偶数的回文数(模拟)

打开 PL/SQL 语句的引用器?

Codeforces Round #771 (Div. 2)

Codeforces Round #772 (Div. 2)