nyoj 49 开心的小明 【DP】【01背包】
来源:互联网 发布:命令行更新ubuntu系统 编辑:程序博客网 时间:2024/04/28 01:34
网上的讲解很详细 不再解释
代码一:(二维数组)
#include<stdio.h>#include<string.h>#define max( a, b ) a>b?a:bint dp[30][30005];int main(){int t, n, m, i, j, v[30], p[30];scanf( "%d", &t );while( t -- ){scanf( "%d%d", &n, &m );for( i = 0; i < m; i ++ )scanf( "%d%d", &v[i], &p[i] );memset( dp, 0, sizeof(0) );for( i = 0; i < m; i ++ ){for( j = 0; j <= n; j ++ )if( j < v[i] ) dp[i+1][j] = dp[i][j];elsedp[i+1][j] = max( dp[i][j], dp[i][j-v[i]]+v[i]*p[i] );}printf( "%d\n", dp[m][n] );}return 0;}代码二:(一维数组)
#include<stdio.h>#include<string.h>#define max( a, b ) a>b?a:bint dp[30005];int main(){int t, n, m, i, j, v[30], p[30];scanf( "%d", &t );while( t -- ){scanf( "%d%d", &n, &m );for( i = 0; i < m; i ++ )scanf( "%d%d", &v[i], &p[i] );memset( dp, 0, sizeof(dp) );for( i = 0; i < m; i ++ ){for( j = n; j >= v[i]; j -- )dp[j] = max( dp[j], dp[j-v[i]]+v[i]*p[i] );}printf( "%d\n", dp[n] );}return 0;}
0 0
- nyoj 49 开心的小明 【DP】【01背包】
- NYOJ 49-开心的小明:01背包
- NYOJ 题目49 开心的小明 (01背包)
- NYOJ 题目49开心的小明(01背包)
- NYOJ 49 开心的小明(01背包问题)
- nyoj 开心的小明 49 (01背包)
- nyoj 49 开心的小明(01背包)
- NYOJ 49 开心的小明(01背包)
- nyoj--49 开心的小明(dp)
- NYOJ 49-开心的小明(经典01背包)--内附背包九讲2.0PDF
- NYOJ 49 开心的小明(0-1背包)
- NYOJ 49 开心的小明(0-1背包)
- NYOJ 49 开心的小明 【0 1 背包】
- nyoj--49--开心的小明(背包)
- NYOJ-开心的小明【动态规划|01背包】
- nyoj 开心的小明 动态规划 01背包
- NYOJ - 开心的小明(经典dp)
- nyoj 49 开心的小明 【dp&&贪心】
- 如何使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(3)
- 国外的一些struts面试题2
- Object-C中ARC对象桥接的三个关键字
- 隐藏任意一个分区图标,个人已验证技术贴
- 可变参数的使用
- nyoj 49 开心的小明 【DP】【01背包】
- Android Service 服务(二)—— BroadcastReceiver
- 重要的电子商务推广策略
- Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
- treectl 的使用
- iOS判断当前是否有网络
- Linux文件共享(二)——两个独立进程打开同一个文件
- 如何使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(4)
- [LeetCode] Convert Sorted Array to Binary Search Tree