2021年牛客暑期多校训练营2
A Arithmetic Progression(待)
题意:
题解:
注意:
代码:
B Cannon(待)
题意:
题解:
注意:
代码:
C Draw Grids
题意:
签到题,轮流进行操作,使得这个图始终不连通
题解:
根据点的奇偶性,进行判断
注意:
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
scanf("%d%d",&n,&m);
if((n*m)&1)printf("NO\n");
else printf("YES\n");
return 0;
}
D Er Ba Game
题意:
继续签到,根据题目所说的一个个条件模拟即可
题解:
模拟
注意:
条件考虑的全面充分一点,不要漏了特殊情况,比如说两个数都相等
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
scanf("%d", &t);
int a1, b1, a2, b2;
while (t--) {
scanf("%d%d%d%d", &a1, &b1, &a2, &b2);
if (a1 > b1)swap(a1, b1);
if (a2 > b2)swap(a2, b2);
if (a1 == 2 && b1 == 8 && a2 == 2 && b2 == 8) {
printf("tie\n");
} else if (a1 == 2 && b1 == 8) {
printf("first\n");
} else if (a2 == 2 && b2 == 8) {
printf("second\n");
} else if (a1 == a2 && b1 == b2)printf("tie\n");
else if (a1 == b1 && a2 == b2) {
if (a1 > a2)printf("first\n");
else if (a1 < a2)printf("second\n");
else printf("tie\n");
} else if (a1 == b1 && a2 != b2) {
printf("first\n");
} else if (a2 == b2 && a1 != b1) {
printf("second\n");
} else if (a1 != b1 && a2 != b2) {
if ((a1 + b1) % 10 > (a2 + b2) % 10)printf("first\n");
else if ((a1 + b1) % 10 < (a2 + b2) % 10)printf("second\n");
else {
if (b1 > b2)printf("first\n");
else if (b2 > b1)printf("second\n");
}
}
}
return 0;
}
E Gas Station(待)
题意:
题解:
注意:
代码:
F Girlfriend
题意:
给定4个点和2个模式的公式,求这模型形成的空间图形的体积交⛵
题解:
详情参考,通过给定的方程可以发现,在二维中AP=λBP(λ≠1)P点的轨迹是一个圆,那么在三维中P点轨迹则应该是一个球,也就是说是求两个球的体积交。化简公式有
\(\begin{align}&(1−k^2)(x_p^2+y_p^2+z_p^2)+x_p(2k^2x_2−2x_1)+y_p(2k^2y_2−2y_1)+z_p(2k^2z_2−2z_1)+&\\&x_1^2+y_1^2+z_1^2−k^2(x_2^2+y_2^2+z_2^2)=0&\end{align}\)
球的方程:\(x^2+y^2+z^2+2ax+2by+2cz+d=0\) 圆心: (-a,-b,-c) 半径: \(\sqrt{ a^2+b^2+c^2−d}\)
从而可以找到这两个球的球心和半径,根据球心距离与半径的比较,来判断是否相交