Test20200610
Posted sususos
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Test20200610相关的知识,希望对你有一定的参考价值。
T1 第一题(eat.cpp/c/pas)
贪心 排序 模拟
【问题描述】
凶猛的**出来吃人了!每天早晨,**从大山里出来,到达一个城市,然后花费一整天的时间把这座城市里的人吃光。直到夜晚,**才回到山中去。当**经过一个城市时,不管是否吃人,它都会把这座城市彻底破坏,以至于下次不能再到这个城市吃人了。显然,城市里的居民无法忍受这样的状况。所以,每天夜晚,每座城市里都会有一个人逃到乡下去,到了乡下以后**就永远吃不到他了。城市之间有一些双向道路连接着。其中 1 号城市连接着大山,即**每天的旅途的起点。当然,**只能沿着这些道路走。**意识到必须抓紧时间吃人,所以它每天都要认真选取要去的城市,当然它不能选择已经被吃过或破坏过的城市。现在问题来了,在所有城市没有人居住之前,**最多能吃掉多少人?
【输入】
输入文件名为 eat.in。
第一行两个整数??, ??,用一个空格隔开,表示城市的个数和道路数。
第二行??个整数????,表示每座城市初始的人数。两个数之间用一个空格隔开。
接下来??行,每行两个整数??, ??(1 ≤ ??, ?? ≤ ??, ?? ≠ ??),用一个空格隔开,表示城市??和城市??之间有一条双向道路。城市 1 和大山之间也有一条双向道路。
数据保证所有城市都存在到城市 1 的路径。
【输出】
输出文件名为 eat.out。
输出共一行一个整数,表示在所有城市没有人居住之前,**最多能吃掉的人数。
【输入输出样例】
eat.in
5 5
1 3 2 4 7
1 2
1 3
2 3
2 4
3 5
eat.out
11
【数据说明】
对于 10%的数据,1 ≤ ?? ≤ 5,0 ≤ ?? ≤ 10,0 ≤ ???? ≤ 5。
对于 30%的数据,1 ≤ ?? ≤ 200,0 ≤ ?? ≤ 500,0 ≤ ???? ≤ 200。
对于 60%的数据,1 ≤ ?? ≤ 2,000,0 ≤ ?? ≤ 10,000,0 ≤ ???? ≤ 20,000。
对于 100%的数据,1 ≤ ?? ≤ 200,000,0 ≤ ?? ≤ 2,000,000,0 ≤ ???? ≤ 2,000,000。
第 ?? 天到达某个城市时,人数减少 $dfrac {kleft( k-1
ight) }{2}$
1 #include<bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 inline int read() 5 { 6 int x=0;char c=getchar(); 7 for(;!isdigit(c);c=getchar()); 8 for(;isdigit(c);c=getchar()) x=x*10+c-‘0‘; 9 return x; 10 } 11 int n,m,a[200005]; 12 ll ans=0,sum=0; 13 int main() 14 { 15 freopen("eat.in","r",stdin); 16 freopen("eat.out","w",stdout); 17 n=read();m=read(); 18 for(int i=1;i<=n;i++) 19 a[i]=read(); 20 sort(a+1,a+n+1); 21 for(int i=n;i;i--) 22 { 23 sum+=a[i]; 24 ans=max(ans,sum-(ll)1*(n-i+1)*(n-i)/2); 25 } 26 cout<<ans<<endl; 27 return 0; 28 }
以上是关于Test20200610的主要内容,如果未能解决你的问题,请参考以下文章
20200610 千锋教育 Redis 2. Redis 命令数据类型
[React Testing] Use Generated Data in Tests with tests-data-bot to Improve Test Maintainability(代码片段