Codeforces Edu Round 82 (Rated for Div. 2)
Posted jhseng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Edu Round 82 (Rated for Div. 2)相关的知识,希望对你有一定的参考价值。
题目链接:https://codeforces.com/contest/1303
A:
白给
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 const int maxn = 110; 21 int t; 22 char s[maxn]; 23 24 int main() { 25 scanf("%d", &t); 26 while (t--) { 27 int ans = 0; 28 scanf("%s", s + 1); 29 int len = strlen(s + 1); 30 int p, q; 31 for (p = 1; p <= len; p++) 32 if (s[p] == ‘1‘) break; 33 for (q = len; q >= 1; q--) 34 if (s[q] == ‘1‘) break; 35 for (int i = p; i <= q; i++) 36 if (s[i] == ‘0‘) ans++; 37 printf("%d ", ans); 38 } 39 return 0; 40 }
B:
写了个傻逼做法,崩了
1 // /* basic header */ 2 // #include <bits/stdc++.h> 3 // /* define */ 4 // #define ll long long 5 // #define dou double 6 // #define pb emplace_back 7 // #define mp make_pair 8 // #define sot(a,b) sort(a+1,a+1+b) 9 // #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 // #define rep0(i,a,b) for(int i=a;i<b;++i) 11 // #define eps 1e-8 12 // #define int_inf 0x3f3f3f3f 13 // #define ll_inf 0x7f7f7f7f7f7f7f7f 14 // #define lson (curpos<<1) 15 // #define rson (curpos<<1|1) 16 // /* namespace */ 17 // using namespace std; 18 // /* header end */ 19 20 // int t; 21 // ll n, g, b; 22 23 // int main() { 24 // scanf("%d", &t); 25 // while (t--) { 26 // scanf("%lld%lld%lld", &n, &g, &b); 27 // ll goodNum = 0, badNum = 0, weekCount, ans = 0; 28 // goodNum = n & 1 ? n / 2 + 1 : n / 2; badNum = n - goodNum; 29 // weekCount = goodNum / g - 1; 30 // goodNum -= weekCount * g, badNum -= weekCount * b; 31 // if (goodNum < 0) goodNum = 0; 32 // if (badNum < 0) badNum = 0; 33 // ans = weekCount * (g + b); 34 // while (goodNum) { 35 // int delta = min(g, goodNum); 36 // ans += delta; goodNum -= delta; 37 // if (goodNum <= 0) break; 38 // badNum -= b; 39 // if (badNum < 0) badNum = 0; 40 // ans += b; 41 // } 42 // ans += badNum; 43 // printf("%lld ", ans); 44 // } 45 // return 0; 46 // } 47 48 /* basic header */ 49 #include <bits/stdc++.h> 50 /* define */ 51 #define ll long long 52 #define dou double 53 #define pb emplace_back 54 #define mp make_pair 55 #define sot(a,b) sort(a+1,a+1+b) 56 #define rep1(i,a,b) for(int i=a;i<=b;++i) 57 #define rep0(i,a,b) for(int i=a;i<b;++i) 58 #define eps 1e-8 59 #define int_inf 0x3f3f3f3f 60 #define ll_inf 0x7f7f7f7f7f7f7f7f 61 #define lson (curpos<<1) 62 #define rson (curpos<<1|1) 63 /* namespace */ 64 using namespace std; 65 /* header end */ 66 67 int t; 68 69 int main() { 70 cin >> t; 71 while (t--) { 72 ll N, n, g, b; cin >> n >> g >> b; 73 N = n, n = n + 1 >> 1; 74 ll ans = (n / g) * (g + b) + n % g; 75 if (n % g == 0 && n / g) ans -= b; 76 cout << max(ans, N) << endl; 77 } 78 return 0; 79 }
C:
建无向图dfs即可
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 int t; 21 vector<int>edge[26]; 22 string s, ans; 23 bool used[26]; 24 25 void dfs(int v) { 26 if (used[v]) return; 27 ans += char(‘a‘ + v); 28 used[v] = 1; 29 for (auto to : edge[v]) { 30 if (!used[to]) dfs(to); 31 } 32 } 33 34 int main() { 35 cin >> t; 36 while (t--) { 37 ans = ""; 38 for (int i = 0; i < 26; i++) edge[i].clear(); 39 memset(used, 0, sizeof(used)); 40 cin >> s; 41 int n = s.size(); 42 for (int i = 0; i < n - 1; i++) { 43 int a = s[i] - ‘a‘, b = s[i + 1] - ‘a‘; 44 edge[a].pb(b), edge[b].pb(a); 45 } 46 for (int i = 0; i < 26; i++) { 47 sort(edge[i].begin(), edge[i].end()); 48 edge[i].erase(unique(edge[i].begin(), edge[i].end()), edge[i].end()); 49 } 50 for (int i = 0; i < 26; i++) 51 if (!used[i] && edge[i].size() <= 1) dfs(i); 52 if (ans.size() < 26) { 53 puts("NO"); 54 continue; 55 } 56 int flag = 1; 57 for (int i = 0; i < n - 1; i++) { 58 int pos1, pos2; 59 for (int j = 0; j < ans.size(); j++) { 60 if (ans[j] == s[i]) pos1 = j; 61 if (ans[j] == s[i + 1]) pos2 = j; 62 } 63 if (abs(pos1 - pos2) != 1) flag = 0; 64 } 65 if (!flag) puts("NO"); 66 else printf("YES %s ", ans.c_str()); 67 } 68 }
D:
枚举2的幂,判断能否从低到高凑出n
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 ll n, sum; 21 int t, m, ans; 22 map<ll, int>cnt; 23 24 int main() { 25 scanf("%d", &t); 26 while (t--) { 27 cnt.clear(); 28 sum = 0, ans = 0; 29 scanf("%lld%d", &n, &m); 30 for (int i = 0; i < m; i++) { 31 ll x; scanf("%lld", &x); 32 sum += x; cnt[x]++; 33 } 34 if (sum < n) { 35 puts("-1"); 36 continue; 37 } 38 for (int i = 0; i < 63; i++) { 39 ll j = 1ll << i; 40 if (cnt[j] < ((n >> i) & 1)) { 41 ans++; 42 cnt[j] += 2; 43 cnt[j << 1] -= 1; 44 } 45 cnt[j << 1] += (cnt[j] - ((n >> i) & 1)) / 2; 46 } 47 printf("%d ", ans); 48 } 49 return 0; 50 }
以上是关于Codeforces Edu Round 82 (Rated for Div. 2)的主要内容,如果未能解决你的问题,请参考以下文章
Educational Codeforces Round 82 (Rated for Div. 2)
Educational Codeforces Round 82 (Rated for Div. 2)
Educational Codeforces Round 82 (Rated for Div. 2)
Educational Codeforces Round 82 (Rated for Div. 2)