UVA 815 Flooded!
题意:来自:https://blog.csdn.net/lecholin/article/details/70186673

思路:
①数组存每个网格的高度,然后排序,做题时想象为上面的柱状图。
②注意对淹没的处理。
③注意每个输出都有空行。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define FIN freopen("input.txt","r",stdin)
#define FOUT freopen("output.txt","w",stdout)
int main()
{
//FIN;
//FOUT;
int m, n;
int data[],kase=;
double level, percentage, high = ,sum;
while (scanf("%d%d",&m,&n)==&&n!=&&m!=)
{
kase++;
for (int i = ; i < m*n; i++)
{
scanf("%d", &data[i]);
}
high = ;
scanf("%lf", &sum);
sum /= ;//正方形为10*10,化简一下sum
//排序
for (int i = ; i < m*n; i++)
{
for (int j = i + ; j < m*n; j++)
{
if (data[i] > data[j])
{
int ex = data[i];
data[i] = data[j];
data[j] = ex;
}
}
}
//data[m*n] = 100000;//最大的边界
//输出
/*printf("排序后:\n");
for (int i = 0; i < m*n; i++)
{
printf("%-4d", data[i]);
if ((i + 1) % m == 0)
printf("\n");
}*/
for (int i = ; i < n*m; i++)
{
if (sum != - && i == m*n - )//找到最后一个说明淹没了
{
high += (sum*1.0) / (i + );
high += data[];
int cntDown = (i + );
percentage = (cntDown*1.0) / (m*n) * ;
sum = -;
break;
}
if ((data[i + ] - data[i])*(i+)< sum)//小就继续往上面走
{
sum -= (data[i + ] - data[i])*(i+);
high += data[i+]-data[i];
}
else
{
high += (sum*1.0) / (i+);
high += data[];
int cntDown =(i+);
percentage = (cntDown*1.0) / (m*n)*;
sum = -;
break;
} }
printf("Region %d\n", kase);
printf("Water level is %.2f meters.\n",high);
printf("%.2f percent of the region is under water.\n\n",percentage);
}
return ;
}
UVA 815 Flooded!的更多相关文章
- 【每日一题】Flooded! UVA - 815 模拟阅读格式题
https://cn.vjudge.net/problem/UVA-815 题意:给你一个矩阵,每个格子的数代表一个海拔并且每个格子的面积100平方米.给你整个区域的降水量(立方米),问降水量(米). ...
- 【习题 4-9 UVA - 815】Flooded!
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目很迷啊. 不会出现盆地? 可以理解为一条线. 从左往右高度上升的一座座山. 然后V升的水从最左边的山倒进去. 然后问你最后海拔多 ...
- Flooded! UVA - 815 (sort排序)
错了好多遍,不知道为啥出错,如果有大神发现,请求指点!!! 附错误代码(错的不知道怎么回事): #include<iostream> #include<cstdio> #inc ...
- UVa 815 洪水!
https://vjudge.net/problem/UVA-815 题意:一个n*m的方格区域,共有n*m个方格,每个方格是边长为10米的正方形,整个区域的外围是无限高的高墙,给出这n*m个方格的初 ...
- uva 815之理解诡异的海平线题目之不容易
首先题意:(这个真的令人无奈,题目都看不太明白) 网上百度了一下,就是以下意思: 给你n*m个格子,每个格子的面积是10*10米,整个区域外看作无限高的墙壁.输入每个格子的海拔高度(可能为负数),以及 ...
- uvA Flooded!
Description To enable homebuyers to estimate the cost of flood insurance, a real-estate firm provide ...
- 紫书 习题 8-15 UVa 1617 (贪心)
先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++ 开始下一个整块.判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的 ...
- 紫书 例题8-15 UVa 12174 (滑动窗口)
这道题就是给你一n长序列, 然后把这个序列按顺序分成很多段, 每段长s(最前面可以小于s, 只有第一段的后半段, 最后面也同样, 只有最后一段的前半段), 然后要求是每一段里面没有重复的数, 问你有几 ...
- 【习题 8-15 UVA - 1617】Laptop
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 贪心. 把所有的区间按照右端点为第一关键字,左端点为第二关键字升序排. 然后令now = a[i].second. (now即当前的 ...
随机推荐
- 用flask的扩展实现的简单的页面登录
from flask import Flask,render_template,request,redirect,session app = Flask(__name__,template_folde ...
- 初识ActiveMQ
消息中间件的初步认识 什么是消息中间件? 消息中间件是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程 ...
- 【ES】学习10-聚合3
聚合是在查询匹配的文档中做统计的 不指定查询语句时,从所有文档中匹配. 下面两个语句等价: GET /cars/transactions/_search { , "aggs" : ...
- cf1131f 构造+并查集
#include<bits/stdc++.h> using namespace std; #define maxn 150005 int f[maxn],n; vector<int& ...
- 安装mysql后在/var/log/mysqld.log 中找不到临时密码
centos7通过yum装完mysql,使用grep 'temporary password' /var/log/mysqld.log找不到root密码打开mysqld.log中根本没有tempora ...
- 批量杀掉多个pid文件中记录的pid进程, 并集成到shell脚本中
head_files=`find ./fmsConf/ -name "*.pid"` for file in $head_files do cat $file | awk rm - ...
- 区分TCP包的顺序
确认TCP包的顺序: 使用抓包工具抓包之后,通常按照时间先后排序的,而不是数据的内容逻辑先后.查找内容的先后的关键在于查看TCP中的Sequence number和Acknowledgment num ...
- mac pro 基本使用
command+空格 调出搜索框 可以输入:网络,就是配置ip等信息 可以输入:终端,就是命令行窗口 可以输入:触控板,可以调节多点触控版 可以输入:系统偏好设置,进行配置 触控板:多点触控——两个 ...
- XML使用与总结
xml是一种比较方便的数据储存方式,它适用于小数据的存储.最常见的适用地方莫过于各种web.config与app.config了. 一.创建一个简单的xml路径 public static str ...
- C# 多线程下 静态类字段异常