uva 815之理解诡异的海平线题目之不容易
首先题意:(这个真的令人无奈,题目都看不太明白)
网上百度了一下,就是以下意思:
给你n*m个格子,每个格子的面积是10*10米,整个区域外看作无限高的墙壁。输入每个格子的海拔高度(可能为负数),以及区域内的雨水总体积,输出区域水位的海拔高度以及淹没方格的占比。
注明一下:星星假装为水,题目给出了每个格子的海平面的高度。
最最最需要知道的是,装水是两个海平面之间的那个区域可以放水,而不是我画的那个方格,存水的是方格外面的区域。
海平线高度是什么意思——每个方格的海拔相当于这个方格的固体体积,可以把它们都看作木块,雨水只存在两个木块间高度差的空间内。
用两个栗子来解释一下!!!
1 case 1: 2 3 1 3 10 20 30 4 3000 5 解答: 6 首先我们看一下3000是否会将所有格子的空间都填埋了? 填埋最少所需的水量:((30-10)+(30-20))*10*10=3000 7 我们可以看到完全可以 8 所有答案是 h=30 百分比是1图示: 30 20 2010 10 100 0 0
case 2: 3 1 -10 -20 -30 3000 解答: 首先我们看一下3000是否会将所有格子的空间都填埋了? 填埋最少所需的水量:((30-10)+(30-20))*10*10=3000 我们可以看到完全可以 所有答案是 h=-10 百分比是1 图示: 0 -10 -20 -20 -30 -30 -30
1 3 1 2 10 20 30 3 2000 4 Region 1 5 Water level is 25.00 meters. 6 66.67 percent of the region is under water.
1 3 1 2 -10 -20 -30 3 2000 4 Region 6 5 Water level is -15.00 meters. 6 66.67 percent of the region is under water.
通过上面的这些栗子,大概能明白本题的题意了吧!!!
现在就是解决问题的代码:
#include<iostream> #include<algorithm> using namespace std; int main() {int n,m;double count;int t=0;while(cin>>n>>m){if(t!=0)cout<<endl;if(n==0&&m==0)break;t++;double a[1000];double sum=0;double lever=0;double len=0; // double sum1=0;for(int i=0;i<n*m;i++){cin>>a[i];}sort(a,a+n*m);for(int i=0;i<n*m-1;i++)sum+=(a[i+1]-a[i])*(i+1); // cout<<"sum: "<<sum<<endl; cin>>count;count/=100;if(sum<=count){lever=100;len=a[n*m-1]-a[0]; count=count-sum;len+=count/(n*m);}else{ // lever=count*100/(sum*1.00);for(int i=0;i<n*m-1;i++){if((a[i+1]-a[i])*(i+1)>=count){len+=count/(i+1);lever++;break;}else{len+=(a[i+1]-a[i]);count-=(a[i+1]-a[i])*(i+1);lever++;}}lever=lever/(n*m)*100;}len=len+a[0];cout<<"Region "<<t<<endl;cout<<"Water level is ";printf("%.2lf",len);cout<<" meters."<<endl;printf("%.2lf",lever);cout<<" percent of the region is under water."<<endl;} }
View Code
转载于:https://www.cnblogs.com/Aiahtwo/p/10587874.html
uva 815之理解诡异的海平线题目之不容易相关推荐
- 【UVA 815 --- Flooded!】
[UVA 815 --- Flooded!] 题目来源:点击进入[UVA 815 - Flooded!] Description To enable homebuyers to estimate th ...
- Flooded! UVA - 815(简单计算 -洪水)
题目大概: 在n×m的网格世界中(有边界,水不外流),每个网格单位均为10×10的正方形,天上下起大雨,输入降水量和每个格子的海拔高度,输出水位海拔高度和有水区域(格子高度严格小于水平面)百分比 UV ...
- uva 815 Flooded!
题目大意: 有n*m(1<=n,m<=30)的网格,每个格子是边长为10米的正方形,网格四周是无限大的墙壁.输入每个格子的海拔高度,以及网格的内雨水的总体积,输出水位的海拔高度以及有多少百 ...
- UVa 815 Flooded
// 单位面积 const double S = 10.0 * 10.0;int main() {// freopen("my_ans.txt", "w", s ...
- UVA 815 Flooded!(洪水!)
题目:有一个n*m(1≤m,n≤30)的网格,每个格子都是10米的正方形,网格的四周是无限高的墙壁,输入每个格子的海拔高度(每个格子都为实心),以及网格内雨水总体积,输出水位的海拔高度以及有多少百分比 ...
- 优雅的理解 call 和 apply 的使用方法
作者在看到一篇优雅的使用 js 的各种方法解决算法的时候产生的疑问,到底什么时候使用 apply 和 call 啦? 每次看到别人用 apply 和 call 其实从以前的懵懵懂懂到现在的明白,但是自 ...
- UVa 10047,独轮车
题目链接:https://uva.onlinejudge.org/external/100/10047.pdf 题目链接:http://vjudge.net/contest/132239#proble ...
- 小学阅读方法六种_小学语文重难点|阅读理解的解答技巧+方法(合集)
阅读理解,一直是小学阶段孩子们除写作以外最头疼的部分,很多孩子每次考虑的时候阅读理解都会被扣掉大量的分数.那么孩子们应该如何更好的进行阅读和理解呢?今天我们就来为孩子们分享一些关于小学语文阅读理解的解 ...
- 全面分析RHCE7(红帽认证工程师)考试题目之 ----Samba文件共享篇
samba 文件共享(共享文件夹) 完成了windows和linux的文件共享 配置SMB共享 Samba软件项目 用途:为客户机提供共享使用的文件夹 协议:SMB(TCP 139),CIFS(TCP ...
最新文章
- 实战:在Windows Server2008上配置NLB
- 【opencv系列06】OpenCV4.X滑动条操作
- python_GUI操作(鼠标、键盘)
- HTML期末作业-香水网站
- java xml解析_Java解析XML(4种方法)
- 目录、路径、虚拟路径
- [经典线程同步问题]吸烟者
- 关联容器----关联容器概述,关联容器操作,无序容器
- 多线程-AbstractQueuedSynchronizer(AQS)
- GNS3连接VMware中虚拟主机,能相互ping通
- 2010全国导游大赛总决赛现场调试及比赛抓图
- [Delphi]用程序更改 IE 的代理服务器(Proxy)设置及本地连接
- 《明朝那些事儿》读书笔记
- python数据清洗
- uniapp 图片生成
- 流媒体服务器使用手册
- 豪杰超级解霸 V8.3 11月18日发布
- EBS:AP_CHECKRUN_CONC_PROCESSES_ALL
- 北京航空航天大学软件学院2021年保研复试流程介绍+经验分享
- 如何使用 Delta Lake 构建批流一体数据仓库