cf真的难……
点我浏览丧题。
【A】Arpa和她对墨西哥人浪的研究
Arpa正在对墨西哥人浪进行研究。
有n个人站成一排,从1到n编号,他们从时刻0开始墨西哥人浪。
在时刻1,第一个人站起来。
在时刻2,第二个人站起来。
...
在时刻k,第k个人站起来。
在时刻k+1,第k+1个人站起来,第1个人坐下。
在时刻k+2,第k+2个人站起来,第2个人坐下。
...
在时刻n,第n个人站起来,第n-k个人坐下。
在时刻n+1,第n-k+1个人坐下。
...
在时刻n+k,第n个人坐下。
Arpa想知道在时刻t,有几个人站着。
输入
三个正整数,n,k,t。(1<=t<n+k)
输出
一个整数,表示有几个人站着。
样例输入
10 5 3
样例输出
3
题解
水题,直接贴代码,自行理解。
#include<cstdio>
int n,k,t;
int main(){
scanf("%d%d%d",&n,&k,&t);
if(t<k) {printf("%d",t); return ;}
if(t>n) {printf("%d",n+k-t); return ;}
if(t>=k&&t<=n) {printf("%d",k); return ;}
return ;
}
【B】Arpa和几何考试
Arpa在参加一场几何考试,最后一题是这样的:
有三个点A,B,C。问是否能找到一个点O和一个角度α,使得A,B,C三点以O为旋转中心,以α为旋转角,A点落到B点的位置,B点落到C点的位置。Arpa想知道有没有答案。
输入
六个整数,ax,ay,bx,by,cx,cy,分别是A,B,C三点的横纵坐标,保证A,B,C互异。(-10^9<=ax,ay,bx,by,cx,cy<=10^9)
输出
Yes或No表示有没有解。
输入样例1
0 1 1 1 1 0
输出样例1
Yes
输入样例2
1 1 0 0 1000 1000
输出样例2
No
题解
A->B,B->C,那么,AB必将等于BC(想想为什么)。
既然如此,我们先把AB≠BC的情况输出。考虑AB=BC,作AB,BC中垂线,交于O,那么有全等三角形,可以旋转得到。但如果没有交点,只有可能是共线情况,特判即可。
#include<cstdio>
#include<iostream>
using namespace std;
long long ax,ay,bx,by,cx,cy;
int main(){
cin>>ax>>ay>>bx>>by>>cx>>cy;
if((ax-bx)*(ax-bx)+(ay-by)*(ay-by)!=(bx-cx)*(bx-cx)+(by-cy)*(by-cy)) puts("No");
else if((ax-bx)*(by-cy)==(ay-by)*(bx-cx)) puts("No");
else puts("Yes");
return ;
}
【C】【D】【E】丧的不行,全都不会,E题可能可做,就先烂尾吧。