摘要:
地址:http://codeforces.com/contest/1453/problem/B 题意: 给定你一个长度为n的序列,你有两种操作,给这个序列的后缀加一或者减一,序列的后缀定义和字符串的后缀定义相同,还有你开始在所有的操作开始的时候,选择把一个数变成任意的数,这个操作不计入总的操作次数, 阅读全文
摘要:
地址:http://codeforces.com/contest/1457/problem/B 题意: n个房子,颜色为ci 每次操作可以对长度为k的一段房子里的任意一个房子进行任意染色(或不染),使得所有房子颜色相同的最少操作数。 解析: ci<=100,考虑枚举每一个ci 如果ci != i,说 阅读全文
摘要:
地址:http://codeforces.com/contest/1457/problem/A 题意: 有一个n*m的监狱,每一个格子有一个犯人,坐标为( r , c )的格子有一条逃生通道,犯人每一秒可以向相邻的一个格子移动,问所有犯人到达逃生通道最久需要多少秒。 解析: 离r,c的最远点,一定在 阅读全文
摘要:
关于最小生成树,网上有很多的资料,就不写这么多了~非常推荐 啊哈算法的讲解,这本书对最短路,最小生成树,都讲得非常棒~ 一:定义: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 简单来讲,就是搜索到的边子集所构成的树中,不但包括 阅读全文
摘要:
A:https://codeforces.com/contest/1454/problem/A 题意: 输出1~n的一个排列,满足每个i!=pi 解析: 偶数直接倒叙 奇数不能倒叙,因为中间点不符合。所以随便调下位置即可。比如先输出n,然后正序输出1~n-1 #include<iostream> # 阅读全文
摘要:
地址:https://www.acwing.com/problem/content/854/ 解析: 引入cnt[i]数组,表示到达当前这个点最短路的边数。 对于一个正常的正权图而言,每个点最多被更新n-1次,只会有n-1条边。 如果到达某个点,最短路边数>=n,那么,说明有重复点,至少n+1个点, 阅读全文
摘要:
一:Bellman_Ford 1:Dijkstra并不能解决带有负权边的图。 而Bellman_Ford算法可以。 2:核心代码: for(int i=1;i<=n-1;i++) { for(int j=1;j<=m;j++) { dis[v[j]]=min(dis[v[j]],backup[u[j 阅读全文
摘要:
地址:https://codeforces.com/contest/1452/problem/B 题意: 有n个盒子,每个盒子里面有a[i]个球,对于任意一个盒子,可以将里面的球全部发出来,分配给其余 n-1 个盒子使得 其余 n-1 个盒子球的数量要相等。现在求:向n个盒子中最少添加几个球才能实现 阅读全文
摘要:
地址:https://www.luogu.com.cn/problem/P3385 解析: 直接Bellman_ford,然后再遍历一遍,如果还能松弛,那么就说明有负权回路。 但是题里问的是顶点1能到达的负环,所以如果有负权回路但是1不能到,依然是NO 后台是有这么个样例: 3 3 2 3 -1 3 阅读全文
摘要:
地址:https://www.acwing.com/problem/content/855/ 解析: 图里含有负权边,所以考虑Bellman_ford算法。 Bellman_ford就是从局部扩展到全局,得的是局部最优解,与Dijkstra有着很大不同。 本题要求最多经过k条边到n点的最短距离,那么 阅读全文