zoukankan      html  css  js  c++  java
  • vojos 1059 积木城堡 经典动态

    题目意思就是小xc想送给幼儿园女孩子们每人一座城堡,这些城堡都是用立方体的积木搭成,现在为了不出现偏袒那个女生的现象,必须要求送给每个女孩子的城堡的告诉都一样高,那么小xc想出来的办法就是在抽掉其中部分城堡当中的积木,尽量让所有的城堡能达到最大公共高度。

    那么其实转念一想就很简单,其实就是把其中每个塔的积木全部当做是物品,求这些物品尽量能占得的最大空间,然后求所有城堡的能到达的最大公共高度。

    View Code
     1  #include<iostream>
     2  #include<stdio.h>
     3  using namespace std;
     4  int dp[110][10000],Count[10000]; 
     5  int main()
     6  {
     7     int n,height,Minvalue,sum;
     8     while(scanf("%d",&n)!=EOF)
     9     {
    10            Minvalue=100000;
    11            memset(dp,0,sizeof(dp));
    12            memset(Count,0,sizeof(Count));
    13            for(int i=0;i<n;i++)
    14            {
    15                dp[i][0]=1,height=1,sum=0;
    16                while(1)
    17                {
    18                   scanf("%d",&height);
    19                   if(height==-1)break;
    20                   sum+=height;
    21                   for(int j=sum;j>=height;j--)
    22                   {
    23                       if(dp[i][j-height]==1&&dp[i][j]==0)
    24                       {
    25                            dp[i][j]=1;
    26                            Count[j]++;           
    27                       }        
    28                   }
    29                }    
    30                Minvalue=sum<Minvalue?sum:Minvalue;
    31            }
    32            int answer;
    33            for(answer=Minvalue;answer>0;answer--)
    34            if(Count[answer]==n)break;
    35            printf("%d\n",answer);
    36     }
    37     return 0;    
    38  }
    39  
  • 相关阅读:
    汇编随笔(第一章 基础知识)
    排序集锦(rough)
    如何让编写的Java代码规范整洁
    二分法查询数据java实现
    归并排序的学习与java实现
    小白的软件测试之路
    PyInstaller打包python脚本
    数据库SQL优化总结
    JQuery选择器
    软件测试面试题
  • 原文地址:https://www.cnblogs.com/nuoyan2010/p/2667083.html
Copyright © 2011-2022 走看看