A Brick


  1. int n, m;
  2. int main()
  3. {
  4. scanf("%d%d", &n, &m);
  5. printf("%d\n", n / m);
  6. return 0;
  7. }

B Blocks on Grid


  1. int n, m;
  2. int a[N][N];
  3. int main()
  4. {
  5. int sum = 0x3f3f3f3f;
  6. scanf("%d%d", &n, &m);
  7. for(int i = 1; i <= n; ++ i)
  8. for(int j = 1; j <= m; ++ j)
  9. {
  10. scanf("%d", &a[i][j]);
  11. sum = min(sum, a[i][j]);
  12. }
  13. int res = 0;
  14. for(int i = 1; i <= n; ++ i)
  15. for(int j = 1; j <= m; ++ j)
  16. {
  17. res += a[i][j] - sum;
  18. }
  19. printf("%d\n", res);
  20. return 0;
  21. }

C Unlucky 7


  1. bool check(int x)
  2. {
  3. int t = x;
  4. while(x)
  5. {
  6. if(x % 10 == 7) return 1;
  7. x /= 10;
  8. }
  9. while(t)
  10. {
  11. if(t % 8 == 7) return 1;
  12. t /= 8;
  13. }
  14. return 0;
  15. }
  16. int main()
  17. {
  18. scanf("%d", &n);
  19. int res = 0;
  20. for(int i = 7; i <= n; ++ i)
  21. if(check(i)) res ++;
  22. printf("%d\n", n - res);
  23. return 0;
  24. }

D Sum of difference


  1. int n;
  2. int a[SZ], b[SZ];
  3. int main()
  4. {
  5. LL sum = 0;
  6. scanf("%d", &n);
  7. for(int i = 1; i <= n; ++ i)
  8. scanf("%d", &a[i]);
  9. sort(a + 1, a + n + 1);
  10. for(int i = 1; i <= n; ++ i)
  11. sum += (LL)a[i] * (2 * i - 1 - n);
  12. printf("%lld\n", sum);
  13. return 0;
  14. }

E Throne

\(s + k * x = n * y\)


  1. int n, s, k;
  2. LL exgcd(LL a, LL b, LL &x, LL &y)
  3. {
  4. if(!b)
  5. {
  6. x = 1, y = 0;
  7. return a;
  8. }
  9. LL d = exgcd(b, a % b, y, x);
  10. y -= a / b * x;
  11. return d;
  12. }
  13. int main()
  14. {
  15. int __;
  16. scanf("%d", &__);
  17. while(__ -- )
  18. {
  19. LL x, y;
  20. scanf("%d%d%d", &n, &s, &k);
  21. LL d = exgcd(k, n, x, y);
  22. if(s % d) puts("-1");
  23. else
  24. {
  25. x *= - s / d;
  26. LL t = abs(n / d);
  27. printf("%lld\n", (x % t + t) % t);
  28. }
  29. }
  30. return 0;
  31. }

F Rook on Grid

每一次移动可以往下或往右走任意步数,但遇到墙要停,初始位置在(1,1),问走两步以内能够覆盖的路径有多少个格子.

首先考虑第一步向下走,把第二步向右走可以到达的位置统计。

然后考虑第一步向右走,第二步向下走且第一种情况未到达的位置:

即到当前列第一个障碍这些行中,在前面列出现障碍的行数,统计完后把当前列的障碍更新上去,可以用一个树状数组维护.


  1. int tr[N];
  2. int n, m, k;
  3. int row[N];
  4. int column[N];
  5. vector<int> v[N];
  6. int lowbit(int x) { return x & -x; }
  7. void add(int x, int v) { for(int i = x; i <= n; i += lowbit(i)) tr[i] += v; }
  8. int query(int x) { int res = 0; for(int i = x; i; i -= lowbit(i)) res += tr[i]; return res; }
  9. int main()
  10. {
  11. scanf("%d%d%d", &n, &m, &k);
  12. for(int i = 1; i <= n; ++ i) row[i] = m + 1;
  13. for(int i = 1; i <= m; ++ i) column[i] = n + 1;
  14. for(int i = 1; i <= k; ++ i)
  15. {
  16. int x, y;
  17. scanf("%d%d", &x, &y);
  18. row[x] = min(row[x], y);
  19. column[y] = min(column[y], x);
  20. }
  21. LL res = 0;
  22. int flag = 0;
  23. for(int i = 1; i <= n; ++ i)
  24. {
  25. if(flag == 1) { row[i] = 1; continue; }
  26. if(row[i] == 1) { flag = 1; continue; }
  27. res += row[i] - 1;
  28. }
  29. for(int i = 1; i <= n; ++ i) v[row[i]].push_back(i);
  30. for(int i = 1; i <= m; ++ i)
  31. {
  32. if(column[i] == 1) break;
  33. res += query(column[i] - 1);
  34. for(auto j: v[i]) add(j, 1);
  35. }
  36. printf("%lld\n", res);
  37. return 0;
  38. }

2021.1.20

AtCoder Beginner Contest 186的更多相关文章

  1. Panasonic Programming Contest (AtCoder Beginner Contest 186) E.Throne (数学,线性同余方程)

    题意:有围着一圈的\(N\)把椅子,其中有一个是冠位,你在离冠位顺时针\(S\)把椅子的位置,你每次可以顺时针走\(K\)个椅子,问最少要走多少次才能登上冠位,或者走不到冠位. 题解:这题和洛谷那个青 ...

  2. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  3. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  4. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  5. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  6. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  7. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  8. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  9. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

随机推荐

  1. httprunner(9)运行测试用例的方式总结

    前言 用过pytest的小伙伴都知道,pytest的运行方式是非常丰富的,可以说是你想怎么运行怎么运行,想运行哪些运行哪些,那httprunner是否同样可以呢? 运行用例的各种方式 运行指定路径的用 ...

  2. 敏捷史话(六):也许这个人能拯救你的代码 —— Robert C. Martin

    Robert C. Martin( 罗伯特·C·马丁),作为世界级软件开发大师.设计模式和敏捷开发先驱.C++ Report杂志前主编,也是敏捷联盟(Agile Alliance)的第一任主席,我们尊 ...

  3. pycharm 与 anaconda 关联

    anaconda Anaconda指的是一个开源的Python发行版本,集成了许多数据分析的库. 使用tersorflow进行机器学习时常用Anaconda pycharm PyCharm是一种Pyt ...

  4. Petrozavodsk Summer Training Camp 2016H(多标记线段树)题解

    题意: \(n\)个草,第\(0\)天种下,高度都为\(0\),每个草每天长高\(a_i\).现给出\(q\)询问,每次给出第\(b_i\)天,然后把高于\(d_i\)的全削成\(d_i\),每次问你 ...

  5. P4213 【模板】杜教筛(杜教筛)题解

    题意: 求\(\sum_{i=1}^n\varphi(i)\)和\(\sum_{i=1}^n\mu(i)\) 思路: 由性质可知:\(\mu*I=\epsilon,\varphi*I=id\)那么可得 ...

  6. 牛客多校第九场 && ZOJ3774 The power of Fibonacci(二次剩余定理+斐波那契数列通项/循环节)题解

    题意1.1: 求\(\sum_{i=1}^n Fib^m\mod 1e9+9\),\(n\in[1, 1e9], m\in[1, 1e4]\) 思路1.1 我们首先需要知道斐波那契数列的通项是:\(F ...

  7. 大数据开发-linux后台运行,关闭,查看后台任务

    在日常开发过程中,除了例行调度的任务和直接在开发环境下比如Scripts,开发,很多情况下是shell下直接搞起(小公司一般是这样),看一下常见的linux后台运行和关闭的命令,这里做一个总结,主要包 ...

  8. js 检测屏幕分辨率

    js 检测屏幕分辨率 class screenChecker { constructor() { this.screen = window.screen; this.fullscreen = fals ...

  9. 如何取消一个 Ajax 请求

    如何取消一个 Ajax 请求 jQuery XMLHttpRequest.abort() https://stackoverflow.com/questions/446594/abort-ajax-r ...

  10. bind & this & new & arrow function

    bind & this & new & arrow function this bind call apply new arrow function arrow functio ...