uva 815 - Flooded!(点名要做的思路题~我觉得方法挺好)

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
double a[100000];
double vol[100000];
int m,n;
double v1,v2;
bool cmp(double aa,double bb)
{
    if(aa>bb) return true;
}

int main()
{
    int kase=0;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        kase++;
        if(m==0&&n==0)
            break;
        v1=0;
        double temp;
        for(int i=0;i<m*n;i++)
        {
            cin>>temp;
            vol[i]=temp*100;
            v1+=vol[i];
            a[i]=temp;
        }
        sort(a,a+m*n,cmp);
        sort(vol,vol+m*n,cmp);

        cin>>v2;
        double v=v1+v2;
        double height;
        int r=m*n;
        for(int i=0;i<m*n;i++)
        {
            double area=(m*n-i)*100;
            double temp1=v/area;
            if(temp1>a[i])
            {
                height=temp1;
                break;
            }
            else
            {
                v=v-a[i]*100;
                r--;
            }
        }
        printf("Region %d\n",kase);
        printf("Water level is %.2lf meters.\n",height);
        printf("%.2lf percent of the region is under water.\n\n",(r+0.0)/(m*n)*100);
    }
    return 0;
}

应该很好理解,自己看吧O(∩_∩)O

时间: 2024-10-06 11:52:17

uva 815 - Flooded!(点名要做的思路题~我觉得方法挺好)的相关文章

UVA - 815 Flooded!(模拟)

Flooded! Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description To enable homebuyers to estimate the cost of flood insurance, a real-estate firm provides clients with the elevation of each 10-meter by 10-m

uva 815 Flooded!

题意:n*m的网格,每个网格10m的正方形,网格四周是无限大的墙壁,输入每个格子的高度和洪水的体积,求水位的高度和淹没的面积. 分析:水肯定是先淹没高度低的,后淹没高度高的,所以对所有海拔排序,从低向高遍历,直到遇到不能淹没的网格停止. 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 const int mmax=35*35; 6 int dp[

【UVA】815 - Flooded!

水题,排序之后依次累加,模拟. 14069284 815 Flooded! Accepted C++ 0.032 2014-08-20 10:42:17 AC代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include<queue> #includ

HDU 2147--HDU 2147(博弈)--我可能做了假题。。。

kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/1000 K (Java/Others) Total Submission(s): 238 Accepted Submission(s): 41 Problem Description Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she

UVA 100 The 3n + 1 problem(超级大水题)

The 3n + 1 problem Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description Problems in Computer Science are often classified as belonging to a certain class of problems (e.g., NP, Unsolvable, Recursive). In this problem you

51nod P1305 Pairwise Sum and Divide ——思路题

久しぶり! 发现的一道有意思的题,想了半天都没有找到规律,结果竟然是思路题..(在大佬题解的帮助下) 原题戳>>https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1305<< 有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整: fun(A) sum = 0 for i = 1 to A.length for j = i+1 to A.length sum = sum + Floor(

很多人不知道做百度知道百分百成功的方法

做百度知道百分百成功的方法 我们做网络营销和网站推广的朋友估计很多人都研究过各大问答平台,但是随着百度的不断更新真的这么好做吗?答案是否定的,现在不想以前了,以前百度机制不严,做自问自答基本不会被删,现在不一样了,我们如果还想以前一样一个号提问一个账号回答基本都会被秒删,那么有什么好的办法才能"破解魔咒"呢?汕尾SEO来教你~ 网络营销 下面这5种方法,也是很多做网络推广手经常用的手段: 1.小号提问大号回答 2.用手机提问,我们这里用手机下载百度知道,登录大号,找到小号的问题进行回复

【习题 4-9 UVA - 815】Flooded!

[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目很迷啊. 不会出现盆地? 可以理解为一条线. 从左往右高度上升的一座座山. 然后V升的水从最左边的山倒进去. 然后问你最后海拔多高.. (为什么是这样啊??? 鬼知道... 所以每次只要看看前i个山同时升高a[i+1]-a[i]是不是小于等于rest就好. 小于等于的话.就能持续升高. [代码] #include <bits/stdc++.h> #define rep1(i,a,b) for (int i = a;i &l

Java做界面思路整理

说起大一就学过C++,但从未接触过VC++,至于做界面也是直到学java才开始,所以自己还是个新手啊... 步入正题,通过自己写的两个小程序,对做界面的思路进行一下整理. 首先,构想出自己想要实现的界面是什么样子.可以在纸上画出个轮廓(我是这么干的...),尽量详尽,比如点击按钮后的实现一个页面的跳转,跳转之后的页面也画出来.为什么要这样呢?都知道界面是由控件和容器组成的,画的目的就是清楚要用哪些组件,并且根据自己的界面,然后组织容器,再进而组织布局.对于布局可能会比较麻烦一点,这要根据你的窗口