[洛谷P3697]开心派对小火车
题目:洛谷P3697
题目大意是有各站停列车(慢车,相邻2站时间A)和特急列车(相邻2站时间B),特急列车在特定站点停靠。
现在加一种快速列车(相邻2站时间C,A>C>B),停靠K站(包括所有特急列车停靠的站点),要求你设计快速列车的停靠站点,好让1号站点的人T分钟能到达的站点数尽可能多。(相邻指编号相邻的两站,如2号站和3号站)
具体见原题目。
我们设特急列车本次停靠点A,和下次停靠点B,再设从A坐慢车最远到达C,可知A到C之间不需要设任何快速站点。
那么就需要在C的后一个站D设快速站点。
#include<cstdio>
#include<algorithm>
#include<cctype>
#include <ext/pb_ds/priority_queue.hpp>
using namespace __gnu_pbds;
using std::min;
#define C c=getchar()
#define LL long long
struct heap{
LL i,succ,rest,v;
short f;
bool operator <(const heap& rhs)const{
if(f!=rhs.f)return f<rhs.f;
return(v<rhs.v);
}
}now;
LL a,b,c,n,m,k,t,s[3005],ans=0;
LL readLL(){
char C;
while(!isdigit(c))C;
LL p=0;
while(isdigit(c)){
p=p*10+c-'0';
C;
}
return p;
}
priority_queue<heap>d;
int main(){
n=readLL(),m=readLL(),k=readLL(),a=readLL(),b=readLL(),c=readLL(),t=readLL();
for(int i=1;i<=m;i++)s[i]=readLL();
for(int i=1;i<m;i++)
if(t>b*(s[i]-1))d.push((heap){s[i],s[i+1],t-(s[i]-1)*b,min(s[i+1]-s[i],(t-(s[i]-1)*b-1)/a+1),1});else break;
if(t>b*(n-1))ans++;//最后一个站一定为特急列车站,如果能到则答案直接加1。
k-=m;
while(!d.empty()&&k){
now=d.top();
d.pop();
if(!now.f)k--;
ans+=now.v;
if(now.v&&now.rest>now.v*c)d.push((heap){now.i+now.v,now.succ,now.rest-c*now.v,min(now.succ-now.i-now.v,(now.rest-now.v*c-1)/a+1),0});
}
printf("%lld\n",ans-1);//第一个站为起点,不加入计算。
return 0;
}
此题K<=3000,不用堆应该也能解决
[洛谷P3697]开心派对小火车的更多相关文章
- [洛谷201704R1]开心派对小火车
OJ题号:洛谷P3697 思路: 贪心.首先从起点出发,开特急电车,对于每一个特急车站$s_{i}$,分别下一次车,计算从当前车站$s_{i}$出发坐各停电车在指定时限内$t$最远能够到达的车站$r_ ...
- 洛谷 P3951 NOIP 2017 小凯的疑惑
洛谷 P3951 NOIP 2017 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付 ...
- 【洛谷2304_LOJ2134】[NOI2015]小园丁与老司机(动态规划_网络流)
题目: 洛谷 2304 LOJ 2134 (LOJ 上每个测试点有部分分) 写了快一天 -- 好菜啊 分析: 毒瘤二合一题 -- 注意本题(及本文)使用 \(x\) 向右,\(y\) 向上的「数学坐标 ...
- 洛谷 P2709 BZOJ 3781 小B的询问
题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求$\sum_1^Kc_i^2$的值,其中$c_i$表示数字i在[L..R]中的重复次数.小B请 ...
- 不失一般性和快捷性地判定决策单调(洛谷P1912 [NOI2009]诗人小G)(动态规划,决策单调性,单调队列)
洛谷题目传送门 闲话 看完洛谷larryzhong巨佬的题解,蒟蒻一脸懵逼 如果哪年NOI(放心我这样的蒟蒻是去不了的)又来个决策单调性优化DP,那蒟蒻是不是会看都看不出来直接爆\(0\)?! 还是要 ...
- 【洛谷P4251】[SCOI2015]小凸玩矩阵(二分+二分图匹配)
洛谷 题意: 给出一个\(n*m\)的矩阵\(A\).现要从中选出\(n\)个数,任意两个数不能在同一行或者同一列. 现在问选出的\(n\)个数中第\(k\)大的数的最小值是多少. 思路: 显然二分一 ...
- 洛谷U5653 宋荣子的小饼干
题目描述 楼下机房的LYL有n个妹子,分别编号为a1,a2……an,每个妹子都拥有一定数量的小饼干.有一天,saruka没有吃晚饭,饿的不要不要的,这时,他忽然想起了LYL的妹子们有小饼干可以吃.于是 ...
- 洛谷 P1060 开心的金明
开心的金明 Problem Description: 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些 ...
- 洛谷银牛派对SPFA
题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...
随机推荐
- [luogu3237 HNOI2014] 米特运输 (树形dp)
传送门 Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. D星上有N个城市,我们将其顺序编号为1到N, ...
- 【LibreOJ 6279】 数列分块入门 3 (分块)
传送门 code: //By Menteur_Hxy #include<cstdio> #include<iostream> #include<algorithm> ...
- 处理问题:windows server 2016由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系
windows server可以多用户同时登陆,默认最大远程登录数量为2,如果有更多人需要同时远程登录,则需要安装远程桌面授权服务,第一次安装后,免费期为120天,超过则无法正常远程登录. 解决办法如 ...
- 02.OOP面向对象-2.例子
class clothes: #初始化属性 def __init__(self,name,color): self.name = name self.color = color #转字符串 def _ ...
- 地图API示例
http://developer.baidu.com/map/jsdemo.htm#i6_2
- JavaScript CSS 实现简单的 TAB 标签切换
使用CSS隐藏所有tab页,然后使用JavaScript给选中的元素对应ID的tab页设置class="active"类来显示该元素,以此实现tab切换. 如鼠标放置到shwww时 ...
- 判断webservice是否可用
在.net中验证WebService的Url有效并且验证服务可用: 需要用到win32下的组件,比如Microsoft XML, v5.0 测试程序具体如下:建一个项目,在你的引用中添加COM---找 ...
- Ajax接收json响应
json? Json和xml比较 Ajax如何使用JSON Ajax接收json响应案例 什么是json?JSON (JavaScript Object Notation) 是一种轻量级的 ...
- nodejs-app.js
设置静态目录 1 2 app.use(express.static(path.join(__dirname, 'public'))); //设置模版渲染的js,css,images的静态文件目录 设置 ...
- 支付宝接口程序、文档及解读(ASP.NET)
最近需要为网站加入支付宝的充值接口,而目前关于支付宝接口开发的资料比较杂乱,这里就我此次开发所用到的资料进行汇总整理,希望能够帮助需要的朋友. 开发步骤: 1. 确定签约类型 支付宝的接口有多种类型, ...