Vijos P1159 - 岳麓山上打水
来源:互联网 发布:mac数据恢复 编辑:程序博客网 时间:2024/06/02 23:54
思路
了解了一下迭代加深搜索(DFSID),就是枚举上限的DFS。
枚举种类,然后依次判断。
代码
#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int VMAXN = 2e4 + 10;
const int TMAXN = 100 + 10;
const int INF = 0x3f3f3f3f;
int num[TMAXN], dp[VMAXN], k, n, m;
int ans[TMAXN];
bool Check(int sum)
{
int &cur = dp[sum];
if (cur != -1)
return cur;
if (sum == 0)
return cur = 1;
for (int i = 0; i < k; i++)
if (sum >= ans[i] && Check(sum - ans[i]))
return cur = 1;
return cur = 0;
}
void DFSID(int cur, int dep)
{
if (dep == k)
{
memset(dp, -1, sizeof dp);
if (Check(n))
{
printf("%d", k);
for (int i = 0; i < dep; i++)
printf(" %d", ans[i]);
puts("");
exit(0);
}
return;
}
if (cur >= m)
return;
ans[dep] = num[cur];
DFSID(cur + 1, dep + 1);
DFSID(cur + 1, dep);
}
int main()
{
//freopen("input.txt", "r", stdin);
int i, j;
scanf("%d%d", &n, &m);
for (i = 0; i < m; i++)
scanf("%d", &num[i]);
sort(num, num + m);
for (k = 1; k <= m; k++)
DFSID(0, 0);
return 0;
}
0 0
- Vijos P1159 - 岳麓山上打水
- vijos P1159 岳麓山上打水
- Vijos P1159 岳麓山上打水
- vijosP1159 岳麓山上打水
- CQOJ#p2991 岳麓山上打水
- vijos1159岳麓山上打水 (迭代加深搜索+dp)
- Palindrome (P1159)
- Tyvj专题 P1159 玛丽卡
- 打水问题
- nswoj 打水
- nswoj-打水
- 打水问题
- 06年岳麓山赏雪~
- 边爬岳麓山,边聊单例模式
- 1882石阶上的砖——数学大法vijos
- |Vijos|图论最短路|P1446 最短路上的统计
- 排队打水问题
- 【動態規劃】打水漂
- oracle 报错问题汇总
- 关于Build Active Architecture Only属性
- 黑马程序员,黑马论坛----黑马.Net8期,就业率98.61%,平均薪水5722元!
- 黑马程序员—[Android就业薪资] Android29期,毕业28天,100%全部就业,平均薪水10268元!
- Netstat命令详解
- Vijos P1159 - 岳麓山上打水
- 黑马程序员,黑马论坛----黑马.Net7期,毕业121个工作日,就业率100%,平均薪水:6383元
- 黑马程序员—[JavaEE就业薪资] JavaEE+云计算7期,就业率97%,平均工资7610元!
- 格式化数字
- 花生壳动态域名不能访问
- HDU 4888 (杭电多校#3)Redraw Beautiful Drawings(网络流之最大流)
- 简化网站开发:SiteMesh插件
- strcpy、memcpy、memmove
- 【线段树】 HDOJ 4973 A simple simulation problem.