蒟蒻的补题日记——EPIC Institute of Technology Round August 2024

40 阅读1分钟

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;
}