概述
【题目】
【分析】
看到题描是不是觉得特别吓人
其实这就是一道简单的签到题
这道题和图论没有太大关系,我们只要知道它是一个连通图就行了
我们按照每个城市的人数从大到小排序,每次都选出没选过的最大人数的城市,加进答案
由于每晚每个城市都会有 1 个人去乡下,所以第二天的答案减 1,第三天的答案减 1 再减 2,以此类推
最后在这些答案之中选出最大的就行了
【代码】
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 200005
using namespace std;
int a[N];
bool comp(int x,int y)
{
return x>y;
}
int main()
{
// freopen("eat.in","r",stdin);
// freopen("eat.out","w",stdout);
int n,m,i,x,y;
long long sum,num,maxn;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
//for(i=1;i<=m;++i)
scanf("%d%d",&x,&y);
sort(a+1,a+n+1,comp);
sum=0,num=0,maxn=0;
for(i=1;i<=n;++i)
{
num+=i-1;
sum+=a[i];
maxn=max(maxn,sum-num);
}
printf("%lld",maxn);
// fclose(stdin);
// fclose(stdout);
return 0;
}
最后
以上就是兴奋雪碧为你收集整理的【2018/09/08测试T1】【WOJ 3931】eat【题目】【分析】【代码】的全部内容,希望文章能够帮你解决【2018/09/08测试T1】【WOJ 3931】eat【题目】【分析】【代码】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复