NUBT 1480 懒惰的风纪委Elaine
来源:互联网 发布:java获取整数位数 编辑:程序博客网 时间:2024/05/02 04:23
链接:点击打开链接
题意:找出Elaine能用卷轴到达的街道数量。
思路:多重背包问题,我们可以用二进制拆分来做,x=1+2+4+8+一个奇数。。如果DP【j-y*a[i]】!=-1,那么DP【j】肯定可以到达。不要往级最后一个奇数也要加入背包。。。。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,m;int dp[1100],a[110],b[110];int main(){int i,j,z,x,y;while(~scanf("%d %d",&n,&m)){if(n==0&&m==0)break;for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)scanf("%d",&b[i]);for(i=0;i<n;i++)if(a[i]>m){a[i]=0;b[i]=0;}memset(dp,-1,sizeof(dp)); dp[0]=0; for(i=0;i<n;i++){x=b[i],y=1;while(x>y){for(j=m;j>=y*a[i];j--) if(dp[j-y*a[i]]!=-1) dp[j]=1; x-=y; y*=2;} for(j=m;j>=x*a[i];j--) if(dp[j-x*a[i]]!=-1) dp[j]=1;}z=0;for(i=1;i<=m;i++)if(dp[i]==1)z++;printf("%d\n",z);}return 0;}
- NUBT 1480 懒惰的风纪委Elaine
- NOJ——[1480] 懒惰的风纪委Elaine
- NBUT1480:懒惰的风纪委Elaine(多重背包)
- 懒惰的风纪委Elaine(宁波工程学院)
- NOJ [F] 懒惰的风纪委Elaine 求一堆数能组成多少个数小于等于n
- 爱你,我永远的 Elaine
- NBOJ 1184 Elaine's Queue deque的运用
- 程序员的懒惰经历
- 懒惰的理由
- 懒惰的程序员
- 懒惰的恶习
- 懒惰的状态
- 懒惰的时候
- “懒惰”的权利
- 学会懒惰的编程
- 懒惰的后果
- 懒惰的日子
- 懒惰的程序员
- Ubuntu下的PHP开发环境架设
- 双XP系统 %中文版% &英文版&
- 将HTML特殊转义为实体字符的两种实现方式
- Python中使用list来模拟常见的数据结构
- 用getch仿真输入密码
- NUBT 1480 懒惰的风纪委Elaine
- 【驱动学习】Essential Linux Device Driver学习笔记(一)
- 实现web多语言的一种解决办法
- 怎么判别一个关键字的实用价值
- DG 检查
- 网站流量来源是很广泛的
- gcc 后出现的error和warming 修改(更新中)
- Timus 1244. Gentlemen
- 快速排序