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

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

给你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. 解析IFC数据并存储到关系型数据库

    即系IFC数据并存储到关系型数据库中,目前解析的IFC文件是两亿多行,构件数量120万

  2. 【转】mysql.sock文件的作用

    Mysql有两种连接方式: (1),TCP/IP (2),socket 对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用. (如果程序跟mysql在同 ...

  3. python 简单的数据库操作之转账

    介绍:本文是关于数据库的简单操作,实现转账(只是修改数据库中用户的账户金额)的功能 模块介绍:首先是入口主函数 主函数中实现转账方法  以及异常的处理: if __name__ == "__ ...

  4. Luogu 1357 花园

    发现$m$很小,直接状压起来,可以处理出一开始的合法的状态. 对于每一个合法的状态,可以处理出它的转移方向,即在后面填一个$1$或者填一个$0$,反着处理比较方便. 考虑一下环的情况,在这题中有一个小 ...

  5. 本地方法中printf如何传给java--java系统级命名管道

    本地方法中printf如何传给java--java系统级命名管道 摘自:https://blog.csdn.net/dog250/article/details/6007301 2010年11月13日 ...

  6. c/c++头文件中#ifndef/#define/#endif的用法

    想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文 ...

  7. DBUtils工具类和DBCP连接池

    今日内容介绍 1.DBUtils2.处理结果集的八种方式3.连接池4.连接池的用法1 PrepareStatement接口预编译SQL语句 1.1 预处理对象 * 使用PreparedStatemen ...

  8. CodeForces 404D Minesweeper 1D (DP)

    题意:给定一个序列,*表示雷,1表示它旁边有一个雷,2表示它旁边有两个雷,0表示旁边没有雷,?表示未知,求有多少情况. 析:dp[i][j] 表示第 i 个放 j 状态,有多少种情况,然后很简单的DP ...

  9. 通过ajax把json对象传入后台

    一.前台ajax部分 function icheckDelete(url){ var parms = { list : array //这是个数组 }; $.ajax({ dataType: &quo ...

  10. Data Base 常用数据库之top/limit/rownum用法

    常用数据库之top/limit/rownum用法 一.常用数据库: sql server: select top 10 from users where status=1 mysql: select ...