5 August
P1016 旅行家的预算
单调队列。
再看看单调队列怎么用的。
#include <cstdio>
int n, l, r;
double D, dd, d[9], C, p[9], ans;
struct node{
	double t, x;
} q[999];
int main() {
	scanf("%lf%lf%lf%lf%d", &D, &C, &dd, &p[0], &n); d[0]=0;
	for (int i=1; i<=n; ++i) {
		scanf("%lf%lf", &d[i], &p[i]);
		if (d[i]-d[i-1]>C*dd) {printf("No Solution\n"); return 0; }
	}
	d[n+1]=D; double now=0.0;
	q[++r]=(node){p[0], now=C}, ans+=p[0]*C;
	for (int i=1; i<=n+1; ++i) {
		double cos=(d[i]-d[i-1])/dd;
		while (l<=r && cos>0) {
			if (q[l].x>cos) {now-=cos, q[l].x-=cos; break; }
			now-=q[l].x, cos-=q[l].x; ++l;
		}
		if (i==n+1) {
			while (l<=r) ans-=q[l].t * q[l].x, ++l; break;
		}
		while (l<=r && q[r].t>p[i]) {
			ans-=q[r].t*q[r].x, now-=q[r].x; --r;
		}
		ans+=(C-now)*p[i];
		q[++r]=(node){p[i], C-now}; now=C;
	}
	printf("%.2lf\n", ans);
	return 0;
}
												
											5 August的更多相关文章
- Monthly Income Report – August 2016
		
原文链接:https://marcoschwartz.com/monthly-income-report-august-2016/ Every month, I publish a report of ...
 - [ZZ]Sign Up for the First-Ever Appium Roadshow on August 20th in New York City
		
http://sauceio.com/index.php/2014/07/appium-roadshow-nyc/?utm_source=feedly&utm_reader=feedly&am ...
 - 浙大月赛ZOJ Monthly, August 2014
		
Abs Problem Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Alice and Bob is playing a ga ...
 - [转载]ECMA-262 6th Edition / Draft August 24, 2014 Draft ECMAScript Language Specification
		
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-23.4 Draft Report Errors and Issues at: htt ...
 - 135 - ZOJ Monthly, August 2014
		
135 - ZOJ Monthly, August 2014 A:构造问题,推断序列奇偶性.非常easy发现最小值不是1就是0.最大值不是n就是n - 1,注意细节去构造就可以 E:dp.dp[i][ ...
 - git -remote: Support for password authentication was removed on August 13, 2021
		
克隆代码时,报错: Support for password authentication was removed on August 13, 2021. Please use a personal ...
 - August 31st 2016 Week 36th Tuesday
		
A friend without faults will never be found. 没有缺点的朋友是永远找不到的. You can't find a friends without faults ...
 - August 30th 2016 Week 36th Tuesday
		
If you keep on believing, the dreams that you wish will come true. 如果你坚定信念,就能梦想成真. I always believe ...
 - August 29th 2016 Week 36th Monday
		
Every has the capital to dream. 每个人都有做梦的本钱. Your vision, our mission. That is an advertisment of UMo ...
 - August 28th 2016 Week 36th Sunday
		
What doesn't kill you makes you stronger. 那些没有彻底击败你的东西只会让你更强大. Where there is life, there is hope, a ...
 
随机推荐
- Unity3D利用Logcat调试安卓
			
发布安卓包之后再次测试发生什么问题很难知道怎么了,比如说出现闪退等情况,可以用Logcat检测到,logcat是Android中一个命令行工具,可以用于得到程序的log信息,可以用 logcat 命令 ...
 - poj1065Wooden Sticks(dp——最长递减数列)
			
Description There is a pile of n wooden sticks. The length and weight of each stick are known in adv ...
 - Git008--远程仓库
			
Git--远程仓库 本文来自于:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ ...
 - 排序算法三:堆排序(Heapsort)
			
堆排序(Heapsort)是一种利用数据结构中的堆进行排序的算法,分为构建初始堆,减小堆的元素个数,调整堆共3步. (一)算法实现 protected void sort(int[] toSort) ...
 - HTML5--sessionStorage、localStorage、manifest
			
sessionStroage: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
 - CentOS7通过SpeedTest工具测速
			
首先要安装SpeedTest工具,这里提供两种方法安装SpeedTest: 一.通过直接下载SpeedTest脚本,给权限运行脚本即可 [root@bogon ~]#wget -O speedtest ...
 - spring-第八篇之容器中的bean的生命周期
			
1.容器中的bean的生命周期 spring容器可以管理singleton作用域的bean的生命周期,包括bean何时被创建.何时初始化完成.何时被销毁.客户端代码不能控制该类型bean的销毁.spr ...
 - project euler-34
			
145是个奇怪的数字.由于1!+ 4! + 5! = 1 + 24 + 120 = 145. 请求出能表示成其每位数的阶乘的和的全部数的和. 请注意:由于1! = 1和2! = 2不是和,故它们并不包 ...
 - 分布式ID增强篇--优化时钟回拨问题
			
原生实现 本文承接sharding-jdbc源码之分布式ID,在这篇文章中详细介绍了sharding-jdbc的分布式ID是如何实现的:很遗憾的是sharding-jdbc只是基于snowflake算 ...
 - Vue2.0源码阅读笔记(四):nextTick
			
在阅读 nextTick 的源码之前,要先弄明白 JS 执行环境运行机制,介绍 JS 执行环境的事件循环机制的文章很多,大部分都阐述的比较笼统,甚至有些文章说的是错误的,以下为个人理解,如有错误, ...