Codeforces Round #623----B. Homecoming
摘要:https://codeforces.ml/contest/1315/problem/B 思路:本题的坑点我认为在于BUS和TRAM重合的点,如果倒序从len遍历的话会出现这种情况:1 1 1 AB。 因为从A处上了BUS后就直接可以到达终点n了。所以遍历的时候要从len-1处开始遍历。 #incl
阅读全文
Dijkstra、Bellman-Ford及Spfa对比
摘要:转载于:https://blog.csdn.net/mmy1996/article/details/52225893 Dijkstra 一、dijkstra算法本质上算是贪心的思想,每次在剩余节点中找到离起点最近的节点放到队列中,并用来更新剩下的节点的距离,再将它标记上表示已经找到到它的最短路径,以
阅读全文
HDU-3416
摘要:https://vjudge.net/problem/HDU-3416 题意:给出一个图,有多少个边不重复的最短路。 思路:先用dijkstar从s跑最短路,然后再从t倒着跑一边(注意该题是有向图,我一开始当成无向图了......),从而通过d1[u[i]]+d2[v[i]]+c[i]=d1[t]确
阅读全文
uva-658
摘要:https://vjudge.net/problem/UVA-658 思路:把每个bug的状态用2进制表示,把每个状态看成点,每个转化的过程看成边,由于补丁比较少,可以不建图直接暴力搜边就vans,dijkstra就行; #include<iostream> #include<iomanip> #i
阅读全文
Bellman-Ford
摘要:转自:https://www.cnblogs.com/TreeDream/p/6123476.html 第一个Bellman-Ford算法是紫书上的; 解析: 1、起点入队列 2、初始化点到起点的距离是INF; 3、和Dijkstra相比,每个结点可以多次加入(如果有负环,那么这个结点是可以多次松弛
阅读全文
uva-12219
摘要:https://vjudge.net/problem/UVA-12219 思路:把每一个子树用一个数代替放到map里,这样查一棵子树是否出现就是快多了。递归打印答案即可。 #include<bits/stdc++.h> #define _for(i,a,b) for(int i=a;i<=b;i++
阅读全文
UVALive-4670
摘要:不知道为啥这个题总是WA 找了好长时间也没找出来 求大佬帮忙看看 #include<iostream> #include<iomanip> #include<cstring> #include<sstream> #include<algorithm> #include<cstdio> #includ
阅读全文
uva-11468
摘要:AC自动机+dp(记忆化搜素) https://vjudge.net/problem/UVA-11468 思路:构造出AC自动机后,把所有单词节点标记为禁止,就转化为从0节点走L步不进入任何禁止节点的概率。令dp[i][j]等于在i节点还要走j步不碰到禁忌节点的概率。 #include<iostre
阅读全文
hdu-2222
摘要:AC自动机(模板题) #include<bits/stdc++.h> #define _for(i,a,b) for(int i=a;i<=b;i++) using namespace std; typedef long long ll; const int mod =1e6+7; double e
阅读全文
线段树板子(刘汝佳)
摘要:https://www.cnblogs.com/tsw123/p/4374728.html 点修改 Update(x,v): 把A[x]修改为v Query(L,R): 计算区间[L,R] 最小值. // Dynamic RMQ // Rujia Liu // 输入格式: // n m 数组范围是a
阅读全文
hdu-1556
摘要:BIT 思路比较清奇:在a点加一在b+1点加-1,这样在算结果sum(i)的时候就从区间查询变成了点查询了。开阔了一点点思维。 #include<bits/stdc++.h> #define _for(i,a,b) for(int i=a;i<=b;i++) using namespace std;
阅读全文
uva-11077
摘要:思路:dp[i][j]代表1-i的排列(未排好)至少经过j次操作才能1-i的有序序列,对于dp[i][j]它的答案由两部分组成,要么第i个数自己保持不动(即dp[i-1][j])要么和前面某一个数交换(即dp[i-1][j-1]),初态是dp[1][0]=1; #include<bits/stdc+
阅读全文
uva-11732
摘要:简单Trie树的应用 val数组是用来表示经过该点的字符串的个数,same表示在该点结束的字符串的个数。主要分三个部分,一个是比当前字符串短的,和当前字符串相同的(注意该种情况下比较的次数位2*(n+1),n是字符串长度,因为最后还要比较‘\0’),比当前字符串长的。 #include<bits/s
阅读全文
uva-11361
摘要:https://vjudge.net/problem/UVA-11361 菜鸡不会啊,借鉴网上的代码才知道还可以这么定义状态。 题意:计算区间[A,B]之间有多少数满足是k的倍数,并且各位数之和也是k的倍数。 设dp[len][[i][j]代表长度为len各位和模k等于j,自身模k等于i时的方案,很
阅读全文
HDU - 2089
摘要:咸鱼了一个月,不能在闲下去了。 第一次做数位dp,好难!虽然是入门题。 https://vjudge.net/problem/HDU-2089 思路:从高到地枚举每一位可能出现的数字,在设置一个变量state表示当前位前面是否是6,那么dp[len][state]代表长度为len状态为staste时
阅读全文