A Brick


int n, m;
int main()
{
scanf("%d%d", &n, &m);
printf("%d\n", n / m);
return 0;
}

B Blocks on Grid


int n, m;
int a[N][N];
int main()
{
int sum = 0x3f3f3f3f; scanf("%d%d", &n, &m);
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= m; ++ j)
{
scanf("%d", &a[i][j]);
sum = min(sum, a[i][j]);
}
int res = 0;
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= m; ++ j)
{
res += a[i][j] - sum;
}
printf("%d\n", res);
return 0;
}

C Unlucky 7


bool check(int x)
{
int t = x;
while(x)
{
if(x % 10 == 7) return 1;
x /= 10;
}
while(t)
{
if(t % 8 == 7) return 1;
t /= 8;
}
return 0;
} int main()
{
scanf("%d", &n);
int res = 0;
for(int i = 7; i <= n; ++ i)
if(check(i)) res ++;
printf("%d\n", n - res);
return 0;
}

D Sum of difference


int n;
int a[SZ], b[SZ];
int main()
{
LL sum = 0;
scanf("%d", &n);
for(int i = 1; i <= n; ++ i)
scanf("%d", &a[i]);
sort(a + 1, a + n + 1);
for(int i = 1; i <= n; ++ i)
sum += (LL)a[i] * (2 * i - 1 - n);
printf("%lld\n", sum);
return 0;
}

E Throne

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


int n, s, k;
LL exgcd(LL a, LL b, LL &x, LL &y)
{
if(!b)
{
x = 1, y = 0;
return a;
}
LL d = exgcd(b, a % b, y, x);
y -= a / b * x;
return d;
} int main()
{
int __;
scanf("%d", &__);
while(__ -- )
{
LL x, y;
scanf("%d%d%d", &n, &s, &k);
LL d = exgcd(k, n, x, y);
if(s % d) puts("-1");
else
{
x *= - s / d;
LL t = abs(n / d);
printf("%lld\n", (x % t + t) % t);
}
}
return 0;
}

F Rook on Grid

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

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

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

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


int tr[N];
int n, m, k;
int row[N];
int column[N];
vector<int> v[N]; int lowbit(int x) { return x & -x; } void add(int x, int v) { for(int i = x; i <= n; i += lowbit(i)) tr[i] += v; } int query(int x) { int res = 0; for(int i = x; i; i -= lowbit(i)) res += tr[i]; return res; } int main()
{
scanf("%d%d%d", &n, &m, &k);
for(int i = 1; i <= n; ++ i) row[i] = m + 1;
for(int i = 1; i <= m; ++ i) column[i] = n + 1;
for(int i = 1; i <= k; ++ i)
{
int x, y;
scanf("%d%d", &x, &y);
row[x] = min(row[x], y);
column[y] = min(column[y], x);
}
LL res = 0;
int flag = 0;
for(int i = 1; i <= n; ++ i)
{
if(flag == 1) { row[i] = 1; continue; }
if(row[i] == 1) { flag = 1; continue; }
res += row[i] - 1;
}
for(int i = 1; i <= n; ++ i) v[row[i]].push_back(i);
for(int i = 1; i <= m; ++ i)
{
if(column[i] == 1) break;
res += query(column[i] - 1);
for(auto j: v[i]) add(j, 1);
}
printf("%lld\n", res);
return 0;
}

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. CF1459-C. Row GCD

    CF1459-C. Row GCD 题意: 给出两个整数序列\(a.b\),他们的长度分别为\(n,m\).对于数组\(b\)中的每个数字,让你求出\(gcd(a_1+b_j,a_2+b_j,..., ...

  2. woj1012 Thingk and Count DP好题

    title: woj1012 Thingk and Count DP好题 date: 2020-03-12 categories: acm tags: [acm,dp,woj] 难题,dp好题,几何题 ...

  3. codeforces 1010 C. Border【exgcd】

    题目链接:戳这里 学习博客:戳这里 题意:给n种数,n种数取任意个任意组合相加为sum,求sum%k有哪些值. 解题思路: 由exgcd可知(具体用到的是贝祖定理),ax + by = c,满足gcd ...

  4. EDA : quartus2 17.1lite + modelsim +verilog 使用流程

    首先   然后填充好自己写的代码 之后save as 存到自己的文件夹 会自动弹出   配置     Assignments settings   之后第一次编译 成功后processing star ...

  5. Celery&Flower文档笔记

    1.Celery # tasks.py from celery import Celery app = Celery('tasks', broker='redis://localhost:6379', ...

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

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

  7. CNN可视化技术总结(三)--类可视化

    CNN可视化技术总结(一)-特征图可视化 CNN可视化技术总结(二)--卷积核可视化 导言: 前面我们介绍了两种可视化方法,特征图可视化和卷积核可视化,这两种方法在论文中都比较常见,这两种更多的是用于 ...

  8. μC/OS-III---I笔记4---软件定时器

    软件定时器是在硬件定时器的基础上开发的,通过将一个硬件定时器进行分频及管理就可以的到多个软件定时器.他和时间管理共同组成了系统的时间管理大部分的内容.系统一开始的系统初始化函数OSInit函数内调用了 ...

  9. JS Object Deep Copy & 深拷贝 & 浅拷贝

    JS Object Deep Copy & 深拷贝 & 浅拷贝 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  10. Generator function vs Async/Await

    Generator function vs Async/Await generator async /await refs xgqfrms 2012-2020 www.cnblogs.com 发布文章 ...