【鸽笼原理】ZOJ 2955

原创 2012年03月30日 13:09:18

用到了鸽笼原理的结论:设可选的 N 个数从小到大依次为 a(1)、 a(2) … a(N),则在最优的取法中,小于 a(N) 的数不会多于 a(N) 个。

#define N 10005
int dp[N];
int w[111];
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n,c;
        scanf("%d%d",&n,&c);
        int i,j;
        for(i=1;i<=n;i++)scanf("%d",&w[i]);
        sort(w+1,w+1+n);
        int mx = w[n]*w[n];
        memset(dp,-1,sizeof(dp));
        dp[0] = 0;
        for(i=1;i<=n;i++){
            for(j=w[i];j<mx;j++){
                if(dp[j-w[i]]!=-1 && (dp[j]==-1 || dp[j-w[i]] + 1<dp[j]))
                dp[j] = dp[j-w[i]]+1;
            }
        }
        int res = c;
        int cnt = 0;
        if(c>=mx){
            res = c%mx;
            cnt = (c-c%mx)/w[n];
        }
        int ans;
        if(dp[res]==-1)ans=-1;
        else ans = cnt+dp[res];
        printf("%d\n",ans);
    }
    return 0;
}



















鸽笼原理应用举例

鸽笼原理及其应用1. 9 个人戴两顶颜色的帽子9 个人戴两顶颜色的帽子,则一定有 1 种颜色的帽子,被选择 5 次以上。...
  • lanchunhui
  • lanchunhui
  • 2016年06月24日 22:53
  • 585

鸽笼原理 小讲 【 理解 + 例题 】 更新 ing ...

桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹...
  • xi__long
  • xi__long
  • 2014年09月04日 11:59
  • 738

抽屉原理(又名:鸽笼原理)

百度真是太强大了,百度百科真的好爱你…… 抽屉原理 百科名片    抽屉原理 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少...
  • xuexiacm
  • xuexiacm
  • 2012年10月29日 12:05
  • 7429

POJ - 2955 Brackets(区间dp)

题目大意:给出一个括号字符串,问这个字符串中符合规则的最长子串的长度解题思路:区间dp,用dp[i][j]表示[i,j]这个区间内有符合规则的最长子串的长度 如果str[i] 和str[j]能构成 ...
  • L123012013048
  • L123012013048
  • 2015年09月30日 22:26
  • 274

poj2955解题报告

题目大意:求出互相匹配的括号的总数 解题思路:找出最少需要多少个括号来匹配,然后再拿总长度减去最少需要匹配的括号数 转移方式有两种:第一种:形如S形如[S1]或者(S1)则d(s)=min(d(s...
  • h123120
  • h123120
  • 2015年07月11日 17:24
  • 364

hdu2955 Robberies 01背包 dp

链接:点我 题意:一个强盗要去抢劫银行,对于每个银行来说,都有一个不被抓的概率p,和能抢劫到的钱数money,每个银行最多只可以被抢劫一次。问在不被抓的总概率P下,怎样得到最大价值的钱数。 分析:...
  • liuqiyao_01
  • liuqiyao_01
  • 2013年04月01日 19:15
  • 3253

POJ-2955 Brackets

题目大意: 给你一个只由'('、')'、'['、']'组成的字符串,问你这个字符串的子串能够匹配的最长长度是多少。 能够匹配的意思是这样的: 1.如果s是个空串,那么它是匹配的。 2.如果子串...
  • Snow_Me
  • Snow_Me
  • 2016年09月07日 11:26
  • 249

poj2955 Brackets--最大括号匹配数

Description We give the following inductive definition of a “regular brackets” sequence: the...
  • u013023344
  • u013023344
  • 2014年08月13日 10:42
  • 999

Cisco Catalyst 2955系列交换机

v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML)...
  • hanyu1980
  • hanyu1980
  • 2008年07月24日 11:25
  • 468

hdu2955 Robberies(01背包)

这题我是看题解做的。。。 刚开始一看浮点数遍历,乘100后再算果断WA(和我想的一样)。然后就不会了,看了才知道要转化背包,而且这个概率算的话是相乘,求的是最大逃跑概率,真是从头错到尾啊。。。还有...
  • Flynn_curry
  • Flynn_curry
  • 2016年03月21日 22:18
  • 2215
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【鸽笼原理】ZOJ 2955
举报原因:
原因补充:

(最多只允许输入30个字)