博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ] 2287: 【POJ Challenge】消失之物
阅读量:5806 次
发布时间:2019-06-18

本文共 1199 字,大约阅读时间需要 3 分钟。

退背包(好像是这么叫的)

\(f[j]\)是正常的01背包统计方案数,\(g[i][j]\)是删去第i个物品后的01背包统计方案数

#include
#include
#include
using namespace std; inline int rd(){ int ret=0,f=1;char c; while(c=getchar(),!isdigit(c))f=c=='-'?-1:1; while(isdigit(c))ret=ret*10+c-'0',c=getchar(); return ret*f;}#define space() putchar(' ')#define nextline() putchar('\n')void pot(int x){if(!x)return;pot(x/10);putchar('0'+x%10);}void out(int x){if(!x)putchar('0');if(x<0)putchar('-'),x=-x;pot(x);} const int MAXN = 2005;const int MOD = 10; inline int mul(int x,int y){return (1ll*x*y)%MOD;}inline void Mul(int &x,int y){x=mul(x,y);}inline int sub(int x,int y){return x-y<0?x-y+MOD:x-y;}inline int add(int x,int y){if(y>=0)return x+y>MOD?x+y-MOD:x+y;else return sub(x,-y);}inline void Add(int &x,int y){x=add(x,y);} int n,m;int v[MAXN];int f[MAXN],g[MAXN][MAXN]; int main(){ n=rd();m=rd(); for(int i=1;i<=n;i++)v[i]=rd(); f[0]=1; for(int i=1;i<=n;i++){ for(int j=m;j>=v[i];j--){ (f[j]+=f[j-v[i]])%=MOD; } } for(int i=1;i<=n;i++){ g[i][0]=1; for(int j=1;j<=m;j++){ if(j

转载于:https://www.cnblogs.com/ghostcai/p/9828371.html

你可能感兴趣的文章
jfrog artifactory jenkins pipeline 集成
查看>>
mysql开启慢查询日志
查看>>
大量用户升级iPhone3.0系统导致苹果服务器故障
查看>>
Gac代码库分析(1)
查看>>
IBM高级工程师,谷歌等国际知名公司工程师撰写Android开发教程合集
查看>>
关于图形学的那些让人迷惑的入门概念
查看>>
java中比较两个map是否相同
查看>>
阅读,学习编程的重要能力
查看>>
webpack 应用编译优化之路
查看>>
【刘文彬】区块链3.0:拥抱EOS
查看>>
javascript模拟鸟群使用cax和threejs渲染引擎
查看>>
设计模式——工厂方法模式
查看>>
面试vue组件间事件派发与接收
查看>>
以太坊、EOS和Hyperledger等区块链的不同
查看>>
DUBBO与ZOOKEEPER、SPRINGMVC整合和使用
查看>>
深入 LevelDB 数据文件 SSTable 的结构
查看>>
WWDC 2018:在Swift中如何高效地使用集合
查看>>
妈妈再也不用担心我的面试了 之 js原型和原型链
查看>>
Base64 的原理、实现及应用
查看>>
『Ansible 上手指南:2』
查看>>