Demonstration(CodeForces-191B)【贪心】
2024-09-01 15:13:32
题目链接:https://vjudge.net/problem/CodeForces-191B
题意:过于繁琐,略
思路:真·神级贪心题
首先我们可以想到的是,为了在k天内选到最靠前的城市,我们要想办法在前k-1天挑选尽可能贵的城市,为第k天奠定基础。
先对前n-1个城市的举办活动价值排序,对前k大的求和得到sum,接下来:
<1>sum>=0,则不论前k-1天选择多么贵的城市,第k天都无法找到一个城市花光政府的钱,那么只能选择最差的城市
<2>sum<0,按序号由小到大判断该城市是否包含在sum中或者将sum的第一项替换为该城市后sum仍小于0,如果满足条件,则该城市则为最优解
代码如下:
#include<cstdio>
#include<algorithm>
using namespace std;
int n,k,a[],val[];
long long b;
int main(){
scanf("%d%d%I64d",&n,&k,&b);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
val[i]=a[i];
}
sort(val+,val+n);
long long sum=b;
for(int i=n-;i>=n-k;i--)
sum-=val[i];
if(sum>=){
printf("%d",n);
}
else {
int ans=-;
for(int i=;i<=n;i++){
if(a[i]>=val[n-k]||sum+val[n-k]-a[i]<){
ans=i;
break;
}
}
printf("%d",ans);
}
return ;
}
最新文章
- Socket programing(make a chat software) summary 1:How to accsess LAN from WAN
- NOI2005 聪聪和可可
- 什么是 jsonp ?
- apache2.4 以上设定gzip压缩
- 『转载』C# winform 中dataGridView的重绘(进度条,虚线,单元格合并等)
- Moqui学习Day4
- DALSA Coreco - 图像处理软件(Sapera LT )
- freebsd镜像作用和vmware服务开启
- JavaScript探秘系列
- JqueryUI-1
- Windbg抓取程序崩溃的dmp文件的方法
- list集合怎么转化成一个javaBean对象,及常见的使用方法(全)
- Geode集群搭建
- squashfs文件系统
- 深度学习之 GAN 进行 mnist 图片的生成
- 图数据库-Neo4j使用
- hdu 2098 分拆素数和(素数)
- vue系列之过渡效果
- Python算法(一)冒泡排序
- SpringMVC Controller 单例 多例
热门文章
- Java 有状态和无状态对象的区别
- Concurrent初探 --- Atomic 无锁
- Python3 输入和输出(二)
- Tcl模块化
- ubuntu16.04安装matlab_R2018a/R2017a
- Mininet系列实验(二):Mininet可视化应用
- arcgis python 更新日期为随机数
- 获取用户当前位置信息的两种方法——H5、微信
- SOCKET_CONNECT_TIMEOUT is the timeout for the connection to be established and SOCKET_TIMEOUT
- tornado异步请求响应速度的实例测试