首页 > 其他 > 详细

[CSP-S模拟测试45]题解

时间:2019-09-20 13:32:40      阅读:79      评论:0      收藏:0      [点我收藏+]

开局一行$srand$,得分全靠随机化。

 

A.kill

发现两个并不显然的性质:

1.选中的人和怪物一定是按顺序的。第一个人打所有被选中怪物的第一只,第二个人打第二只,$etc$。

2.最优方案打的怪物一定是一段连续的区间。(因为过去再反方向回来到任务点一定不优)

所以直接枚举第一个打哪只怪即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int read()
{
    int x=0,f=1;char ch=getchar();
    while(!isdigit(ch)){if(ch==‘-‘)f=-1;ch=getchar();}
    while(isdigit(ch))x=x*10+ch-‘0‘,ch=getchar();
    return x*f;
}
const int N=5005;
int p[N],q[N],n,m,s,vis[N];
ll ans=1e15;
int abss(int x)
{
    return x>0?x:-x;
}
ll cost(int i,int j)
{
    return 1LL*(1LL*abss(p[i]-q[j])+1LL*abss(s-q[j]));
}
int main()
{
    n=read();m=read();s=read();
    for(int i=1;i<=n;i++)
        p[i]=read();
    for(int i=1;i<=m;i++)
        q[i]=read();
    sort(p+1,p+n+1);sort(q+1,q+m+1);
    for(int i=1;i<=m;i++)
    {
        ll tmp=0;
        for(int j=1;j<=n;j++)
            tmp=max(tmp,cost(j,i+j-1));
        ans=min(ans,tmp);
    }
    cout<<ans<<endl;
    return 0;
}

 

B.

 

 

C.

[CSP-S模拟测试45]题解

原文:https://www.cnblogs.com/Rorschach-XR/p/11556216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!