UVA 815 Flooded!
2024-08-27 20:24:12
题意:来自: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 ;
}
最新文章
- 挑子学习笔记:对数似然距离(Log-Likelihood Distance)
- hustoj1353 节点选择 树形dp
- ubuntu 14 谷歌拼音输入法
- php时间函数整理
- mac terminal 命令
- 如何从零开始实现一个soa远程调用服务基础组件
- jQuery 中的 Ajax $.ajax() load() $.get() $.post() $.getJSON() $.getScript()
- [HDU 3336]Count the String[kmp][DP]
- 201521123092,《java程序设计》第1周学习总结
- ConcurrenHashMap源码分析(二)
- Android进阶加密-第1章-Android系统架构-读书笔记
- 【Beta】Scrum Meeting 1
- 解决sublime text 3使用Install Package时出现There are no packages available for installation问题
- Luogu P2597 [ZJOI2012]灾难
- C#检测鼠标移动消息
- python 获取整点时间戳,半整点时间戳 ,同时将时间戳转换成 日期时间
- Centos7安装Oracle 11gR2
- WebGL之shaderToy初使用
- param 是获取请求传递过来的参数
- Linux美化终端
热门文章
- java-HTML&;javaSkcript&;CSS&;jQuery&;ajax( 八)
- 论坛IP地址追踪&;路由器密码嗅探
- Nginx详解二十二:Nginx深度学习篇之Lua解释器安装及基础语法
- Spring Cloud Eureka简介及原理
- Expected one result (or null) to be returned by selectOne(), but found: 3
- pycaffe训练的完整组件示例
- config.GetSection(key)编译不通过
- UEditor黑白名单配置
- gradle编译命令 &; 自动打包等
- uva 11367 (Dijkstra+DP)