A——Distanced Coloring
分析可知,将长和宽分别与k取min后相乘即可
#include<bits/stdc++.h>
using namespace std;
void solve()
{
int n,m,k;
cin>>n>>m>>k;
cout<<min(n,k)*min(m,k)<<'\n';
}
int main()
{
int t;
cin>>t;
while(t--) solve();
return 0;
}
B——Removals Game
分析可知要么数组a和b一样,要么a和b的倒序一样Bob才能赢,否则Alice赢。
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int a[N],b[N];
void solve()
{
int n,flg=1;
cin>>n;
// a[0]=-1,a[n+1]=-2,b[0]=-3,b[n+1]=-4;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
for(int i=1;i<=n;i++)
{
if(a[i]!=b[i])
{
flg=0;
break;
}
}
if(flg)
{
cout<<"Bob\n";
return;
}
flg=1;
for(int i=1;i<=n;i++)
{
if(a[i]!=b[n-i+1])
{
flg=0;
break;
}
}
if(flg)
cout<<"Bob\n";
else cout<<"Alice\n";
}
int main()
{
int t;
cin>>t;
while(t--) solve();
return 0;
}
C——Black Circles
计算几何,点和圆移动速度一样快,只需要比较一下距离终点最近的圆心和起始点哪个更近就行(计算几何交给D神就行,再简单也不想写 狗头.jpg)
#include<bits/stdc++.h>
using namespace std;
#define PI acos(-1)
const int N=2e5+10;
struct point
{
double x,y;
};
point operator+(point a,point b)
{
point s;
s.x=a.x+b.x;
s.y=a.y+b.y;
return s;
}
point operator-(point a,point b)
{
point s;
s.x=a.x-b.x;
s.y=a.y-b.y;
return s;
}
double dis(point a,point b)
{
return sqrt(1.0*(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
point p[N];
void solve()
{
int n,flg=1;
double dis_res;
cin>>n;
point a,b;
for(int i=1;i<=n;i++) cin>>p[i].x>>p[i].y;
cin>>a.x>>a.y>>b.x>>b.y;
dis_res=dis(a,b);
for(int i=1;i<=n;i++)
{
if(dis(p[i],b)<=dis_res)
{
flg=0;
break;
}
}
if(flg) cout<<"Yes\n";
else cout<<"No\n";
}
int main()
{
int t;
cin>>t;
while(t--) solve();
return 0;
}