神奇的供水系统

在游遍神秘岛过程中,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神奇的供水系统的更多相关文章

  1. BA-给排水-供水系统自动控制(转载)

    浙江省建筑设计研究院划 杨绍胤 杨庆 摘 要:探讨供水系统变流量和恒压自动控制和设计方法.关键词: 供水系统 自动控制 传统给水系统常在屋顶设置高位水箱.水从地下水箱用水泵打到高位水箱.从高位水箱通过 ...

  2. 神奇的Bank系统之旅哦

        奋斗不能等待,我们不能等到垂暮之年再去“全力以赴”.让我们从现在开始,为理想而努力,为人生而拼搏.精诚所至,金石为开,相信奋斗会让我们的青春之花绽放得更加绚烂,让我们的人生之路走下来不留遗憾. ...

  3. OpenWrt——神奇的路由系统

    鉴于最近大家对这个系统比较感兴趣而且疑问很多所以本渣就整理下我对这个系统的理解和最实用的802.1x认证的理解.还望大家多多互相交流. 如果您时间紧张直接看最后的步骤,时间充裕的请仔细阅读,理解. O ...

  4. linux 系统函数 basename和dirname

    在linux系统中有这样两个系统函数,basename 和  dirname 1.basename 用于 获取文件名, 1.1 当给定扩展名作为参数之后,甚至可以直接获取文件名 2.与basename ...

  5. 什么是英特尔® Edison 模块?

    英特尔® Edison 模块 是一种 SD 卡大小的微型计算芯片,专为构建物联网 (IoT) 和可穿戴计算产品而设计. Edison 模块内含一个高速的双核处理单元.集成 Wi-Fi*.蓝牙* 低能耗 ...

  6. 谁让APP工程师产生了泡沫?

    这两年移动互联网比较火,移动APP的开发人员也是比较紧缺. 面试了一个做APP的,能力很一般,态度也比较傲慢.最后感觉肯定不会用这个人了,但是出于验证自己想法的目的,还是很诚恳地以一个决定录取他的态度 ...

  7. [题解]noip2016普及组题解和心得

    [前言] 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. 第一题可以说的内 ...

  8. 项目经验之:GIS的初步工作窗体的搭建

    不多说了,上图,初步工作刚好完 GIS平台系统,实现整个供水系统的协调与统一.系统以管网为基础依据,建立可实现供水管网规划设计.输配管理.图档管理.抢修辅助决策及综合查询.统计等功能. 整体窗口设计 ...

  9. ZeroMQ:云计算时代最好的通讯库

    还在学socket编程吗?还在研究为什么epoll比select更好吗? 噢,不必了! 在复杂的云计算环境中,我们面临的难题远比这个复杂得多. 庞大的服务器集群作为计算云,对来来看或许只是一个简单的搜 ...

随机推荐

  1. Hangfire 使用笔记

    “巨人们”的地址 Hangfire Mysql: https://github.com/arnoldasgudas/Hangfire.MySqlStorage 在获取set表数据的sql语句有bug ...

  2. IE中使用ajaxSubmit上传文件弹出下载提示框

    使用jQuery的ajaxSubmit 上传文件时,在IE中会弹出下载提示框: 解决方法:让action返回String类型,而不是ActionView,

  3. java初级开发程序员(第五单元)

    1.循环结构(一):   语法:       while(循环条件){ //循环操作 } 示列代码: int i=1; while(i<=100){ System.out.println(&qu ...

  4. BZOJ1115:[POI2009]石子游戏Kam (博弈论)

    挺水的 听说是阶梯nim和,就去看了一下,然后就会了= = 观察题目,发现拿第i堆棋子k个造成的影响就是第i+1堆棋子能多拿k个 可以把模型转化为,有n堆石子,每次从某一堆拿一个石子,放在下一堆中,不 ...

  5. CSS3 3D的总结(初学者易懂)

    CSS3 3D案例的总结 如果要说是3D的基础概念,首先我就来说一说rotateX().rotateY().rotateZ()这几个属性 rotateX():对应的是3D模型中的X轴上的旋转,传入的参 ...

  6. 百度网盘免费扩容 免费扩容到2048G

    您可以用手机端扩容 http://yun.baidu.com/1t 免费扩容到2048G

  7. 使用LVS+keepalived实现mysql负载均衡的实践和总结

    前言 经过一段时间的积累,数据库的架构就需要根据项目不断的进行变化. 从单台数据库,到了两台数据库的主从,再到读写分离,再到双主,现在进一步需要更多的数据库服务器去支撑更加可怕的访问量. 那么经过那么 ...

  8. windows container (docker) 容器资料笔记

    背景 业务需求:简化公司私有云,公有云的部署,尝试寻找更好的,更优化的技术方案替换现有的虚拟机部署方案. 技术背景: .net Docker 学习资料 Docker中文社区: http://www.d ...

  9. C++ 11 学习2:空指针(nullptr) 和 基于范围的for循环(Range-based for loops)

    3.空指针(nullptr) 早在 1972 年,C语言诞生的初期,常数0带有常数及空指针的双重身分. C 使用 preprocessor macroNULL 表示空指针, 让 NULL 及 0 分别 ...

  10. Selenium 上传文件失败,解决办法一

    昨个改程序遇到一个问题,UI上面有需要上传文件的地方.但是我不知道怎么让Selenium完成 点击上传文件按钮->在弹出的文件选择窗口中选择路径和文件,点确定. 要知道弹出窗口属于window的 ...