首先题意:(这个真的令人无奈,题目都看不太明白)

网上百度了一下,就是以下意思:

给你n*m个格子,每个格子的面积是10*10米,整个区域外看作无限高的墙壁。输入每个格子的海拔高度(可能为负数),以及区域内的雨水总体积,输出区域水位的海拔高度以及淹没方格的占比。

注明一下:星星假装为水,题目给出了每个格子的海平面的高度。

最最最需要知道的是,装水是两个海平面之间的那个区域可以放水,而不是我画的那个方格,存水的是方格外面的区域。

海平线高度是什么意思——每个方格的海拔相当于这个方格的固体体积,可以把它们都看作木块,雨水只存在两个木块间高度差的空间内。

用两个栗子来解释一下!!!

 case :

 解答:
首先我们看一下3000是否会将所有格子的空间都填埋了? 填埋最少所需的水量:((-)+(-))**=
我们可以看到完全可以
所有答案是 h= 百分比是1
图示:
30
20 20
10 10 10
0 0 0
case :

- - -

解答:
首先我们看一下3000是否会将所有格子的空间都填埋了? 填埋最少所需的水量:((-)+(-))**=
我们可以看到完全可以
所有答案是 h=- 百分比是1
图示: -
- -
- - -

 Region 1
Water level is 25.00 meters.
66.67 percent of the region is under water.
 - - -

 Region
Water level is -15.00 meters.
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=;
while(cin>>n>>m)
{
if(t!=)
cout<<endl;
if(n==&&m==)
break;
t++;
double a[];
double sum=;
double lever=;
double len=;
// double sum1=0;
for(int i=;i<n*m;i++)
{
cin>>a[i];
} sort(a,a+n*m); for(int i=;i<n*m-;i++)
sum+=(a[i+]-a[i])*(i+);
// cout<<"sum: "<<sum<<endl; cin>>count;
count/=; if(sum<=count)
{
lever=;
len=a[n*m-]-a[];
count=count-sum;
len+=count/(n*m);
}
else
{
// lever=count*100/(sum*1.00);
for(int i=;i<n*m-;i++)
{
if((a[i+]-a[i])*(i+)>=count)
{
len+=count/(i+);
lever++;
break;
}
else
{
len+=(a[i+]-a[i]);
count-=(a[i+]-a[i])*(i+);
lever++;
}
}
lever=lever/(n*m)*;
}
len=len+a[];
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; }
}

uva 815之理解诡异的海平线题目之不容易的更多相关文章

  1. 真正理解javascript的五道题目.

    题目一: if (!("a" in window)) { var a = 1; } alert(a); 题目二: var a = 1, b = function a(x) { x ...

  2. UVa 106 - Fermat vs Pythagoras(数论题目)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  3. UVa 10905 - Children's Game 排序,题目没有说输入是int 难度: 0

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  4. 【习题 4-9 UVA - 815】Flooded!

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目很迷啊. 不会出现盆地? 可以理解为一条线. 从左往右高度上升的一座座山. 然后V升的水从最左边的山倒进去. 然后问你最后海拔多 ...

  5. 【每日一题】Flooded! UVA - 815 模拟阅读格式题

    https://cn.vjudge.net/problem/UVA-815 题意:给你一个矩阵,每个格子的数代表一个海拔并且每个格子的面积100平方米.给你整个区域的降水量(立方米),问降水量(米). ...

  6. 【每日一题】 UVA - 340 阅读理解+模拟

    https://cn.vjudge.net/problem/UVA-340 题目很难读,差不多读了两天 意思是给你一个n个数的数列,然后有m个询问,每个询问也是一个n个数的数列,让你输出两个数:一个是 ...

  7. uva 558 tree(不忍吐槽的题目名)——yhx

    You are to determine the value of the leaf node in a given binary tree that is the terminal node of ...

  8. UVA 815 Flooded!

    题意:来自:https://blog.csdn.net/lecholin/article/details/70186673 思路: ①数组存每个网格的高度,然后排序,做题时想象为上面的柱状图. ②注意 ...

  9. UVa 815 洪水!

    https://vjudge.net/problem/UVA-815 题意:一个n*m的方格区域,共有n*m个方格,每个方格是边长为10米的正方形,整个区域的外围是无限高的高墙,给出这n*m个方格的初 ...

随机推荐

  1. 大话设计模式--Python

    作者:五岳 出处:http://www.cnblogs.com/wuyuegb2312 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一 ...

  2. UITextField的文本框部分文本以*的方式来显示

    #import "AppDelegate.h" @interface AppDelegate ()<UITextFieldDelegate>// 添加代理协议 @end ...

  3. python2 and python3 difference - division

    1. python2 2. python3 3.from python environment import py3 features

  4. 9.Delegate类

    Concepts      不像MVC模式,Model/View模式并没有单独用来处理事件和用户交互的组件(controller).通常,视图负责向用户呈现模型中的数据,并处理用户的输入.有时,为了让 ...

  5. vue 之 面向对象

    JavaScript 语言中,生成实例对象的传统方法是通过构造函数. function Animal(name,age){ this.name = name; this.age = age; } An ...

  6. C++11新标准:nullptr关键字

    一.nullptr的意义 1.NULL在C中的定义 #define NULL (void*)0 2.NULL在C++中的定义 #ifndef NULL #ifdef __cplusplus #defi ...

  7. xml文件绑定chenckbox选择框

    //xml文件如下: <?xml version="1.0" encoding="utf-8" ?> <CallReson> <! ...

  8. Windows Services windows服务如何删除服务

    如何删除服务 一.为何要删除服务: 1.当服务文件丢失时,在服务里还会显示. 2.现在好多都会有服务,你看那个不顺眼就可以把它干掉.前提是不用的软件. 二.使用: 使用sc.exe 这个是window ...

  9. hadoop下HDFS基本命令使用

    前提:启动hadoop 1. 查看hdfs下 " / " 的目录 hdfs dfs -ls / 2. 创建文件夹(在 " / " 创建hadoop文件夹) hd ...

  10. 条件概率全概率公式-Tribles

    条件概率,全概率公式,贝叶斯公式 条件概率:在另外一个事件 B 已经发生的条件下,事件 A 发生的概率叫做在 A 对于 B 的条件概率,记作 \(p(A|B)\).显然\(p(AB)=p(A|B)p( ...