NOIP2017 D2T2 宝藏】的更多相关文章

考场上写的prim一遍过了大样例也没想什么别的,反例也没举出来. 后来才知道由于要乘上深度所以无法贪心. 正解是状压但我不会,考后一个爆搜碾过去了. 心凉. #include<bits/stdc++.h> using namespace std; int n,m,tmp;long long ans=1e15; ; <<]; ][],d[]; void dfs(int now) { if(f[now]>ans)return ; if(now==tmp) { ans=min(an…
洛谷P3959 其实就是一道暴力搜索题……只是需要一个状态压缩的剪枝比较难想而已 这根本不叫dfs!只是一个递归而已……开始就被dfs坑了 思路: 首先一个基本的预处理 数据范围n≤12,m≤5000,说明肯定有很多没用的边,在读入的时候预处理掉就可以了,另外n很小可以用邻接矩阵存图访问快 解法一:暴力搜索 直接暴力搜索,开一个数组记录一个点有没有被访问过.每到一个状态,从访问过的点到未访问过的点引边算代价,递归枚举一下即可.但此方法时间复杂度较大,大约为O(n^n)?(没有仔细算),n<=8差…
#333. [NOIP2017]宝藏 http://uoj.ac/problem/333 1.错误的$n^42^n$做法: dp[s]表示当前的点集为s,然后从这些点中选一个做起点i,然后枚举边,然后更新dp[t|(1<<j)].dis[s][i]表示点集为s的情况下的i号点的深度.详见代码. 为什么是错的,不满足当前最优一定是最后最优.比如下面的hack数据,正确答案应该是10420,即从4号点出发,长度为1的那条边不要.而在上面的dp中,点集为234的状态中只能从24和34转移而来,而这两…
[NOIP2017]宝藏(状态压缩,动态规划) 题面 洛谷 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来…
「NOIP2017」宝藏 题解 博客阅读效果更佳 又到了一年一度NOIPCSP-S 赛前复习做真题的时间 于是就遇上了这道题 首先观察数据范围 \(1 \le n \le 12\) ,那么极大可能性是状压 \(\texttt{DP}\) 或者 \(\texttt{DFS}\) 爆搜 但由于这题放在了 \(\texttt{DP}\) 列表里面,于是优先考虑状压 简化题意: 从给定的 \(n\) 个点,\(m\) 条边的有重边的无向联通图中,找出一棵生成树,使得题目所求价值最小 从题目给出的建边价值…
题目大意:$NOIPD2T2$宝藏 题解:正常做法:状压DP .这次模拟退火,随机一个排列,$O(n^2)$贪心按排列的顺序加入生成树 卡点:没开$long\;long$,接受较劣解时判断打错,没判$n=1​$的情况 C++ Code: #include <cstdio> #include <cmath> #include <algorithm> #include <ctime> #include <cstdlib> #define maxn 1…
题目大意:给定一个有重边,边有权值的无向图.从某一个点出发,求到达所有的点需要的最少费用,并且限制两点之间只有一条路径.费用的计算公式为:所有边的费用之和.而边$x->y$的费用就为:$y$到初始点的之间点的个数(包括起始点) $\times$ 边权. 题解:状压$DP$,令$f_{i,j}$表示当前深度为$i$,状态为$j$的最小花费 $$f_{i,s}=f_{i-1,t}+g_{s,t}\times(i−1)$$ 再开一个数组$c_{s,i}表示状态$s$挖到点$i$的最小花费(不考虑深度)…
题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 \(n\) 个深埋在地下的宝藏屋, 也给出了这 \(n\) 个宝藏屋之间可供开发的 \(m\) 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定. 在此基础上,小明还需要考虑如…
题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 nnn 个深埋在地下的宝藏屋, 也给出了这 nnn 个宝藏屋之间可供开发的m mm 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定. 在此基础上,小明还需要考虑如何开凿宝藏屋…
为啥我去年这么菜啊..... 我现在想了$20min$后打了$10min$就过了$qwq$. 我们用$f[i][j]$表示当前深度为$i$,访问了状态$j$中的所有点的最小代价. 显然$f[i][j]=min(f[i-1][k]+i\times get(k,j^k)) $其中$k$为$j$的子集,$get(x,y)$表示点集$y$中所有点分别向点集$x$连边的最小代价. 显然这个dp的时间复杂度是$O(3^n\times n^2)$的. 考虑到n非常小,然后就过了. 然而我当年不会枚举子集,甚至…