UVa815_Flooded!
#include <iostream>
//#include <fstream>
#include <iomanip>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; const int maxn = * + ;
const int space = * ; int main()
{
//ofstream out("out.txt");
int m, n, kase = , volume; //降水总量
double eleva[maxn], height; //每个格子的海拔高度, 输入的高度
double percnt = ; //有多少百分比的区域
while (cin >> m >> n)
{
memset(eleva, , sizeof(eleva));
if (!m && !n) break;
for (int i = ; i < m; i++)
{
for (int j = ; j < n; j++)
{
cin >> height;
eleva[i * n + j] = height;
}
}
cin >> volume;
sort(eleva, eleva + m*n); //排序 int k, comput = ; //计算已经淹没地区的水量
for (k = ; k < m*n; k++)
{
int tmp = comput + (eleva[k] - eleva[k - ]) * space * k;
if (tmp >= volume)
break;
comput = tmp;
}
double water = (volume - comput) / (double)(k * space) + eleva[k - ]; //最终水平面高度是 = 当前被淹没的最高海拔 + 水面比当前海拔高出的高度 cout << "Region " << ++kase << "\n";
cout << fixed << setprecision()
<< "Water level is " << water << " meters.\n"; double total = m*n;
percnt = (k*100.0 / total) ; //被淹没区域比例 = 当前比水平面低的海拔数 / 区域总数 cout << fixed << setprecision()
<< percnt << " percent of the region is under water.\n\n";
} return ;
}
如图,将海拔按高矮排序好(先排序好,比较容易计算已经淹没地区的水量),由于是水往地处流,如果水量如图,淹没区域如图中阴影地区。UVa815_Flooded!的更多相关文章
随机推荐
- PHP函数preg_replace() 正则替换所有符合条件的字符串
PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. preg_replace (正则表达式 ...
- python __name__
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...
- [Asp.net MVC]Asp.net MVC5系列——添加数据
目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...
- 联合主键用Hibernate注解映射的三种方式
第一.将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主 ...
- 剑指Offer 调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 思路: ...
- MS DOS 命令大全
刚好看到留下来以备用: 一)MD——建立子目录命令 1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘 ...
- 如何修复IIS7
修复错误 运行命令提示符 fsutil resource setautoreset true c:\ 打开运行输入 services.msc 启动Windows Process Act ...
- MD5 加密字符串
public class MD5 { /*** * MD5加码 生成32位md5码 */ public static String string2MD5(String inStr){ MessageD ...
- ADO.NET和ADO.NET Entity Framework
ADO.NET 3.0 用于访问和操作数据的两个主要组件是 .NET Framework 数据提供程序和 DataSet. .NET Framework 数据提供程序 .NET Framework 数 ...
- iOS keyChain 的使用
详细资料,请参看苹果官方文档Keychain Services Reference . ios中的keychain,用于保存用户的机密信息,对keychain的操作有4种,就是 增,删,改,查: Se ...