标签:下标 移动 int 棋盘 ceil sts http puts display
上课上到一半被拉出来打这场。结果被教育了。
做题顺序: A(AC)->B(WA)->E(未交)->C(AC)->E(WA)->D(AC)->B(AC)->E(WA)
A:上来直接把下标写成\(n\)和\(n+1\),结果 \(WA\) 两次,直接心态爆炸
代码就不放了。
B
题意:\(n \times m\) 的棋盘上,一个棋子被放在 \((1,1)\) 位置,每次它能移动到所有 \(x + y\) 和 \(x - y\) 相等的格子上,问一共能访问多少个格子
看样例,答案就是 \(\left\lceil\dfrac{n \times m}{2}\right\rceil\) 哈哈哈哈
结果 \(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 部分题解
标签:下标 移动 int 棋盘 ceil sts http puts display
原文地址:https://www.cnblogs.com/yz-beacon-cwk/p/12502909.html