南京理工大学第八届程序设计大赛 J water1
2016-04-17 23:47
375 查看
思路:水题
听说全球气候变暖,冰川融化,海水淹大地。着实好奇要融化多少冰川会淹没我的宿舍,哦不,淹没南京,反正NJUST应该总会是第一批被淹的。现将问题简化成一个二维坐标系的模型。有N个矩形块区域,每个区域有海拔(H)和宽度(W),区域按照顺序给出,比如有3个区域,第一个区域宽度为1,海拔为2,第二个区域宽度为5,海拔为6,第三个区域宽度为3,海拔为4,从图像上看就是像这样:(Y轴是海拔)8 7 6 +++++5 +++++4 ++++++++3
++++++++2 +++++++++1 +++++++++ 123456789假设最左边和最右边都是无限高的墙。为了简化问题,假设水流下来的速度是每秒一个单位的水,并且总是往区域一降水(某沿海地区)。现在请问要淹没所有的区域至少要多少时间(秒)?淹没的定义是,所有的区域表面至少覆盖一层水。如果没有区域则至少要放一滴水。上图例子中,淹没完如下:87 wwwwwwwww6 w+++++www5 w+++++www4 w++++++++3 w++++++++2 +++++++++1 +++++++++ 123456789所以需要19秒。
多CASE,测试数据以EOF结尾,对于每个CASE:第一行一个整数N(0 <= N <= 10^5)。接下去N行每行对应两个整数H(1 <= H <= 10^5),W(1 <= W <= 10^5)分别对应第N个区域的海拔和宽度。
一个整数,表示所需要的时间。
#include <bits/stdc++.h> #define N 100000 #define LL long long #define U unsigned using namespace std; int cas=1,T; int n,h[N+10],w[N+10]; LL ans; int main() { //freopen("1.in","w",stdout); //freopen("1.in","r",stdin); //freopen("1.out","w",stdout); //scanf("%d",&T); while(scanf("%d",&n)==1) { ans=0; if(n==0) { puts("1");continue; } int maxh=0; for(int i=0;i<n;i++) { scanf("%d%d",&h[i],&w[i]); maxh=max(maxh,h[i]); } maxh++; for(int i=0;i<n;i++) ans+=(LL)w[i]*(maxh-h[i]); printf("%lld\n",ans); } //printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC); return 0; }
Description
听说全球气候变暖,冰川融化,海水淹大地。着实好奇要融化多少冰川会淹没我的宿舍,哦不,淹没南京,反正NJUST应该总会是第一批被淹的。现将问题简化成一个二维坐标系的模型。有N个矩形块区域,每个区域有海拔(H)和宽度(W),区域按照顺序给出,比如有3个区域,第一个区域宽度为1,海拔为2,第二个区域宽度为5,海拔为6,第三个区域宽度为3,海拔为4,从图像上看就是像这样:(Y轴是海拔)8 7 6 +++++5 +++++4 ++++++++3++++++++2 +++++++++1 +++++++++ 123456789假设最左边和最右边都是无限高的墙。为了简化问题,假设水流下来的速度是每秒一个单位的水,并且总是往区域一降水(某沿海地区)。现在请问要淹没所有的区域至少要多少时间(秒)?淹没的定义是,所有的区域表面至少覆盖一层水。如果没有区域则至少要放一滴水。上图例子中,淹没完如下:87 wwwwwwwww6 w+++++www5 w+++++www4 w++++++++3 w++++++++2 +++++++++1 +++++++++ 123456789所以需要19秒。
Input
多CASE,测试数据以EOF结尾,对于每个CASE:第一行一个整数N(0 <= N <= 10^5)。接下去N行每行对应两个整数H(1 <= H <= 10^5),W(1 <= W <= 10^5)分别对应第N个区域的海拔和宽度。
Output
一个整数,表示所需要的时间。
Sample Input
3 2 1 6 5 4 3
Sample Output
19
相关文章推荐
- MacOS 搭建PHP开发环境
- Remove Duplicates from Sorted List II
- 基于3D彩票Knn算法的遗漏模式挖掘
- 南京理工大学第八届程序设计大赛 H 谁才是最强战舰!
- LeetCode【1】Two Sum
- 成都Uber优步司机奖励政策(4月17日)
- es6函数的扩展
- 学习小结(上册第五章)
- 一张照片让你的安卓手机崩溃
- 实习心得《一》
- 强迫深究Java中的回调
- java之Socket模拟服务器端与客户端
- ListView的HeaderView和Footer
- 继续说一下2016里面的json功能(1)
- JS的事件处理
- ecshop 的密码是什么规则?
- mybatis的sqlsessionFactory
- ERROR 1217 (23000) at line 19: Cannot delete or update a parent row: a foreign key constraint fails
- STM32的时钟树深入详解
- 南京理工大学第八届程序设计大赛 F sequence