[关闭]
@2368860385 2018-07-05T06:12:34.000000Z 字数 1016 阅读 205

990——Educational Codeforces Round 45 (Rated for Div. 2)

http://codeforces.com/contest/990

codeforces


考试完成
A:模拟
B:模拟
C:模拟计数,统计左括号多x的个数,右括号同理,当前左括号多x,+cntr[x]

D:特判
E:调和级数,枚举k即可,验证是否可行(复杂度nlojn,类似于nlogn求素数)
F:
G:

代码T4:

  1. int n = read(),a = read(),b = read();
  2. if (n==1) {
  3. if (a==1&&b==1) printf("YES\n0");
  4. else printf("NO");
  5. return 0;
  6. }
  7. if (n==2) {
  8. if (a==1 && b==2) { printf("YES\n01\n10"); }
  9. else if (a==2 && b==1) printf("YES\n00\n00");
  10. else printf("NO");
  11. return 0;
  12. }
  13. if (n==3) {
  14. if (a==1 && b==3) printf("YES\n011\n101\n110");
  15. else if (a==1 && b==2) printf("YES\n001\n001\n110");
  16. else if (a==2 && b==1) printf("YES\n001\n000\n100");
  17. else if (a==3 && b==1) printf("YES\n000\n000\n000");
  18. else printf("NO");
  19. return 0;
  20. }
  21. if (b >= 2 && a!=1) {printf("NO");return 0;}
  22. if (a==1) {
  23. printf("YES\n");
  24. for (int i=1; i<=(n-b); ++i) mp[i][i+1] = mp[i+1][i] = 1;
  25. for (int i=1; i<=n; ++i) {
  26. for (int j=1; j<=n; ++j)
  27. if (i!=j)printf("%d",!mp[i][j]);
  28. else printf("0");
  29. printf("\n");
  30. }
  31. }
  32. if (a >= 2) {
  33. if (b != 1) printf("NO");
  34. else {
  35. printf("YES\n");
  36. for (int i=1; i<=(n-a); ++i) mp[i][i+1] = mp[i+1][i] = 1;
  37. for (int i=1; i<=n; ++i) {
  38. for (int j=1; j<=n; ++j)
  39. printf("%d",mp[i][j]);
  40. printf("\n");
  41. }
  42. }
  43. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注