摘要:
poj2348给定两个数a,b,大的数能减少小的数的倍数,不能是的数小于0,谁先使得数等于0,谁就赢了有三种情况① a % b ==0 这个状态是必胜的② a - b b 这个状态一定是必胜的,这个状态可以看做是a - xb 2 #include 3 #include 4 #include ... 阅读全文
摘要:
BC round#42 1004 阅读全文
摘要:
hnu1066给我们一张图,问我们摧毁边使得s和t不连通有多少种方案, 方案与方案之间不能存在相同的摧毁目标。这是一个神奇的题目。这题可以转为求s与t的最短路,为什么呢?因为方案与方案之间不能存在相同的催婚目标。那么最短路上的边肯定要被摧毁,才能使得s和t不连通。那么只要一个方案摧毁最短路上的一条边... 阅读全文
摘要:
单调队列,就是队列里的元素是单调递增或者单调递减的。那就有人问了,这和优先队列有什么区别。单调队列里的单调递增(递减)不止是值的单调递增(递减),下标也是单调递增的。我们来看单调队列怎么维护的,就知道单调队列是什么东西了。这里以单调递增队列为例。将数组a[1->n]里面的元素依次入队列。 如果要入... 阅读全文
摘要:
poj1986给我们一棵树,求任意两个点之间的距离dist[a->b] = dist[a] +dist[b] - 2*lca(a,b)要建双向边,数据可能不是严格意义上的树 1 #include 2 #include 3 #include 4 #include 5 #include... 阅读全文
摘要:
在有根树中,两个结点u和v的公共祖先中距离最近的那个称为最近公共祖先(lowest common ancestor)、如图lca(4,7) = 2, lca(6,8)=1, lca(5,8)=5记点v到根的深度为depth[v], 那么如果w是点u和v的公共祖先的话, 让u向上走depth[u] -... 阅读全文
摘要:
poj1364设s[i] 表示a1 + a2 + ... + a(i-1)的和给我们n个点,m条约束如果是a b gt c 那么表示 s[a+b+1] - s[a] > c ---> s[a] -s[a+b+1] s[a] s[a+b+1] - s[a] s[a+b+1] 2 #inc... 阅读全文
摘要:
对于上面那张图,是可以用dij算法求解出正确答案,但那只是巧合而已。我们再看看下面这张图。dist[4] 是不会被正确计算的。 因为dij算法认为从队列出来的点,(假设为u)肯定是已经求出最短路的点,标记点u。并用点u更新其它点。所以如果存在负权使得这个点的权值更小,那么会更新dist[u], 但是... 阅读全文
摘要:
差分约束是把形如 ai - bi >= ci (ai - bi = bi + ci ,意思是所有的不等式都要满足这样子的形态, 那么我们建一条从bi->ai权重为ci的边,然后对整个图求最长路, 那么最终的结果就有ai >= bi +ci这是根据最短路的性质。同理,对于不等式 ai ai权重为ci的... 阅读全文
摘要:
hdu3873有约束条件的最短路, 城市i收其它城市保护,必须走过这些城市,才能走城市i。 题解差分约束系统可以转化为最短路,所以也算是最短路专辑的一部分 阅读全文