[关闭]
@baobaobear 2020-03-01T11:38:49.000000Z 字数 11109 阅读 549

Contest 17

contest


A 541907010220

  1. #include<iostream>
  2. #include<stack>
  3. #include<cstdio>
  4. #include<map>
  5. #include<set>
  6. #include<queue>
  7. #include<cstring>
  8. #include<cmath>
  9. #include<vector>
  10. #include<algorithm>
  11. using namespace std;
  12. typedef long long ll;
  13. #define me(a,b) memset(a,b,sizeof(a))
  14. #define inf 0x3f3f3f3f
  15. const int N=500005;
  16. int main()
  17. {
  18. int t,f,n;
  19. double sum;
  20. cin>>t;
  21. while(t--)
  22. {
  23. f=1;
  24. sum=0;
  25. cin>>n;
  26. for(int i=1;i<=n;i++)
  27. {
  28. sum+=(1.0/i)*f;
  29. f*=-1;
  30. }
  31. printf("%.2f\n",sum);
  32. }
  33. return 0;
  34. }

B _Wallace_

  1. #include<iostream>
  2. #include<cmath>
  3. #include<algorithm>
  4. using namespace std;
  5. int n;
  6. int a[105];
  7. inline bool cmp(const int &a,const int &b){
  8. return abs(a)>abs(b);
  9. }
  10. void solve()
  11. {
  12. for(register int i=1;i<=n;i++) cin>>a[i];
  13. sort(a+1,a+1+n,cmp);
  14. for(register int i=1;i<=n;i++) cout<<a[i]<<((i!=n)?" ":"");
  15. cout<<endl;
  16. }
  17. signed main()
  18. {
  19. while(cin>>n&&n) solve();
  20. }

C 6109118071

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. #include<iostream>
  5. #include<string>
  6. #include<sstream>
  7. #include<algorithm>
  8. #include<map>
  9. #include<set>
  10. #include<queue>
  11. #include<stack>
  12. #include<vector>
  13. using namespace std;
  14. int n;
  15. long long a[40];
  16. int main()
  17. {
  18. a[1] = 2;
  19. for (int i = 2; i <= 35; i++) a[i] = 2 + 3 * a[i - 1];
  20. while(~scanf("%d", &n))
  21. {
  22. printf("%lld\n", a[n]);
  23. }
  24. }

D lnkkerst

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. vector<pair<char, int > > a;
  5. int t, n;
  6. int main() {
  7. cin >> t;
  8. while(t--) {
  9. cin >> n;
  10. a.clear();
  11. char last, ch;
  12. int num = 1;
  13. cin >> ch;
  14. last = ch;
  15. for(int i = 2; i <= n; ++i) {
  16. cin >> ch;
  17. if(ch == last) ++num;
  18. else {
  19. a.push_back(make_pair(last, num));
  20. last = ch;
  21. num = 1;
  22. }
  23. }
  24. if(num) a.push_back(make_pair(last, num));
  25. bool ans = 0;
  26. for(int i = 0; i < (int)a.size() - 2; ++i)
  27. if(a[i].second >= a[i + 1].second && a[i + 1].second <= a[i + 2].second)
  28. if(a[i].first == a[i + 1].first - 1 && a[i].first == a[i + 2].first - 2)
  29. ans = 1;
  30. cout << (ans ? "YES\n" : "NO\n");
  31. }
  32. return 0;
  33. }

E 541907190117

  1. /**************************************************************************************************
  2. O[OOO@@OO@@O@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O^...=@@@@@@@@@@@@@@O[.........=@@@@@@@@@@@@
  3. .....[OOOOOOOOOOOOO@@@@@@@@@@@OOOOOOOOO@@OOOOOOOOOOOOO[..../OOOO@@@@@@/\O/............OOOOOOOOOOOOO
  4. ^........,\OOOOOOOO@@@@@@@@@@OOOOOOOOOOO[[....................,[OOOO`.........`./O...=OOOOOOOOOOOOO
  5. O`....].........,\O@@@@@@@@@@OOOOOO/........................................,O@@@^.../OOOOOOOOOOOOO
  6. OO....O@@\`.........,\@@@@@@@OOO[..........................................=@@@@@`..,OOOOOOOOOOOOOO
  7. @@\...=@@@@@\...........,\@@@`............................................*`=@@@/...OOOOOOOOOOOOOOO
  8. @@@O...=@@@^,`..............................................................=/@@...=OOOOOOOOOOOOOOO
  9. @@@@\...O@OO`.................................................................\^...OOOOOOOOOOOOOOOO
  10. @@@@@\...\@`......................................................................OOOOOOOOOOOOOOOOO
  11. @@@@@@\.../......................................................................=OOOOOOOOOOOOOOOOO
  12. OOOOOOO.......................... ................................................\@@OOOOOOOOOOOOOO
  13. @@@@@@@@@`................................=^...................^...................=@@@@@@@@@@@@@@@
  14. @@@@@@@@@@...*.............................*...................*....................O@@@@@@@@@@@@@@
  15. OOOOOOOOO.....**............. .......................................................@@@@@@@@@@@@@@
  16. OOOOOOOOOOO`..****..........................*................................. ......=@@@@@@@@@@@@@
  17. OOOOOOOOOOOOOO.*****,............................. ...................................O@@@@@@@@@@@@
  18. @@@@@@@@@@@@O...***./..*..............................................................O@@@@@@@@@@@@
  19. @@@@@@@@@@@@..........,..........,`........................................*......*..*=@@@@@@@@@@@@
  20. @@@@@@@@@@@^.........*.,`......,@@@@@@@@@@@@@@@@@@@\]]]`...,]]@@@@@@@@@[\@@/@@@@@@O....O@@@@@@@@@@@
  21. @@@@@@@@@@O.,`.......=.........,@@@@O[..,/OOOOO\....@@@@@@@@@@`.OOOOOOOO.,....=@@@O....\@@@@@@@@@@@
  22. @@@@@@@@@@`=@^...................\@@[..=/[,\`..\.....@@`...@@@..,]....,/.......@@^[^...=@@@@@@@@@@@
  23. @@@@@@@@@@=@@^....................@@....[\`..][.....@@`.....\@\....,[.........,@@....=.=@@@@@@@@@@@
  24. @@@@@@@@@\@@O..........^..........,@^.............]@/........,@@`.............//....*...@@@@@@@@@@@
  25. @@@@@@@@@@@@^.........*,.`..........@@\]]]..,]]/@/[............,\@@\]]`..,]]/@/.......*.\O@@@@@@@@@
  26. @@@@@@@@@@@@.....**...=*,*..................................................*`........*.=@@@@@@@@@@
  27. @@@@@@@@@@@O......*...,**=^...........................................................*..O@@@@@@@@@
  28. OOOOOOOOOOO^......*...*`**,.. .........................................,.................OO@@@@@@@@
  29. OOOOOOOOOOO^..........*^***,.. .....................................**..................OO@@@@@@@@
  30. @@@@@@@OO@@..*.........^****\.........**\].......................]*.....................*OO@@@@@@@@
  31. @@@@@@OO@@^......*.....=\***=`.........*=^**,[]`.............``.**...**............/`...=@@@@@@@@@@
  32. @@@@@OO@@O^..,..**...*..=****o..........*=*********[,]...]o*.....*******.............../OO@@@@@@@@@
  33. @@@@OO@@OO\..=/..**...*..o`**,^*........*=***************,/**...*******..........*..../@@@@@@@@@@@@
  34. @@@OO@@@OO@^..O^.....@@@O/O],[\]]......../@@@\`*******]@@@@`*..***,//`]/@@@^....*...,/@@@@@@@@@@@@@
  35. @@OO@@@OO@O\...O.....,@@@@@@@@@@@@`...@@/@@@@@@@`.**,@@@@@@@@@@@O]/@@@@@@@@.........=@@@@@@@@@@@@@@
  36. **************************************************************************************************/
  37. #include<set>
  38. #include<map>
  39. #include<stack>
  40. #include<queue>
  41. #include<cmath>
  42. #include<cstdio>
  43. #include<cctype>
  44. #include<string>
  45. #include<vector>
  46. #include<climits>
  47. #include<cstring>
  48. #include<cstdlib>
  49. #include<iostream>
  50. #include<algorithm>
  51. #define endl '\n'
  52. #define rtl rt<<1
  53. #define rtr rt<<1|1
  54. #define lson rt<<1, l, mid
  55. #define rson rt<<1|1, mid+1, r
  56. #define maxx(a, b) (a > b ? a : b)
  57. #define minn(a, b) (a < b ? a : b)
  58. #define zero(a) memset(a, 0, sizeof(a))
  59. #define INF(a) memset(a, 0x3f, sizeof(a))
  60. #define IOS ios::sync_with_stdio(false)
  61. #define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
  62. using namespace std;
  63. typedef long long ll;
  64. typedef pair<int, int> P;
  65. typedef pair<ll, ll> P2;
  66. const double pi = acos(-1.0);
  67. const double eps = 1e-7;
  68. const ll MOD = 1000000007LL;
  69. const int INF = 0x3f3f3f3f;
  70. const int _NAN = -0x3f3f3f3f;
  71. const double EULC = 0.5772156649015328;
  72. const int NIL = -1;
  73. template<typename T> void read(T &x){
  74. x = 0;char ch = getchar();ll f = 1;
  75. while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}
  76. while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
  77. }
  78. const int maxn = 1e6+10;
  79. char str1[maxn], str2[maxn];
  80. int main(void) {
  81. scanf("%s %s", str1, str2);
  82. bool ok = true;
  83. int len1 = strlen(str1), len2 = strlen(str2);
  84. if (len2 > len1) {
  85. printf("no\n");
  86. return 0;
  87. }
  88. else if (!strcmp(str1, str2)) {
  89. printf("yes\n");
  90. return 0;
  91. }
  92. int kase = 0;
  93. char temp = str2[0];
  94. for (int i = 0; i<len1; ++i) {
  95. if (str2[kase] != str1[i] && temp == str1[i])
  96. ok = false;
  97. if (kase < len2 && str1[i] == str2[kase]) {
  98. temp = str2[kase];
  99. ++kase;
  100. }
  101. }
  102. printf(kase == len2 && ok ? "yes\n" : "no\n");
  103. return 0;
  104. }

F lnkkerst

  1. #include <cstdio>
  2. #include <cctype>
  3. int n, a[100010], tot;
  4. int read() {
  5. int ret, fl = 1;
  6. char ch;
  7. while(!isdigit(ch = getchar()))
  8. (ch == '-') && (fl = -1);
  9. ret = ch - '0';
  10. while(isdigit(ch = getchar()))
  11. ret *= 10, ret += ch - '0';
  12. return ret * fl;
  13. }
  14. void print(int x) {
  15. if(x < 0) putchar('-'), x = -x;
  16. if(x > 9) print(x / 10);
  17. putchar(x % 10 + '0');
  18. }
  19. int abs(int x) {
  20. return x > 0 ? x : -x;
  21. }
  22. int main() {
  23. n = read();
  24. for(int i = 1; i <= n; ++i)
  25. a[i] = read(), tot += abs(a[i] - a[i - 1]);
  26. tot += abs(a[n]);
  27. for(int i = 1; i <= n; ++i) {
  28. int ans;
  29. if(a[i] > a[i - 1]) {
  30. if(a[i + 1] > a[i]) ans = tot;
  31. else {
  32. if(a[i + 1] > a[i - 1]) ans = tot + a[i + 1] * 2 - a[i] * 2;
  33. else ans = tot + a[i - 1] * 2 - a[i] * 2;
  34. }
  35. }
  36. else {
  37. if(a[i + 1] < a[i]) ans = tot;
  38. else {
  39. if(a[i + 1] > a[i - 1]) ans = tot + a[i] * 2 - a[i - 1] * 2;
  40. else ans = tot + a[i] * 2 - a[i + 1] * 2;
  41. }
  42. }
  43. print(ans), putchar('\n');
  44. }
  45. return 0;
  46. }

G lnkkerst

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. struct Node {
  4. int h, pre;
  5. bool vis;
  6. } nodes[233333];
  7. struct Edge {
  8. int to, nex;
  9. } edges[23333333];
  10. struct Point {
  11. int x, y;
  12. } a[233333];
  13. int n, cnt, ans;
  14. int read() {
  15. int ret, f = 1;
  16. char ch;
  17. while(!isdigit(ch = getchar())) (ch == '-') && (f = -1);
  18. for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
  19. return ret * f;
  20. }
  21. void print(int x) {
  22. if(x < 0) putchar('-'), x = -x;
  23. if(x > 9) print(x / 10);
  24. putchar(x % 10 + '0');
  25. }
  26. void addedge(int u, int v) {
  27. edges[++cnt].to = v;
  28. edges[cnt].nex = nodes[u].h;
  29. nodes[u].h = cnt;
  30. }
  31. bool dfs(int u) {
  32. if(nodes[u].vis) return 0;
  33. nodes[u].vis = 1;
  34. for(int i = nodes[u].h; i; i = edges[i].nex) {
  35. if(!nodes[edges[i].to].pre || dfs(nodes[edges[i].to].pre)) {
  36. nodes[edges[i].to].pre = u;
  37. return 1;
  38. }
  39. }
  40. return 0;
  41. }
  42. int main() {
  43. n = read();
  44. for(int i = 1; i <= n; ++i)
  45. a[i].x = read(), a[i].y = read();
  46. for(int i = 1; i <= n; ++i)
  47. a[n + i].x = read(), a[n + i].y = read();
  48. for(int i = 1; i <= n; ++i)
  49. for(int j = n + 1; j <= n * 2; ++j)
  50. if(a[i].x < a[j].x && a[i].y < a[j].y)
  51. addedge(i, j);
  52. for(int i = 1; i <= n; ++i) {
  53. for(int j = 1; j <= n + cnt; ++j)
  54. nodes[j].vis = 0;
  55. if(dfs(i)) ++ans;
  56. }
  57. print(ans);
  58. return 0;
  59. }

H 6109118071

  1. #include<iostream>
  2. #include<string.h>
  3. #include<algorithm>
  4. #include<stdio.h>
  5. #include<math.h>
  6. #include<vector>
  7. #include<map>
  8. #include<set>
  9. #include<time.h>
  10. #define debug(a) cout << "*" << a << "*" << endl
  11. #define ls (k << 1)
  12. #define rs ((k << 1) | 1)
  13. #define mid ((l + r) >> 1)
  14. using namespace std;
  15. typedef long long ll;
  16. ll a[55], m, n;
  17. int main()
  18. {
  19. while (~scanf("%lld", &m))
  20. {
  21. //m = low(1, m, m);
  22. memset(a, 0, sizeof(a));
  23. printf("50\n");
  24. n = m % 50;
  25. m /= 50;
  26. for (int i = 0; i < n; i++) a[i] = 50;
  27. if (m)
  28. for (int i = 0; i < 50; i++) a[i] += (49 - n + m);
  29. for (int i = 0; i < 50; i++) printf("%lld%c", a[i], i == 49 ? '\n' : ' ');
  30. }
  31. }

I 6109118071

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. #include<iostream>
  5. #include<string>
  6. #include<sstream>
  7. #include<algorithm>
  8. #include<map>
  9. #include<set>
  10. #include<queue>
  11. #include<stack>
  12. #include<vector>
  13. //#define int long long
  14. using namespace std;
  15. int a[305][305], n, m, k, t, dp[2][90005], x;
  16. signed main()
  17. {
  18. scanf("%d", &t);
  19. while (t--)
  20. {
  21. memset(a, 0, sizeof(a));
  22. memset(dp, 0, sizeof(dp));
  23. scanf("%d%d%d", &n, &m, &k);
  24. for (int i = 1; i <= n; i++)
  25. {
  26. for (int j = 1; j <= m; j++)
  27. {
  28. scanf("%d", &x);
  29. a[i][j] = a[i][j - 1] + x;
  30. }
  31. }
  32. for (int i = 1; i <= n; i++)
  33. {
  34. memset(dp[i & 1], 0, sizeof(dp[i & 1]));
  35. for (int j = 1; j <= m; j++)
  36. {
  37. for (int z = 1; z <= k; z++)
  38. {
  39. dp[i & 1][z] = max(dp[i & 1][z], dp[(i + 1) & 1][z]);
  40. if (z > j)
  41. dp[i & 1][z] = max(dp[i & 1][z], dp[(i + 1) & 1][z - j] + a[i][j]);
  42. else
  43. dp[i & 1][z] = max(dp[i & 1][z], a[i][z]);
  44. }
  45. }
  46. }
  47. printf("%d\n", dp[n & 1][k]);
  48. }
  49. }

J lnkkerst

  1. #include <cstdio>
  2. #include <cctype>
  3. #include <algorithm>
  4. struct Edge {
  5. int u, v, w;
  6. } edges[100010];
  7. int m, n, top;
  8. int fa[100010];
  9. int sta[100010];
  10. bool fl = 1;
  11. int read() {
  12. int ret, fl = 1;
  13. char ch;
  14. while(!isdigit(ch = getchar())) (ch == '-') && (fl = -1);
  15. for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
  16. return ret * fl;
  17. }
  18. void print(int x) {
  19. if(x < 0) putchar('-'), x = -x;
  20. if(x > 9) print(x / 10);
  21. putchar(x % 10 + '0');
  22. }
  23. bool cmp(Edge a, Edge b) {
  24. return a.w < b.w;
  25. }
  26. int find(int x) {
  27. return x == fa[x] ? x : fa[x] = find(fa[x]);
  28. }
  29. int kru(int del) {
  30. int ret = 0;
  31. for(int i = 1; i <= m; ++i) fa[i] = i;
  32. for(int i = 1; i <= m; ++i) {
  33. if(i == del) continue;
  34. int f1 = find(edges[i].u);
  35. int f2 = find(edges[i].v);
  36. if(f1 == f2) continue;
  37. fa[f1] = f2;
  38. ret += edges[i].w;
  39. if(fl) sta[++top] = i;
  40. }
  41. fl = 0;
  42. return ret;
  43. }
  44. int main() {
  45. n = read(), m = read();
  46. for(int i = 1; i <= m; ++i)
  47. edges[i].u = read(), edges[i].v = read(), edges[i].w = read();
  48. std::sort(edges + 1, edges + m + 1, cmp);
  49. int full = kru(0), ans1 = 0, ans2 = 0;
  50. for(int i = 1; i <= top; ++i)
  51. if(kru(sta[i]) != full)
  52. ++ans1, ans2 += edges[sta[i]].w;
  53. print(ans1), putchar(' '), print(ans2), putchar('\n');
  54. return 0;
  55. }

K _Wallace_

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<string>
  4. using namespace std;
  5. const int N=5e3+5;
  6. string s;
  7. string a[N*5];
  8. int n,k;
  9. bool cmp(const string &x,const string &y){
  10. for(register int i=0;i<(int)min(x.size(),y.size());i++)
  11. {
  12. if(x[i]<y[i]) return true;
  13. if(x[i]>y[i]) return false;
  14. }
  15. return x.size()<y.size();
  16. }
  17. bool operator ==(const string &x,const string &y){
  18. if(x.size()!=y.size()) return false;
  19. for(register int i=0;i<(int)x.size();i++)
  20. if(s[i]!=y[i]) return false;
  21. return true;
  22. }
  23. signed main()
  24. {
  25. cin>>s>>k,n=0;
  26. for(register int i=0;i<(int)s.size();i++)
  27. for(register int j=1;j<=5;j++)
  28. a[++n]=s.substr(i,j);
  29. sort(a+1,a+1+n,cmp);
  30. n=unique(a+1,a+1+n)-a-1;
  31. cout<<a[k]<<endl;
  32. return 0;
  33. }

L

cpp

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注