南京理工大学第八届程序设计大赛(校外镜像)J题
来源:互联网 发布:淘宝数据魔方有用吗 编辑:程序博客网 时间:2024/05/22 04:40
water1
Time Limit: 1000MS
Memory Limit: 65536KB
Description
听说全球气候变暖,冰川融化,海水淹大地。着实好奇要融化多少冰川会淹没我的宿舍,哦不,淹没南京,反正NJUST应该总会是第一批被淹的。
现将问题简化成一个二维坐标系的模型。有N个矩形块区域,每个区域有海拔(H)和宽度(W),区域按照顺序给出,比如有3个区域,第一个区域宽度为1,海拔为2,第二个区域宽度为5,海拔为6,第三个区域宽度为3,海拔为4,从图像上看就是像这样:(Y轴是海拔)
8
7
6 +++++
5 +++++
4 ++++++++
3 ++++++++
2 +++++++++
1 +++++++++
123456789
假设最左边和最右边都是无限高的墙。
为了简化问题,假设水流下来的速度是每秒一个单位的水,并且总是往区域一降水(某沿海地区)。
现在请问要淹没所有的区域至少要多少时间(秒)?淹没的定义是,所有的区域表面至少覆盖一层水。如果没有区域则至少要放一滴水。
上图例子中,淹没完如下:
8
7 wwwwwwwww
6 w+++++www
5 w+++++www
4 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
这是最坑爹的一道题,命名非常简单,就是一个球面积的问题,可以一直卡在这里过不去,哎,全是泪……………………
解题思路:直接计算即可。
附上我的WA代码,和向别人要的AC代码,至少我是没感觉有什么区别………………
AC代码:
#include <iostream>#include <algorithm>using namespace std;int main(){ int n; int H[100010]; int W[100010]; int wight=0; while(cin>>n) { if(n==0) cout<<1<<endl; else { for(int i=0;i<n;i++) cin>>H[i]>>W[i]; int m_2=0; for(int k=0;k<n;k++) m_2+=(H[k]*W[k]); sort(H,H+n); int high=H[n-1]+1; for(int j=0;j<n;j++) wight+=W[j]; int m=wight*high; // cout<<"high"<<high<<"wight"<<wight<<endl; // cout<<"m"<<m<<"m_2"<<m_2<<endl; cout<<m-m_2<<endl; } } return 0;}
我的WA代码:
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){ int n; long long sum=0; long long sub=0; int h[100005]; int w[100005]; while(cin>>n) { if(n==0)cout<<1<<endl; else { sub=0; sum=0; int weight=0; int height=0; for(int i=0;i<n;i++) cin>>h[i]>>w[i]; for(int i=0;i<n;i++) { weight+=w[i]; sub+=w[i]*h[i]; } sort(h,h+n); height = h[n-1]+1; sum=weight*height; // cout<<sum<<endl; //cout<<sub<<endl; sum-=sub; cout<<sum<<endl; } } return 0;}
开始的时候没用数组,直接计算,原理和这份代码一样,看了他的代码之后就也用了数组,可是还是WA!!!真的要疯了
0 0
- 南京理工大学第八届程序设计大赛(校外镜像) J water1
- 南京理工大学第八届程序设计大赛(校外镜像)J题
- 南京理工大学第八届程序设计大赛(校外镜像)A题
- 南京理工大学第八届程序设计大赛(校外镜像)C题
- 南京理工大学第八届程序设计大赛(校外镜像)H题
- 南京理工大学第八届程序设计大赛(校外镜像)
- 南京理工大学第八届程序设计大赛(校外镜像)题解报告
- 南京理工大学第八届程序设计大赛(校外镜像)
- 南京理工大学第八届程序设计大赛(校外镜像) C-count_prime
- 南京理工大学第八届程序设计大赛(校外镜像) - sequence (贪心)
- 南京理工大学第八届程序设计大赛(校外镜像) F sequence
- 南京理工大学第八届程序设计大赛(校外镜像) C count_prime
- 南京理工大学第八届程序设计大赛(校外镜像) Fsequence
- 南京理工大学第八届程序设计大赛(校外镜像) Jsequence
- 南京理工大学第八届程序设计大赛(校外镜像) H谁才是最强战舰!(博弈)
- 南京理工大学第八届程序设计大赛(校外镜像) A偷吃糖果
- A 偷吃糖果 南京理工大学第八届程序设计大赛(校外镜像)
- 南京理工大学第八届程序设计大赛(校外镜像) H谁才是最强战舰!
- 南京理工大学第八届程序设计大赛(校外镜像)H题
- Python浅拷贝和和深拷贝
- 软件设计模式——适配器(Adapter)模式
- iOS开发--Mac下服务器搭建
- wxWidgets教程(2)-事件处理
- 南京理工大学第八届程序设计大赛(校外镜像)J题
- Java 输出蛇形矩阵
- Android Studio 高级配置
- 蓝桥杯+数字拆分
- 深入分析Parquet列式存储格式
- androidstudio多个module放在一个目录下
- 爬虫 登入电驴
- 递推之杨辉三角
- Struts之ActionSupport