• dp --- CSU 1547: Rectangle


     Rectangle

    Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1547


    Mean: 

    给你一些宽为1或2 的木板,让你放在一个宽为二的盒子里面,问你这个盒子最短有多长。

    analyse:

    简单dp,一开始想错了。

    Time complexity: O(n)

    Source code: 

    //  Memory   Time
    //  1347K     0MS
    //   by : crazyacking
    //   2015-03-29-22.02
    #include<map>
    #include<queue>
    #include<stack>
    #include<cmath>
    #include<cstdio>
    #include<vector>
    #include<string>
    #include<cstdlib>
    #include<cstring>
    #include<climits>
    #include<iostream>
    #include<algorithm>
    #define MAXN 10005
    #define LL long long
    using namespace std;
    int Cas,n,dp[MAXN];
    int main(){
        cin>>Cas;
        while(Cas--)
        {
            int cnt = 0 ,sum=0;
            scanf("%d",&n);
            int ta, tb; 
            memset(dp,0,sizeof dp);
            dp[0] = 1;
            int csum = 0 ; 
            for(int i = 1;i <= n; i ++)
            {
               scanf("%d %d",&ta,&tb);
               
              if(ta == 2 )
                  sum += tb;
              else{
                 csum += tb ;
                 for(int i = csum;i >= 0 ;i -- )
                 {
                   if(dp[i] != 0 )
                   {
                      dp[i+tb] = 1; 
                   }
                 }
              }
            }
            for(int i = csum /2 ;i >= 0 ;i--)
            {
              if(dp[i] != 0 )
              {
                 sum += max(i,csum-i);
                 break;
              }
            }
            printf("%d
    ",sum);
                 
        }
    return 0;
    }
    View Code
  • 相关阅读:
    msql 计算连续签到天数
    jetty启动常用命令
    nginx负载均衡, 配置地址带端口
    IDEA java 代码格式化统一
    Linux下安装Zookeeper
    nexus admin 从文件角度进行密码重置
    Monkey测试
    接口测试
    我的IT之路
    cookie 操作(转载)
  • 原文地址:https://www.cnblogs.com/crazyacking/p/4376524.html
Copyright © 2020-2023  润新知