一:题目

有一个n*m(<=n,m<=)的网格,每个格子都是边长为10米的正方形,网格四周是无限大的墙壁。
输入每个格子的海拔高度,以及网格内雨水的总体积,输出水位的海拔高度以及有多少百分比的区域有水

(一)样例输入

 3        //3行3列的网格
45    //格子原本海拔高度 10000      //要注入的水总量
0       //表示结束输入

(二)样例输出

Region
Water level is 46.67 meters.
66.67 percent of the region is under water.

二:代码实现

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string> #define M 30
#define N 30 float Area_M[M][N];
float Area_W[M][N];
int m, n;
float c;

获取水平高度等信息

void getWaterHighInfo()
{
int reg_c;
float w_min,H_all = 0.0; while (c>)
{
w_min = Area_M[][] + Area_W[][],reg_c = ; //设置最小水平初始值 //先找到最小水平面值
for (int i = ; i < m; i++)
for (int j = ; j < n; j++)
if (w_min>Area_M[i][j] + Area_W[i][j])
w_min = Area_M[i][j] + Area_W[i][j]; //向其中放水
for (int i = ; i < m; i++)
{
for (int j = ; j < n; j++)
if (Area_M[i][j] + Area_W[i][j] == w_min)
{
Area_W[i][j] += 0.01;
reg_c++;
}
}
c -= 0.01 * 10 * 10*reg_c; //减去相应水量
}
//打印水平高度
//先找到一个有水的方格
reg_c = ;
for (int i = ; i < m; i++)
{
for (int j = ; j < n; j++)
if (Area_W[i][j] != )
{
reg_c++;
H_all += Area_W[i][j]+Area_M[i][j];  //因为float含有误差,我们单独输出一个数据可能有误差,所以我们将所有数据获取,取平均值来减少误差
}
} //打印百分比
printf("Water level is %.2f meters.\n", H_all / reg_c);
printf("%.2f percent of the region is under water.\n", reg_c*100.0 / (m*n));
}

主函数:包含获取输入信息

void main()
{
FILE* fp = freopen("data10.in", "r", stdin);
freopen("data10.out", "w", stdout);
int count = ;
while (!feof(fp))
{
scanf("%d %d", &m, &n);
getchar();
if (m == )
break;
printf("Region %d\n", count++);
//获取山体高度
for (int i = ; i < m; i++)
{
for (int j = ; j < n; j++)
scanf("%f", &Area_M[i][j]);
getchar();
}
scanf("%f", &c);
getchar();
memset(Area_W, , sizeof(Area_W));
getWaterHighInfo();
} freopen("CON", "r", stdin);
freopen("CON", "w", stdout);
}

算法习题---4-10洪水(UVa815)的更多相关文章

  1. 【算法习题】数组中任意2个(3个)数的和为sum的组合

    题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...

  2. HDU 3791 二叉搜索树 (数据结构与算法实验题 10.2 小明) BST

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3791 中文题不说题意. 建立完二叉搜索树后进行前序遍历或者后序遍历判断是否一样就可以了. 跟这次的作业第 ...

  3. 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法

    算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...

  4. Java实现 蓝桥杯VIP 算法提高 前10名

    算法提高 前10名 时间限制:1.0s 内存限制:256.0MB 问题描述 数据很多,但我们经常只取前几名,比如奥运只取前3名.现在我们有n个数据,请按从大到小的顺序,输出前10个名数据. 输入格式 ...

  5. 算法习题---4-9数据挖掘(Uva1591)

    一:题目 这是最懵逼的一道题,什么鬼......... [刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining(详细题目看这个吧,不想多说) 二:代码实现 #defin ...

  6. tarjan算法 习题

    dfs树与tarjan算法 标签(空格分隔): 517coding problem solution dfs树 tarjan Task 1 给出一幅无向图\(G\),在其中给出一个dfs树\(T\), ...

  7. 算法导论——lec 10 图的基本算法及应用

    搜索一个图是有序地沿着图的边訪问全部定点, 图的搜索算法能够使我们发现非常多图的结构信息, 图的搜索技术是图算法邻域的核心. 一. 图的两种计算机表示 1. 邻接表: 这样的方法表示稀疏图比較简洁紧凑 ...

  8. 【算法习题】正整数数组中和为sum的任意个数的组合数

    1.递归实现(参考:https://blog.csdn.net/hit_lk/article/details/53967627) public class Test { @org.junit.Test ...

  9. July 算法习题 - 字符串4(全排列和全组合)

    https://segmentfault.com/a/1190000002710424 思想:当前层各节点首元素不同,则各节点的剩余元素也不同:下一层节点交换范围为首元素以外的元素 全排列算法: vo ...

随机推荐

  1. 《基于 Java EE 的高校重修管理系统设计与实现》论文笔记(九)

    标题:基于 Java EE 的高校重修管理系统设计与实现 一.基本信息 时间:2015 来源:河海大学文天学院 关键词::Java EE 架构: B/S 模式: 重修管理系统 二.研究内容 1.需求分 ...

  2. C++第三章课后作业答案及解析---指针的使用

    今天继续完成上周没有完成的习题---C++第三章课后作业,本章题涉及指针的使用,有指向对象的指针做函数参数,对象的引用以及友元类的使用方法等 它们具体的使用方法在下面的题目中会有具体的解析(解析标注在 ...

  3. logstash-output-jdbc使用

    项目需要,使用logstash定时读取log文件,并插入mysql数据库中,output使用logstash-output-jdbc插件.该插件不是默认安装的,需要使用命令:bin/logstash- ...

  4. NOI.ac模拟赛20181021 ball sequence color

    T1 ball 可以发现每次推动球时,是将每个球的位置 −1-1−1 ,然后把最左边的球放到 P−1P-1P−1 处. 记个 −1-1−1 次数,再用set维护就好了. #include <bi ...

  5. codecs 1264 芳香数

    1264 芳香数 题目描述 Description This question involves calculating the value of aromatic numbers which are ...

  6. undefined null 与 字符串相加

        在进行一个字符串的判断的时候. 如下一段内容 const queryObj = {}; const  str = queryObj.criteriaStr + "" con ...

  7. Mac zsh 所有命令失效

    正在配置一些东西,然后zsh的所有命令不能用了. 我艹...... 然后一顿猛查,发现有个命令好使,记录一下 在命令行只想输入下面命令 PATH=/bin:/usr/bin:/usr/local/bi ...

  8. SpringMVC的请求转发的三种方法

    SpringMVC请求转发的三种方法 首先明白请求转发是一次请求,地址栏不会发生变化,区别于重定向.springmvc环境自行配置. 以下举例中存在如下文件/WEB-INF/pages/success ...

  9. Bootstrap select多选下拉框实现代码

    前言 项目中要实现多选,就想到用插件,选择了bootstrap-select. 附上官网api链接,http://silviomoreto.github.io/bootstrap-select/. 没 ...

  10. NAT双线路配置详解