C. Feast Coins(背包求方案数)
ICPC Arab Collegiate Programming Contest 2014 C题
题解:转化为因子考虑,因为每一种选取相同的个数
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn=5005+10;
const LL maxm=55;
const LL mod=1e9+7;
LL S,N;
LL V[maxn],C[maxn];
LL f[maxm][maxn];
int mp[maxn];
int main()
{int T;scanf("%d",&T);int c=1;while(T--){scanf("%lld%lld",&S,&N);for(LL i=1;i<=N;i++){scanf("%lld%lld",&V[i],&C[i]);}memset(mp,0,sizeof(mp));vector<LL> v;v.clear();for(LL i=1;i<=S;i++){if(S%i==0){if(mp[i]==0){mp[i]=1;v.push_back(i);}}}LL res=0;LL n=v.size();for(LL k=0;k<n;k++){LL m=v[k];memset(f,0,sizeof(f));for(LL i=1;i<=N;i++){for(LL j=1;j<=m;j++){LL l=S/m;if(j-V[i]>=0&&f[i-1][j-V[i]]&&l*V[i]<=S&&l<=C[i]){//一定要加l<=C[i],否则会waf[i][j]+=f[i-1][j-V[i]];}f[i][j]+=f[i-1][j];if(l<=C[i]&&V[i]==j&&l*V[i]<=S){f[i][j]+=1;}}}/*for(LL i=1;i<=N;i++){for(LL j=1;j<=m;j++){printf("%lld ",f[i][j]);}printf("\n");}*/res+=f[N][m];}if(S==0){res=1;}printf("Case %d: %lld\n",c++,res);}return 0;
}
C. Feast Coins(背包求方案数)相关推荐
- [完全背包] 货币系统(完全背包+求方案数)
文章目录 0. 前言 1. 完全背包+求方案数+思维 0. 前言 相关: [背包] 背包问题算法模板(模板) 强相关: [完全背包] 买书(完全背包+裸题) [完全背包] 货币系统(完全背包+求方案数 ...
- [01背包] 背包问题求具体方案(01背包+求方案数+思维)
文章目录 0. 前言 1. 01背包+求方案数+思维 0. 前言 相关: [背包] 背包问题算法模板(模板) 1. 01背包+求方案数+思维 12. 背包问题求具体方案 求方案数也是背包问题.dp 的 ...
- [01背包] 数字组合(01背包+求方案数)
文章目录 0. 前言 1. 01背包求方案数 0. 前言 相关: [背包] 背包问题算法模板(模板) 1. 01背包求方案数 278. 数字组合 将 M 看作背包容量,每个数看成一个物品,Ai 看成是 ...
- 7-30 找单词——多重背包求方案数
假设有x1个字母A, x2个字母B,- x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,- 字母Z的价值为26.那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是 ...
- 物资调度(01背包+求方案数)
物资调度 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 某地区发生了地震,灾区已经非常困难,灾民急需一些帐篷.衣物.食品和血浆等物资.可通往灾区的道路到处都是塌方,70 ...
- 【01背包求方案数模板】洛谷 P1164 小A点菜
洛谷 P1164 小A点菜 https://www.luogu.org/problemnew/show/P1164 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆, ...
- 牛客练习赛20 A-礼物(组合数学 or 完全背包求方案数)
题目链接:https://ac.nowcoder.com/acm/contest/128/A?&headNav=www 题目描述 如果不想读故事的話,可以直接跳到最后一段... 大一开 ...
- 动态规划之如何将问题抽象转化为0-1背包问题(详解利用动态规划求方案数)
⭐️前面的话⭐️ 本篇文章介绍如何对问题抽象转化成0-1背包问题求解和运用0-1背包求方案数.
- 01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,背包问题求方案数
1 01背包问题 有 NNN 件物品和一个容量是 VVV 的背包.每件物品只能使用 一次. 第 iii 件物品的体积是 viv_ivi,价值是 wiw_iwi.求解将哪些物品装入背包,可使这些物品 ...
最新文章
- conda环境里安装pydot
- 标签view文字自动换行
- 本月与上月对比数据叫什么_财务人事应会Excel数据对比Vlookup函数快速核定变动...
- 如何批量转.jpg/.bmp图片
- C# WPF MVVM开发框架Caliburn.Micro View / View Model 命名⑨
- win10卓越性能模式,提升电脑性能
- rsync的介绍及参数详解,配置步骤,工作模式介绍
- 自动驾驶与交通效率数学建模_业界大咖:5G智慧交通体系将推动自动驾驶换挡提速 | 推广...
- win7怎么跳过硬盘自检_DiskGenius 5.2.1发布!增强扇区复制功能,方便坏道硬盘做镜像!...
- JS格式化数字保留两位小数点—toFixed()
- java生成数据库设计说明书(excel)
- python数据库教程_python使用mysql操作教程
- 安卓应用和ios应用下载地址生成一个统一二维码
- FPGA经典设计思想
- Latex中PDF文档目录乱码解决方案
- HashMap常见面试考题
- [转载] 晓说——第1期:揭秘游戏规则奥斯卡走下“神坛“
- c语言编程怎么样,C语言怎么样,好学吗?
- go语言:给map上锁
- 小学计算机学科知识与能力,学科知识与能力:计算机基础知识模块知识点分析...