zoukankan      html  css  js  c++  java
  • hdu 3496 Watch The Movie(DP)

    点击打开链接

    题目意思:

    **要在今晚看电影,所以让她叔叔给她买电影,但看电影的时间有限,并且商店卖的电影数目也是一定的。每个电影都有以一个价值。求最大价值。如果多买的电影没看完,输出0;

    有T组数据,给你一个n表示有n种电影,一个m表示商店最多卖的电影数目,一个l表示这个晚上所允许花费的来看电影的时间;下面n行输入每部电影的时间和价值;

    dp[j][k]=max(dp[j-1][k-cost[i]]+value[i])

    dp[j][k]表示,花费时间k看j部电影所得的最大价值;

    最后只要判断dp[m][l]是否存在就可以了!

    #include"stdio.h"
    #include"string.h"
    #define max(x,y) x>y?x:y;
    int dp[101][1001];
    int main()
    {
    	int n,m,l,i,j,k;
    	int t,cost[101],value[101];
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d%d%d",&n,&m,&l);
    		for(i=1;i<=n;i++)
    			scanf("%d%d",&cost[i],&value[i]);
    		memset(dp,-1,sizeof(dp));
    		for(i=0;i<=l;i++)
    			dp[0][i]=0;
    		for(i=1;i<=n;i++)
    		{
    			for(j=m;j>=1;j--)
    			{
    				for(k=l;k>=cost[i];k--)
    					if(dp[j-1][k-cost[i]]!=-1)
    						dp[j][k]=max(dp[j][k],dp[j-1][k-cost[i]]+value[i]);
    			}
    		}
    		if(dp[m][l]==-1)dp[m][l]=0;
    		printf("%d\n",dp[m][l]);
    	}
    	return 0;
    }
    


  • 相关阅读:
    PyTorch-->Tensors(张量)
    Pytorch-->PyTorch学习(1)
    信息安全四大顶会!!!
    2020春季数据库-->关系演算安全性的理解
    2020春季数据库-->三级模式和两层映像
    2020寒假->Web编程(1)
    Httprequseter 插件使用
    YII2 客户端验证
    谷歌网页全屏截图
    后台新订单提醒
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365143.html
Copyright © 2011-2022 走看看