Atcoder Panasonic Programming Contest 2020 部分题解
Posted yz-beacon-cwk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Atcoder Panasonic Programming Contest 2020 部分题解相关的知识,希望对你有一定的参考价值。
上课上到一半被拉出来打这场。结果被教育了。
做题顺序: A(AC)->B(WA)->E(未交)->C(AC)->E(WA)->D(AC)->B(AC)->E(WA)
A:上来直接把下标写成(n)和(n+1),结果 (WA) 两次,直接心态爆炸
代码就不放了。
B
题意:(n imes m) 的棋盘上,一个棋子被放在 ((1,1)) 位置,每次它能移动到所有 (x + y) 和 (x - y) 相等的格子上,问一共能访问多少个格子
看样例,答案就是 (leftlceildfrac{n imes m}{2} ight ceil) 哈哈哈哈
结果 (WA)
因为 (n = 1) 或 (m = 1) 时,它不能移动到其他任何一个格子上,所以答案是 (1)
(76) min 过了这题
int main()
{
cin>>a>>b;
if(a > b) swap(a,b);
if(a == 1) cout<<1<<endl;
else cout<<(ll)((ll)a*b+1)/2;
return 0;
}
C:
判断 (sqrt a + sqrt b) 是否小于 (sqrt c)。
刚开始想判掉相等到情况再直接比较,结果又 (WA)
正确解法:两边平方,移项,再平方,得到:
[4ac < (c - a - b)^2]
还可以注意到:(c < a + b) 时一定非法,要判掉
ll a,b,c;
int main()
{
cin>>a>>b>>c;
if(c - a - b >= 0 && 4 * a * b < (c - a - b) * (c - a - b)) puts("Yes");
else puts("No");
return 0;
}
D:等会补
以上是关于Atcoder Panasonic Programming Contest 2020 部分题解的主要内容,如果未能解决你的问题,请参考以下文章