「LuoguP1144」 最短路计数(dijkstra】的更多相关文章

题目描述 给出一个NN个顶点MM条边的无向无权图,顶点编号为1-N1−N.问从顶点11开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 第一行包含22个正整数N,MN,M,为图的顶点数与边数. 接下来MM行,每行22个正整数x,yx,y,表示有一条顶点xx连向顶点yy的边,请注意可能有自环与重边. 输出格式: 共NN行,每行一个非负整数,第ii行输出从顶点11到顶点ii有多少条不同的最短路,由于答案有可能会很大,你只需要输出ans \bmod 100003ansmod100003后的…
「luogu4366」最短路 传送门 直接连边显然不行,考虑优化. 根据异或的结合律和交换律等优秀性质,我们每次只让当前点向只有一位之别的另一个点连边,然后就直接跑最短路. 注意点数会很多,所以用配对堆优化 \(\text{Dijkstra}\) 即可. 参考代码: #include <cstring> #include <cstdio> #include <ext/pb_ds/priority_queue.hpp> #define rg register #defin…
「NOI2013」树的计数 这什么神题 考虑对bfs重新编号为1,2,3...n,然后重新搞一下dfs序 设dfs序为\(dfn_i\),dfs序第\(i\)位对应的节点为\(pos_i\) 一个暴力是枚举bfs的分层,然后检查合法性. 但是我们注意到一个事情,节点\(i\)与节点\(i-1\)是否在同一层,是不是具有独立性呢? 设\(s_i\)表示\(i\)与\(i+1\)是否在同一层,当\(s_i=1\)时,表示不在同一层. 那么 \(s_1=1\),显然 若区间\([l,r]\)是同层的,…
目录 题目链接 题解 代码 题目链接 loj#2665. 「NOI2013」树的计数 题解 求树高的期望 对bfs序分层 考虑同时符合dfs和bfs序的树满足什么条件 第一个点要强制分层 对于bfs序连续的a,b两点,若a的bfs序小于b的bfs序,且a的dfs序大于b的,那么它们之间肯定要分层,对答案贡献为1 对于dfs序连续的a,b两点,若a的dfs序小于b的,且a的bfs序也小于b,那么它们的深度差不超过1,也就是说它们在的bfs序上之间最多分一层 先把前两个条件都判一下,然后把第2个条件…
题目: 给出一个N个顶点M条边的无向无权图,顶点编号为1−N.问从顶点1开始,到其他每个点的最短路有几条. ——传送门 受到题解的启发,用 Dijkstra A掉(手工代码) 思路: 1.无向无权图,建图的时候别忘记建来回的有向边 2.无权,那么边长建成1就好了 3.最短路采用 Dijkstra(堆优化)来做,计数操作改装进去,tot[1]=1;用 Dijkstra 更新边长的时候如果大于号(具体见代码)就覆盖,相等的话就加上. AC代码: #include<cstdio> #include&…
大家好我叫蒟蒻,这是我的第一篇信竞题解blog [题目描述] 策策同学特别喜欢逛公园. 公园可以看成一张 \(N\) 个点 \(M\) 条边构成的有向图,且没有自环和重边.其中 \(1\) 号点是公园的入口, \(N\) 号点是公园的出口,每条边有一个非负权值,代表策策经过这条边所要花的时间. 策策每天都会去逛公园,他总是从 \(1\) 号点进去,从 \(N\) 号点出来. 策策喜欢新鲜的事物,他不希望有两天逛公园的路线完全一样,同时策策还是一个特别热爱学习的好孩子,他不希望每天在逛公园这件事上…
考场只打了 \(52\) 分暴力...\(ljc\) 跟我说了一下大致思路,我回去敲了敲. \(f[i]\) 表示状态为 \(i\) 时的方案数.我们用二进制 \(0/1\) 表示不选/选点 \(i\). 我们设 \(j\in i\) 且拓扑序最小. \[f[i]=\sum f[i\text{^}2^j]\times 2^{i\&w[j]}\] 为什么这个是对的呢? 因为 \(j\) 连出的那些没有连向状态 \(i\) 的边一定会被删去,然后那些连向边只用 \(2^i\) 搞一搞.时间复杂度 \…
题解 我们统计深度对于bfs序统计,树结构出现分歧的地方必然是BFS序的最后一段,这个最后一段同时还得是dfs序上连续的一段 如果不是bfs序的最后一段,那么必然下一层会有节点,如果树结构分歧了,那么dfs序是不一样的 如果不是dfs序上连续的一段,如果分歧那么bfs序会改变... 好的,知道了这两点,这题就非常可做了 我们记录一下u点在dfs序中的位置和bfs序中的位置,从前往后扫bfs序 假如u在BFS序中前一个点是v,如果v的dfs序在u的后面,说明换了一层,深度+1 如果v的dfs序正好…
LOJ 思路 这题我看着题解还搞了几个小时?我也不知道自己在干啥-- 首先你要通过出色的分析能力得到一个结论:一个排列合法当且仅当它的最长下降子序列长度不超过2. 证明?懒得写了. 然后我们不管字典序的限制,先写出一个DP:\(dp_{i,j}\)表示考虑了前\(i\)个,之前最大值是\(j\),的方案数.转移就考虑下一个位置是填一个比最大值更大的数,或是填还没有填的数里面最小的数. 其实就是\(dp_{i,j}\rightarrow dp_{i+1,k},k\ge j\),但\(i=j\)的时…
LOJ#3043. 「ZJOI2019」线段树 计数转期望的一道好题-- 每个点设两个变量\(p,q\)表示这个点有\(p\)的概率有标记,有\(q\)的概率到祖先的路径上有个标记 被覆盖的点$0.5p + 0.5 \rightarrow p ,0.5q + 0.5\rightarrow q $ 被覆盖的点子树中的点\(p\rightarrow p,0.5q + 0.5 \rightarrow q\) 经过的点\(0.5p \rightarrow p,0.5q \rightarrow q\) 未…