洪水!(Flooded! ACM/ICPC World Final 1999,UVa815)

题目描述:竞赛入门经典的习题4-10

解题思路:1.把各个网格想象成一个数组

     2.排序

     3.雨水总体积去铺满

//太懒了只写了求海拔

 1 #include <stdio.h>
 2 #define maxn 50
 3 int altitude[maxn*maxn] ;int smr[maxn][maxn] ;
 4 int main(int argc, char *argv[])
 5 {
 6     int n,m,i ;
 7     while(scanf("%d%d",&n,&m) == 2 &n &m){
 8         //循环输入 
 9         for(i=0;i<n*m;i++) scanf("%d",&altitude[i]) ;
10         int water,count = i ; //网格数量
11         scanf("%d",&water) ;
12         //排序
13          for(int i=0;i<n*m-1;i++)
14              for(int j=0;j<n*m-1-i;j++)
15                  if(altitude[j]>altitude[j+1]){
16                      int t = altitude[j] ;
17                      altitude[j] = altitude[j+1] ;
18                      altitude[j+1] = t ;
19                  } 
20         //for(int i=0;i<n*m;i++) printf("%d     ",altitude[i]) ;
21         printf("\n") ;
22         int i,lw ,flag=0,t=0;
23     
24         for(i=0;i<count-1;i++){
25             if(altitude[i+1]>altitude[i]){
26                 t = (i+1)*(altitude[i+1] - altitude[i])*10*10 + t ;
27                 if(t<=water) lw = t ;
28                 else{
29                     flag = 1;
30                     break ;
31                 }        
32             }
33             if(flag) break ;
34             //printf("%d  ",lw);
35         } 
36         //printf("\n%d",i) ;
37         //printf("\n%d",altitude[i]) ;
38         printf("\n%f",altitude[i]+(float)(water - lw)/((i+1)*100)) ;
39     }    
40     return 0;
41 }

 

 

转载于:https://www.cnblogs.com/secoding/p/9484694.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值