博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 215D. Hot Days(贪心)
阅读量:4319 次
发布时间:2019-06-06

本文共 1542 字,大约阅读时间需要 5 分钟。

在这里插入图片描述

题意

nnn个地区和mmm个学生,在第iii个地区时,车上有kik_iki个学生,车内温度(当前城市的温度tit_iti+当前车上的学生kik_iki)不能超过TiT_iTi,否则,赔偿每个学生xix_ixi元,没经过一个地方,要花费costicost_icosti元,求通过nnn个地区所需要的最少花费(车上可以坐无限多的人,每经过一个地方,学生可以不坐在车上)

思路

  • 如果当前城市的温度tit_iti高于TiT_iTi,那么不论车上有多少人,都需要进行赔偿,所以让所有的人都上车,进行一次赔偿,花费为costi+xi×mcost_i+x_i\times mcosti+xi×m
  • 如果当前城市温度ti+m≤Tit_i+m\leq T_iti+mTi,满足所有人都在车上,并且不需要进行赔偿,所以此时花费为costicost_icosti
  • 如果当前城市温度不超过TiT_iTi,但是当所有人都在车上时,温度超过了TiT_iTi,那么就要讨论是所有人在一辆车上一起通过还是在多辆车上,每辆车带的人数kkk满足k+ti≤Tik+t_i\leq T_ik+tiTi这两种情况哪种花费少

AC代码

/*************************************************************************	> File Name: 215D.cpp	> Author: WZY	> QQ: 2697097900	> Created Time: 2018年12月04日 星期二 18时05分14秒 ************************************************************************/#include
#define ll long long#define ull unsigned long long#define ms(a,b) memset(a,b,sizeof(a))#define pi acos(-1.0)#define INF 0x7f7f7f7fconst double E=exp(1);const int maxn=1e6+10;const int mod=1e9+7;using namespace std;int main(int argc, char const *argv[]){
ios::sync_with_stdio(false); int n,m; cin>>n>>m; ll t,T,x,cost; ll ans=0; for(int i=0;i
>t>>T>>x>>cost; ll tt=T-t; // 情况一 if(tt<=0) ans+=cost+x*m; // 情况二 else if(tt>=m) ans+=cost; // 情况三 else {
ll k=(m+tt-1)/tt; ll res1=cost*k; ll res2=cost+x*m; ans+=min(res1,res2); } } cout<
<

转载于:https://www.cnblogs.com/Friends-A/p/10324322.html

你可能感兴趣的文章
.NET 常用加密、解密& 数字签名算法
查看>>
开博声明
查看>>
FileReader读取文件
查看>>
逆向-攻防世界-re2-cpp-is-awesome
查看>>
Oracle分割字符串 REGEXP_SUBSTR用法
查看>>
O/R Mapping实际开发经验之谈(转)
查看>>
今天才知道原来我还没弄清楚js中全局变量和局部变量的定义...
查看>>
用户心理特征
查看>>
【z05】聪明的质检员
查看>>
【5001】n皇后问题
查看>>
【codeforces 796D】Police Stations
查看>>
数据库事务与锁详解
查看>>
linux 配置ssh免密码登录
查看>>
《重构》的读后感
查看>>
MySQL索引分析和优化
查看>>
DB2中通用的存储进程分页法度典范
查看>>
Fetchmail 6.3.8
查看>>
俄罗斯邮政将迁移到Linux 有关机构已末尾测试Linux
查看>>
SunOS 4上MySQL详尽事变
查看>>
python升级后pip 不可用 卸载pip
查看>>