博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA-10118-Free Candies
阅读量:6173 次
发布时间:2019-06-21

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

链接:https://vjudge.net/problem/UVA-10118

题意:

给你四个柱子,每个柱子有n个不同颜色的糖果。

每次只能取柱子顶的一个糖果。

手上最多抓5个糖果。但是手上每有2个相同的的糖果的时候可以将这一对糖果放到口袋。

求最多能放几对糖果到口袋。

思路:

记忆化搜索。dp。

dp[a][b][c][d]记录第一个柱子取a个,第二个柱子取b个。。。。的能得到的最大的对数。

Vis记录手上糖果颜色拥有的情况

代码:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;const int MAXN = 40 + 10;int n;int dp[MAXN][MAXN][MAXN][MAXN];int a[7][MAXN];bool Vis[25];int use[10];int Dfs(int step){ if (dp[use[1]][use[2]][use[3]][use[4]] != -1) //当某种情况存在过之后就直接记录返回 return dp[use[1]][use[2]][use[3]][use[4]]; int res = 0; if (step == 5) return res; for (int i = 1; i <= 4; i++) { int tmp = 0; ++use[i]; if (use[i] > n) { --use[i]; continue; } if (Vis[a[i][use[i]]]) { Vis[a[i][use[i]]] = false; tmp = Dfs(step - 1) + 1; Vis[a[i][use[i]]] = true; } else { Vis[a[i][use[i]]] = true; tmp = Dfs(step + 1); Vis[a[i][use[i]]] = false; } --use[i]; res = max(res, tmp); } return dp[use[1]][use[2]][use[3]][use[4]] = res;}int main(){ while (cin >> n && n) { memset(dp, -1, sizeof(dp)); memset(use, 0, sizeof(use)); memset(Vis, false, sizeof(Vis)); for (int i = 1;i <= n;i++) { for (int j = 1;j <= 4;j++) { cin >> a[j][i]; } } cout << Dfs(0) << endl; } return 0;}/*31 2 3 45 6 7 81 2 3 4 */

 

转载于:https://www.cnblogs.com/YDDDD/p/10665449.html

你可能感兴趣的文章
「镁客早报」诺基亚发布世界首款后置五摄手机;微软发布HoloLens 2新一代混合现实设备...
查看>>
安装PageAdmin Cms时候“System.ServiceModel.Activation.HttpModule”错误的解决办法
查看>>
升级用户创建
查看>>
【答疑】对象存储OSS常见问题解答(咨询类1)
查看>>
DSP_代码笔记(基于TMS320X281x)| CPU定时器0模块
查看>>
Android中实现短信验证码自动填入
查看>>
Linkflow连接云获百万美元A轮融资,金沙江创投投资
查看>>
开发网络视频直播系统需要注意的地方
查看>>
使用MaxCompute Java SDK运行安全相关命令
查看>>
小白的学习笔记 —— React环境构建 & 常用语法
查看>>
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.8. 异步提示
查看>>
Android开发实践小结
查看>>
gRPC Spring Boot Starter 2.3.0 发布,同步支持链路跟踪
查看>>
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 32 章 回归测试_32.2. 测试评估
查看>>
OneGame V1.0.1 发布,新增加手游联运模块
查看>>
维表JOIN语句
查看>>
Android DatePicker
查看>>
聊聊大麦网UWP版的首页顶部图片联动效果的实现方法
查看>>
Linux服务器---phpMyAdmin
查看>>
asp.net core mvc 中间件之路由
查看>>