Codeforces Round #616 (Div. 2)

Posted vampire6

tags:

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

A.Even But Not Even

题意:给你一个很长的数,可以删减里面的任意数字,要求本身不能除以2,但是该数的各位和能除以2,输出任意符合要求的删减过后的数

思路:找出两个奇数即可,奇数的拼凑本身就是奇数,但是和就是偶数,就满足要求了。。竟然wa了两发,,-1没有换行。。。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn = 1e5;
 5 
 6 int main(){
 7     int T;
 8     scanf("%d",&T);
 9     while(T--)
10     {
11         int n;
12         scanf("%d",&n);
13         string s;
14         cin>>s;
15         int sum=0;
16         char a[100];
17         for(int i=0;i<n;i++)
18         {
19             if((s[i]-0)%2!=0)
20             {
21                // printf("%d
",s[i]-‘0‘);
22                 a[sum++]=s[i];
23             }
24         }
25         if(sum>=2)
26         {
27             printf("%c%c
",a[0],a[1]);
28         }
29         else
30             printf("-1
");
31     }
32     return 0;
33 }

B - Array Sharpening

题意:给你一个序列a[],要求你找出k使得k位置之前是严格单调递增,k之后是严格单调递减,你可以任意删减>0的数,对他减一任意次,问是否这个序列有这样的K

思路:对于K左边的要求a[i]>i-1即可,当不满足时,此时的i就是k,K后面的a[i]=min(a[i-1]-1,a[i]),这样一直减下去,判断最后一个数是否>0即可,当一直满足a[i]>i-1时,那么这个序列就可以通过删减变成严格单调递增序列,也是满足条件的的

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn = 3e5+10;
 5 
 6 int main(){
 7     int T;
 8     scanf("%d",&T);
 9     while(T--)
10     {
11         int n;
12         scanf("%d",&n);
13         long long a[maxn];
14         for(int i=0;i<n;i++)
15             cin>>a[i];
16         int k=0;
17         bool flag=true;
18         for(int i=0;i<n;i++)
19         {
20             if(a[i]<=i-1)
21             {
22                 flag=false;
23                 k=i;
24                 break;
25             }
26         }
27         if(n==1||flag)
28             printf("Yes
");
29         else
30         {
31             int j=0;
32             for(int i=k;i<n;i++)
33             {
34                 a[i]=min(a[i-1]-1,a[i]);
35             }
36             if(a[n-1]>=0)
37                 printf("Yes
");
38             else
39                 printf("No
");
40         }
41     }
42     return 0;
43 }

太菜,c睡起来再补了。。

以上是关于Codeforces Round #616 (Div. 2)的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #616 题解

Codeforces Round #616 (Div. 2)

Codeforces Round #616 (Div. 2)

Codeforces Round #616 (Div. 1)

Codeforces Round #616 部分题解

Codeforces Round #616(Div.2) Even But Not Even