博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【洛谷3959】 宝藏
阅读量:6598 次
发布时间:2019-06-24

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

Solution

考虑这题\(n\)这么小,肯定是什么状压或者搜索。

考虑状压:
\(f_i\)表示现在选的数的集合为\(i\)的最小费用,显然我们可以根据遍历点的顺序来确定点的深度。
长度的话每一次选一个当前集合内的点向外更新,如果到达点不在集合内直接加进来判一下就好了。
这个东西用dfs比较好实现。

代码实现

#include
#include
#include
#include
#include
#include
#include
#define ll long long#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)using namespace std;inline int gi(){ int sum=0,f=1;char ch=getchar(); while(ch>'9' || ch<'0'){if(ch=='-')f=-f;ch=getchar();} while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();} return f*sum;}inline ll gl(){ ll sum=0,f=1;char ch=getchar(); while(ch>'9' || ch<'0'){if(ch=='-')f=-f;ch=getchar();} while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();} return f*sum;}const int maxn=20;ll dp[200010];int n,dep[maxn],g[maxn][maxn];void Dp(int s){//挖通的集合 for(int u=1;u<=n;u++) if(s&(1<

转载于:https://www.cnblogs.com/mle-world/p/10290499.html

你可能感兴趣的文章
CISCO交换机密码恢复
查看>>
有关在linux 下跑asp.net文章博客
查看>>
Linux/Unix的精巧约定两例及其简析:目录权限和文本行数
查看>>
WebDAV助手1.1.0更新
查看>>
[CTSC2018]青蕈领主
查看>>
原型继承
查看>>
找不到ifconfig命令
查看>>
微服务事务处理
查看>>
用Groovy进行单元测试
查看>>
github地址
查看>>
nginx使用
查看>>
两个openssh间免密码登录
查看>>
【linux】 linux gpio操作
查看>>
【linux kernel】 softirq 软中断讨论
查看>>
2019武汉大学数学专业考研真题(回忆版)
查看>>
百度地图车辆运动轨迹
查看>>
文本与字体
查看>>
从函数式编程到Ramda函数库(一)
查看>>
ora-1652
查看>>
PL/SQL developer 开发小技能 and ash show command PL/SQL EXECUTE
查看>>