算法习题---4-10洪水(UVa815)
一:题目
有一个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)的更多相关文章
- 【算法习题】数组中任意2个(3个)数的和为sum的组合
题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...
- HDU 3791 二叉搜索树 (数据结构与算法实验题 10.2 小明) BST
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3791 中文题不说题意. 建立完二叉搜索树后进行前序遍历或者后序遍历判断是否一样就可以了. 跟这次的作业第 ...
- 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...
- Java实现 蓝桥杯VIP 算法提高 前10名
算法提高 前10名 时间限制:1.0s 内存限制:256.0MB 问题描述 数据很多,但我们经常只取前几名,比如奥运只取前3名.现在我们有n个数据,请按从大到小的顺序,输出前10个名数据. 输入格式 ...
- 算法习题---4-9数据挖掘(Uva1591)
一:题目 这是最懵逼的一道题,什么鬼......... [刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining(详细题目看这个吧,不想多说) 二:代码实现 #defin ...
- tarjan算法 习题
dfs树与tarjan算法 标签(空格分隔): 517coding problem solution dfs树 tarjan Task 1 给出一幅无向图\(G\),在其中给出一个dfs树\(T\), ...
- 算法导论——lec 10 图的基本算法及应用
搜索一个图是有序地沿着图的边訪问全部定点, 图的搜索算法能够使我们发现非常多图的结构信息, 图的搜索技术是图算法邻域的核心. 一. 图的两种计算机表示 1. 邻接表: 这样的方法表示稀疏图比較简洁紧凑 ...
- 【算法习题】正整数数组中和为sum的任意个数的组合数
1.递归实现(参考:https://blog.csdn.net/hit_lk/article/details/53967627) public class Test { @org.junit.Test ...
- July 算法习题 - 字符串4(全排列和全组合)
https://segmentfault.com/a/1190000002710424 思想:当前层各节点首元素不同,则各节点的剩余元素也不同:下一层节点交换范围为首元素以外的元素 全排列算法: vo ...
随机推荐
- 「NOI2012」迷失游乐园
「NOI2012」迷失游乐园 题目描述 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩. 进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m条道路的无向连通图,且该 ...
- Laravel下载地址合集
laravel官网直接下载地址都没了. 都要用composer装? 在此记录一下直接下载地址 master https://github.com/laravel/laravel/archiv ...
- 查看mysql日志文件
开启mysql日志 /etc/mysql/mysql.conf.d/mysqld.cnf sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 找到第68,69行 前面 ...
- IDEA 中tomcat图片储存和访问虚拟路径(图片和程序分家)
本文链接:https://blog.csdn.net/qq_36481052/article/details/78813213 **前段时间,遇到了图片已经储存了文件中也显示有图片,但就是死活访问不到 ...
- MongoDB 复制集监控
1.复制集状态查询:rs.status() 2.查看当前副本集oplog状态:rs.printReplicationInfo() 3.查看复制延迟:rs.printSlaveReplicationIn ...
- C语言定义结构体指针数组并初始化;里面全是结构体的地址
#include <stdio.h> #include <string.h> struct tells;//声明结构体 struct info { char *infos; } ...
- 洛谷 P1901 发射站 题解
P1901 发射站 题目描述 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的 ...
- docker使用(一)
windows家庭版 安装docker 查看原文地址(侵删,这里只是保存一用 doceker和vmware发生冲突时 运行下面命令并重启电脑: bcdedit /set hypervisorlaunc ...
- 洛谷P2324 [SCOI2005] 骑士精神
题目 方法很多,最经典的是用搜索的算法,也就是\(IDA*\)算法搜索. \(IDA*\)算法是每次规定一个搜索深度,并在搜索的时候限制该搜索深度,从而达到把深搜的优点和广搜的优点结合起来优化时间的一 ...
- 在Tex live和Beamer环境下编译中文
在Tex live和Beamer环境下编译中文时,容易出现缺少$的提示错误.它有可能是由于特殊字符所致,如下划线: 也有可能是插图有误所致.