|洛谷|动态规划|P1757 通天之分组背包
2016-11-13 15:40
267 查看
https://www.luogu.org/discuss/show?postid=2772
简单分组背包
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#define ms(i,j) memset(i,j, sizeof i);
/* NOIP2016倒计时,RP++
Luogu: P1757 通天之分组背包
*/
using namespace std;
int n,m;
int a[105][1005];//组
int w[1005], v[1005];
int f[1005];
int main()
{
scanf("%d%d", &m ,&n);
ms(a,0);
int mm = 0;
for (int i=1;i<=n;i++)
{
int ci;
scanf("%d%d%d", &w[i], &v[i], &ci);
a[ci][++a[ci][0]] = i;
mm = max(mm, ci);
}
ms(f,0);
for (int i=1;i<=mm;i++)
{
for (int j=m;j>=0;j--)
{
for (int k=1;k<=a[i][0];k++)
{
if (j>=w[a[i][k]])
{
f[j] = max(f[j], f[j-w[a[i][k]]]+v[a[i][k]]);
}
}
}
}
printf("%d\n", f[m]);
return 0;
}
简单分组背包
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#define ms(i,j) memset(i,j, sizeof i);
/* NOIP2016倒计时,RP++
Luogu: P1757 通天之分组背包
*/
using namespace std;
int n,m;
int a[105][1005];//组
int w[1005], v[1005];
int f[1005];
int main()
{
scanf("%d%d", &m ,&n);
ms(a,0);
int mm = 0;
for (int i=1;i<=n;i++)
{
int ci;
scanf("%d%d%d", &w[i], &v[i], &ci);
a[ci][++a[ci][0]] = i;
mm = max(mm, ci);
}
ms(f,0);
for (int i=1;i<=mm;i++)
{
for (int j=m;j>=0;j--)
{
for (int k=1;k<=a[i][0];k++)
{
if (j>=w[a[i][k]])
{
f[j] = max(f[j], f[j-w[a[i][k]]]+v[a[i][k]]);
}
}
}
}
printf("%d\n", f[m]);
return 0;
}
相关文章推荐
- 洛谷——P1757 通天之分组背包
- 洛谷 P1757 通天之分组背包
- 洛谷P1757 通天之分组背包 [2017年4月计划 动态规划06]
- 洛谷P1757 通天之分组背包
- 洛谷P1757 通天之分组背包
- P1757 通天之分组背包
- B - ACboy needs your help(动态规划,分组背包)
- 洛谷 P1336 最佳课程选择(分组背包)
- 《动态规划》hdoj acm 3.3.4 分组背包
- HDU OJ 3303 I love sneakers!【动态规划之分组背包入门】
- [HDU 3033] I love sneakers! (动态规划分组背包)
- 洛谷P1273 有线电视网(DP,分组背包)
- CJOJ 2040 【一本通】分组背包(动态规划)
- 分组背包(动态规划)
- 分组背包(动态规划)
- ***C - I love sneakers!(动态规划,分组背包)
- 动态规划--至少取一个的分组背包--hdu3033 I love sneakers!
- 动态规划:HDU1712-ACboy needs your help(分组背包问题)
- 洛谷 动态规划的背包问题(普及连续场)
- 【51nod1086】【背包问题 V2】【动态规划】【二进制分组】