XJOI练习2神奇的供水系统
神奇的供水系统
在游遍神秘岛过程中,Z4发现每一个小岛上都有若干个奇怪的类似小水缸似的立方体,这另到Z4相当迷惑不解!这天晚上,忽然下起了一场大雨,在中心岛小树屋上类似那个圆形石槽中间的小孔中涌出了一泓清水,z4不禁一阵欢呼也不自觉的联想起那些类似小水缸的东西。
经过一连数日的观察,发现那些形似小水缸是用来收集雨水的集水器,连同有很多埋在地底下的贮水器形成一个庞大的供水系统。而且特别的是这个供水网络不存在循环连接,也就是贮水系统的连接不存在环。
供水系统是用粗幼不同的水管连接,所有水管都是单向传输的。所有的集水器都有且仅有一条指向某个贮水器的输出水管。所有的贮水器都连有若干条或自某集水器连至或自其他贮水器连至的输入水管,也有且仅有一条连向其他贮水器的输出水管。在小树屋地底下有一个中央贮水器,类似于其他贮水器,所有收集到的雨水将最终汇集到这里,它的输出水管直接供应上树屋。
这套供水系统是这样工作的:下雨过后,每个集水器都收集到一定体积的水,并通过水管,贮水器向中央贮水器汇集。而当任意一个贮水器所有输入水管都输送完毕,他的输出水管才会开启,把当中所有的水输送出去。直到中央贮水器的出水水管开启时,树屋上的Z4(可怜的Z4!)才得到水供应。
由于严密的设计,所有贮水器的容量都是足够的大!
由于水管粗幼不同,所以每道水管运水的速度各不相同。
现在问题是,当雨停后过多久,中央贮水器才会向树屋上供水?智慧过人的Z4当然不会给自己计算找麻烦,所有数据中的时间单位统一为s,体积单位统一为L。
输入格式:
输入文件water.in的第一行包括四个整数n,m,s_rain,t_rain(1<=n<=1000,1<=m<=1000000)分别表示n个贮水器,m个集水器,了方便计算,Z4人为地把他们分别按1..n,1..m标号,而其中第n个贮水器即为中央贮水器,s_rain表示单位时间里单位面积的降雨量,t_rain表示该次降雨持续时间。
接下来的m行分别描述第1至第m个集水器。每行含有四个整数S,h,k,t。S表示该集水器容器底面积,h表示容器的高(S*h<=20000),k表示该集水器输出水管指向第k个贮水器,t表示输出水管输送一单位的水所用的时间。
再接下来n-1行分别描述第1至第n-1个贮水器。每行包括两个整数k,t。k表示该贮水器输出水管指向第k个贮水器,t表示该贮水器的输出水管输送一单位的水所用的时间。
输出格式:
输出文件water.out只有一行,表示雨停后直到得到水供应的时间.(结果肯定<=maxlongint)
样例输入:
5 5 1 1 10 1 1 2 5 1 3 4 10 1 4 3 10 1 4 6 8 1 5 9 2 2 5 1 5 2 5 2
样例输出:
100
这道题看似很麻烦实际很水,所有的集水器与储水器都只在灌满水后才会输向下一个储水器,这又是一棵树,深搜即可。
#include<cstdio> #include<iostream> using namespace std; ],Vo[],Sp[],tree[][],size[]; inline void dfs(int x) { ;i<=size[x];i++) { dfs(tree[x][i]); Ti[x]=max(Ti[x],Ti[tree[x][i]]+Vo[tree[x][i]]*Sp[tree[x][i]]); Vo[x]+=Vo[tree[x][i]]; } } int main() { int n,m,s,t,s1,h1,k,sp1,vo1; scanf("%d%d%d%d",&n,&m,&s,&t); s*=t; ;i<=m;i++) { scanf("%d%d%d%d",&s1,&h1,&k,&sp1); vo1=min(s1*h1,s*s1); Vo[k]+=vo1; Ti[k]=max(Ti[k],vo1*sp1); } ;i<n;i++) { scanf("%d%d",&k,&Sp[i]); tree[k][++size[k]]=i; } dfs(n); printf("%d",Ti[n]); ; }
XJOI练习2神奇的供水系统的更多相关文章
- BA-给排水-供水系统自动控制(转载)
浙江省建筑设计研究院划 杨绍胤 杨庆 摘 要:探讨供水系统变流量和恒压自动控制和设计方法.关键词: 供水系统 自动控制 传统给水系统常在屋顶设置高位水箱.水从地下水箱用水泵打到高位水箱.从高位水箱通过 ...
- 神奇的Bank系统之旅哦
奋斗不能等待,我们不能等到垂暮之年再去“全力以赴”.让我们从现在开始,为理想而努力,为人生而拼搏.精诚所至,金石为开,相信奋斗会让我们的青春之花绽放得更加绚烂,让我们的人生之路走下来不留遗憾. ...
- OpenWrt——神奇的路由系统
鉴于最近大家对这个系统比较感兴趣而且疑问很多所以本渣就整理下我对这个系统的理解和最实用的802.1x认证的理解.还望大家多多互相交流. 如果您时间紧张直接看最后的步骤,时间充裕的请仔细阅读,理解. O ...
- linux 系统函数 basename和dirname
在linux系统中有这样两个系统函数,basename 和 dirname 1.basename 用于 获取文件名, 1.1 当给定扩展名作为参数之后,甚至可以直接获取文件名 2.与basename ...
- 什么是英特尔® Edison 模块?
英特尔® Edison 模块 是一种 SD 卡大小的微型计算芯片,专为构建物联网 (IoT) 和可穿戴计算产品而设计. Edison 模块内含一个高速的双核处理单元.集成 Wi-Fi*.蓝牙* 低能耗 ...
- 谁让APP工程师产生了泡沫?
这两年移动互联网比较火,移动APP的开发人员也是比较紧缺. 面试了一个做APP的,能力很一般,态度也比较傲慢.最后感觉肯定不会用这个人了,但是出于验证自己想法的目的,还是很诚恳地以一个决定录取他的态度 ...
- [题解]noip2016普及组题解和心得
[前言] 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. 第一题可以说的内 ...
- 项目经验之:GIS的初步工作窗体的搭建
不多说了,上图,初步工作刚好完 GIS平台系统,实现整个供水系统的协调与统一.系统以管网为基础依据,建立可实现供水管网规划设计.输配管理.图档管理.抢修辅助决策及综合查询.统计等功能. 整体窗口设计 ...
- ZeroMQ:云计算时代最好的通讯库
还在学socket编程吗?还在研究为什么epoll比select更好吗? 噢,不必了! 在复杂的云计算环境中,我们面临的难题远比这个复杂得多. 庞大的服务器集群作为计算云,对来来看或许只是一个简单的搜 ...
随机推荐
- android学习11——Handler,Looper,MessageQueue工作原理
Message是Handler接收和处理的消息对象. 每个线程只能拥有一个Looper.它的loop方法读取MessageQueue中的消息,读到消息之后就把消息交给发送该消息的Handler进行处理 ...
- 【UWP】FFmpeg库的编译
本文是关于windows8.1/windows10通用应用下编译ffmpeg的一些需要注意的地方,针对最新的msys2而写,都是我在实际操作中遇到的,但是网上没有提到的.如果大家遇到什么问题或是在之前 ...
- .NET Core中妙用unsafe减少gc提升字符串处理性能
一.前言 昨天在群里讨论怎么样效率的把一个字符串进行反转,一般的情况我们都知道,只要对String对象进行操作,那么就会生成新的String对象,比如"1"+"2&quo ...
- 走进javascript——解开switch之谜
很早以前就觉得switch很怪异,或者说一直没太理解它,它怪异就怪异在非要给每个语句加上break;不然后面的语句就算不符合条件还是会执行,比如以下这段代码 var num = 2; switch(n ...
- Winfrom 程序打包及安装
前言 近期被公司外派到驻空调厂的项目组,支援一个TCP相关的程序对接.主要是做智能门禁系统,然后主要是统计出实时的进出人数. 我这边能作为服务端,门禁设备作为客户端,整个流程并不算复杂,根据协议来写, ...
- H5缓存-Manifest
在app中更新h5页面一直有缓存问题.默认什么都不做的情况下,app有一定的空间缓存页面.一开始更新之后会马上加载,等到app缓存空间上来之后更新就无法下载了.安卓能够清理缓存空间,ios就只能卸载重 ...
- 每天一个linux命令(51)--grep命令
linux系统中grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep 全称是 global regular expression print,表示全局正则 ...
- 第26篇 jQuery 快速学习下
前面说了下jQuery了,大部分说的都是选择器和过滤器方面的东西,这个写完后,后面就说下剩下的东西了,离目标越来越近了.下面就说说这些东西 事件 传统比较 在js中说了原生js的绑定事件,基本的形式如 ...
- MySQL 5.7 安装完成后,立即要调整的性能选项
原文:MySQL 5.7 Performance Tuning Immediately After Installation 本文是对上一篇<安装 MySQL 后,需要调整的 10 个性能配置项 ...
- 在Vue中通过自定义指令获取元素
vue.js 是数据绑定的框架,大部分情况下我们都不需要直接操作 DOM Element,但在某些时候,我们还是有获取DOM Element的需求的: 在 vue.js 中,获取某个DOM Eleme ...