摘要: #### 题意: 有一个背包,总体积为V,给出一个物品 $i$ 体积为 $v[i]$ 价值为 $v[i]*w[i]$ ,求最大价值 #### 解法: 背包dp ```cpp #include #include using namespace std; int main() { int n,m,w[3 阅读全文
posted @ 2019-10-10 21:37 nenT 阅读(106) 评论(0) 推荐(0)
摘要: # dd_engi 的背包九讲 # 背包问题 ### P1-01背包 每种物品仅有一件,每件有 $v[i]$ 的体积,$w[i]$ 的价值,背包容量一共为V,每件物品可以选择放或者不放 求最大可获得的价值 `f[i][v]=max(f[i-1][v],f[i-1][v-c[i]]+w[i]);` $ 阅读全文
posted @ 2019-10-10 21:00 nenT 阅读(147) 评论(0) 推荐(0)
摘要: #### 题意: 有N个罪犯,将关至2个监狱中。其中,罪犯如果关在同一个监狱,则两两之间存在怨气值c[i]。求第一个怨气值,要求此怨气值最小。 #### 解法: 贪心,先对怨气值从大到小排序,然后将两名罪犯关至不同的监狱。直至存在一对罪犯无法关至不同的监狱(若关至同一监狱,则会和已经关押的罪犯产生怨 阅读全文
posted @ 2019-10-10 10:52 nenT 阅读(110) 评论(0) 推荐(0)
摘要: #### Kruskal 按照每条边的权值大小排序,每次加入一条最小的边(保证不会形成环,用并查集维护)直到加入了n-1条边 Kruskal适用于稀疏图 $O(m\ log \ m)$ ```cpp //kruskal bool cmp(Edge x,Edge y){return x.disdis[ 阅读全文
posted @ 2019-10-10 09:02 nenT 阅读(115) 评论(0) 推荐(0)
摘要: 一 二 三 四 五 六 ==高亮== ~~删除~~ $O(m)$ $$ O(mlogm) O(m^2) $$ 阅读全文
posted @ 2019-10-10 08:59 nenT 阅读(166) 评论(0) 推荐(0)
摘要: 题意: ​ 给定N个字符串(第i个字符串长度为Mi,字符串内包含数字、大小写字母,),请求出N个字符串中共有多少个不同的字符串。 解法: ​ 哈希 单哈希会无法通过 ~~据说可以用一个很大的质数通过~~ cpp include include include using namespace std; 阅读全文
posted @ 2019-10-09 21:34 nenT 阅读(103) 评论(0) 推荐(0)
摘要: 题意:在有向图 G 中,每条边的长度均为 1,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 路径上的所有点的出边所指向的点都直接或间接与终点连通。 在满足条件1的情况下使路径最短。 注意:图 G 中可能存在重边和自环,题目保证终点没有出边。 请你输出符合条件的路径的长度 阅读全文
posted @ 2019-10-09 19:31 nenT 阅读(97) 评论(0) 推荐(0)
摘要: 题意:在一张无向图上有n个点 m条边,第i个点在t[i]的时间生成。有q次询问,求u,v两点在d时候是否连通,如连通,求其最短路。 解法:Floyd,考察到了Floyd的本质dp。题目给数据的时候因为已经排序,正好对应了它的的第一维,剩下就是套Floyd //INF应该定义成 0x7fff 或 1e 阅读全文
posted @ 2019-10-07 21:48 nenT 阅读(133) 评论(0) 推荐(0)
摘要: 题意:给出一个迷宫,判断能不能走到距离无限远的地方 分析:本来想复制成3*3的图然后走的,但是空间有点困难。后面改成了2*2的图,不过我开了3*3的图的空间还是过了。 解法:dfs #include<iostream> #include<cstring> #define re register us 阅读全文
posted @ 2019-10-04 15:11 nenT 阅读(109) 评论(0) 推荐(0)
摘要: 题意:给出一张无向图,有q次询问,每次给出u v两个点,求u到v时经过的权值最小的边 解法:kruskal最小生成树+LCA #include<iostream> #include<algorithm> #define re register using namespace std; const i 阅读全文
posted @ 2019-10-04 10:39 nenT 阅读(122) 评论(0) 推荐(0)