博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】3127 WHUgirls
阅读量:6812 次
发布时间:2019-06-26

本文共 1382 字,大约阅读时间需要 4 分钟。

1 #include 
2 #include
3 4 #define mymax(a, b) (a>b) ? a:b 5 6 typedef struct { 7 int x, y, c; 8 } rect_st; 9 10 rect_st rects[15];11 12 int dp[1005][1005];13 14 int main() {15 int case_n;16 int x, y, n;17 int i, j, k, tmp;18 19 scanf("%d", &case_n);20 21 while (case_n--) {22 scanf("%d%d%d", &n,&x,&y);23 for (i=1; i<=n; ++i)24 scanf("%d%d%d", &rects[i].x, &rects[i].y, &rects[i].c);25 memset(dp, 0, sizeof(dp));26 for (i=1; i<=x; ++i) {27 for (j=1; j<=y; ++j) {28 for (k=1; k<=n; ++k) {29 if (i>=rects[k].x && j>=rects[k].y) {30 tmp = mymax(dp[i-rects[k].x][j]+dp[rects[k].x][j-rects[k].y], dp[i][j-rects[k].y]+dp[i-rects[k].x][rects[k].y]);31 dp[i][j] = mymax(dp[i][j], tmp+rects[k].c);32 }33 if (i>=rects[k].y && j>=rects[k].x) {34 tmp = mymax(dp[i-rects[k].y][j]+dp[rects[k].y][j-rects[k].x], dp[i][j-rects[k].x]+dp[i-rects[k].y][rects[k].x]);35 dp[i][j] = mymax(dp[i][j], tmp+rects[k].c);36 }37 }38 }39 }40 printf("%d\n", dp[x][y]);41 }42 43 return 0;44 }

 

完全背包。

转载于:https://www.cnblogs.com/bombe1013/p/3757213.html

你可能感兴趣的文章
数据对齐
查看>>
linux设置 让oracle10g自启动
查看>>
用JQuery给图片添加鼠标移入移出事件
查看>>
ALTER TABLE & ALTER TYPES
查看>>
Hadoop-调优剖析
查看>>
Mac前端抓包小工具Charles4.0下载
查看>>
用AHP层次分析法挑选最佳结婚对象
查看>>
Subversion安装手记
查看>>
Linux 获取设备树源文件(DTS)里描述的资源【转】
查看>>
Effective C++ 阅读笔记(二)public继承与继承中的函数覆盖
查看>>
什么是UV?
查看>>
Docker 容器测试全探索
查看>>
如何在Ubuntu 16.04中创建GIF动图
查看>>
结构和类的区别
查看>>
Stringbuffer与Stringbuilder源码学习和对比
查看>>
AgileEAS.NET平台开发Step By Step系列-药店系统-索引
查看>>
黑盒测试难还是白盒测试难?
查看>>
jQuery CSS 函数
查看>>
Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)及总结
查看>>
字符输出流Writer简要概括
查看>>