首页 > 代码库 > Codeforces Round #397 (Div. 2)

Codeforces Round #397 (Div. 2)

A - Neverending competitions

没有任何价值.....

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int INF = 0x3f3f3f3f;
 4 const int maxn = 100 + 5;
 5 typedef long long LL;
 6 typedef pair<int, int>pii;
 7 
 8 char home[5];
 9 int main()
10 {
11     int n;
12     scanf("%d", &n);
13     scanf("%s", home);
14     for(int i = 0; i < n; i++)
15     {
16         string s;
17         cin >> s;
18     }
19     if(n & 1)   puts("contest");
20     else puts("home");
21     return 0;
22 }
View Code

 

B - Code obfuscation(water)

题意:判断一个字符串是不是满足条件:abcd第一出现在字符串的位置,是依次出现的。

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int INF = 0x3f3f3f3f;
 4 const int maxn = 100 + 5;
 5 typedef long long LL;
 6 typedef pair<int, int>pii;
 7 int vis[30];
 8 int pos[30];
 9 int main()
10 {
11     string s;
12     cin >> s;
13     int ok = 1;
14     char ch = s[0];
15     if(ch != a)   ok = 0;
16     for(int i = 1; i < s.length(); i++)
17     {
18         if(s[i] - ch >= 2)
19         {
20             ok = 0;
21             break;
22         }
23         else if(s[i] - ch == 1)
24         {
25             ch = s[i];
26         }
27     }
28     if(ok)  puts("YES");
29     else puts("NO");
30     return 0;
31 }
View Code

 

C - Table Tennis Game  2(思维?贪心?water?)

题意:每一局比赛的小分,先到达k分的,赢下这一小局。现在已知,两个人分别获得n分和m分,问,这个得分情况是否可能,最多是由几局比赛可以达到这个比分。

思路:尽量k:0结束,记录两者输赢场数,然后,验证一下,能否把剩下的比分输出去,每局最多可以输掉k-1分。

 

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int INF = 0x3f3f3f3f;
 4 const int maxn = 100 + 5;
 5 typedef long long LL;
 6 typedef pair<int, int>pii;
 7 
 8 int main()
 9 {
10     LL k, n, m;
11     cin >> k >> n >> m;
12     LL win = n / k;
13     LL lose = m / k;
14     LL a = n % k, b = m % k;
15     LL ok = 0;
16     if(a <= lose * (k - 1) && b <= win * (k - 1))
17     {
18         ok = 1;
19     }
20  
21     printf("%d", ok ? win + lose : -1);
22 
23     return 0;
24 }
View Code

 

Codeforces Round #397 (Div. 2)