首页 > 其他分享 >hdu2079选课时间(背包)

hdu2079选课时间(背包)

时间:2023-06-12 14:38:10浏览次数:36  
标签:背包 hdu2079 选课 int 20 学分 Input dp


思路:相当于一个裸的多重背包



#include<iostream>
#include<cstdio>
using namespace std;
int a[20],num[20],dp[50];
int main()
{
	int T;
	scanf("%d",&T);
	while (T--)
	{
		int n,m;
		scanf("%d%d",&n,&m);
		for (int i = 1;i<=m;i++)
			scanf("%d%d",&a[i],&num[i]);
		for (int i = 1;i<=n;i++)
			dp[i]=0;
		dp[0]=1;
		for (int i = 1;i<=m;i++)
			for (int j = n;j>=a[i];j--)
				for (int k = 1;k<=num[i]&&(j-a[i]*k)>=0;k++)
					dp[j]=dp[j]+dp[j-a[i]*k];
		printf("%d\n",dp[n]);
	}
}




Description



又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别) 



 



Input



输入数据的第一行是一个数据T,表示有T组数据。 
每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。 
接着有k行,每行有两个整数a(1 <= a <= 8),b(1 <= b <= 10),表示学分为a的课有b门。 



 



Output



对于每组输入数据,输出一个整数,表示学n个学分的组合数。 



 



Sample Input



2 2 2 1 2 2 1 40 8 1 1 2 2 3 2 4 2 5 8 6 9 7 6 8 8



 



Sample Output



2 445



 






标签:背包,hdu2079,选课,int,20,学分,Input,dp
From: https://blog.51cto.com/u_16156555/6462529

相关文章

  • 0-1背背包问题
    0-1背包问题参考链接:https://en.wikipedia.org/wiki/Knapsack_problem/***0-1背包问题*将n个价值为v,重量为v的物品放入限重为W的背包中,要求背包中物品的价值最高。**/importjava.util.HashSet;importjava.util.Set;publicclassKnapsack{//物品的价......
  • 算法题总结-分组背包
    原题有N件物品和一个容量为V的背包。第i件物品的费用是Ci,价值是Wi。这些物品被划分为K组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。由于截止目前,没有刷到对应的经典题目,以下以依赖背包的转化题......
  • 算法题总结-分组背包与依赖背包
    原题https://www.nowcoder.com/practice/f9c6f980eeec43ef85be20755ddbeaf4?tpId=37&tqId=21239&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fdifficulty%3D1%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&am......
  • [CTSC1997] 选课(树状DP)
    刚接触树状DP,好难啊QAQ[CTSC1997]选课题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有 N 门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是......
  • 【01-动态规划-01背包问题】
    第一部分什么是动态规划?"动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。由于动态规划并不是某种具体的算法,而是一种解决特定问题的方法,因此它会出现在各式各样的数据结构中,与之相关的题目种类也更为繁杂。在OI中,计数等非最优化问题的递推解......
  • HDU - 1114 Piggy-Bank (完全背包)
    TimeLimit: 1000MS MemoryLimit: 32768KB 64bitIOFormat: %I64d&%I64uHDU-1114Piggy-BankSubmit StatusDescriptionBeforeACMcandoanything,abudgetmustbepreparedandthenecessaryfinancialsupportobtained.Themainincomeforthis......
  • 动态规划(五)背包问题
    基本思想:动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分......
  • 01背包问题
    问题描述: 给定n种物品和一背包的容量m,物品i的重量是c[i],其价值是w[i],问如何选择装入背包中的物品总价值最大?每种物品一件,可以选择放或不放。  分析:dp[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:  这个方程非常重要,基本上所有跟背包......
  • 背包问题(模板
    哼哼哼啊啊啊啊啊……顾冥思彝,就是背包出问题了……(bushi一个人在旅途中的人有一个最多能用M公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn.求此人能获得最大总价值。Input第1行:两个整数,M(背包容量,M<=200)和n(物品数量,n<=30);第2至n+1行:每行两个......
  • hdu 5188(限制01背包)
    zhxandcontestTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/65536K(Java/Others)ProblemDescriptionAsoneofthemostpowerfulbrushesintheworld,zhxusuallytakespartinallkindsofcontests.Oneday,zhxtakespar......