http://www.lydsy.com/JudgeOnline/problem.php?id=3143 计算每条边经过的概率e[] 然后经过概率多的分配的编号大,经过概率少的分配的编号小 如何计算边经过的概率? 假设我们知道点的经过的概率p[] 若边i连接u和v,那么e[i]=p[u]/d[u]+p[v]/d[v] d表示点的度数 如何计算点的经过概率? dp[i]=Σ dp[j]/d[j] 高斯消元求解 注意到达终点就不能再走了,所以高斯消元的系数中不涉及和终点有关的信息 注意起点1的方程是…
3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3576  Solved: 1608[Submit][Status][Discuss] Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z 到达N号顶点时游走结束,总分为所有获得的分…
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色之后,任意满足要求的四联通块一定可以是 黑色-->紫左-->紫右-->白色 只要破坏三个箭头中的一个即可 所以可以构建最小割模型 1.源点向黑色格连流量为格子代价的边 2.黑色格向相邻的紫色格连inf边 3.与黑色格相邻的紫色格向与白色格相邻的紫色格连 流量 为 两个紫色格较小代价 的边 4…
Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3597  Solved: 1618[Submit][Status][Discuss] Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这M条边进行编号…
Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小. Input 第一行是正整数N和M,分别表示该图的顶点数 和边数,接下来M行每行是整数u,v(1≤u,v≤N),表示顶点u与顶点v之间存在一条边. 输…
题目 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小. 输入格式 第一行是正整数N和M,分别表示该图的顶点数 和边数,接下来M行每行是整数u,v(1≤u,v≤N),表示顶点u与顶点v之间存在一条边. 输入保证30%的数据满…
http://www.lydsy.com/JudgeOnline/problem.php?id=3144 如果D=2 ,两个点,高度为4,建图如下 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define N 64005 #define M 323205 const i…
http://www.lydsy.com/JudgeOnline/problem.php?id=3140 如果只有两维,那就是二分图最小点覆盖 现在是三维,但是a*b*c<=5000,说明最小的那一维不会超过17 将最小的那一维作为正方形的高 然后枚举要消哪些层,剩下的层看成一层 做最小点覆盖 注意卡常 #include<cstdio> #include<cstring> #include<iostream> using namespace std; #defin…
http://www.lydsy.com/JudgeOnline/problem.php?id=3139 队伍的顺序不会影响结果 将队伍的得分情况作为状态,记忆化搜索 就是先搜索第一只队伍的得分情况,即为他分配分数 当第一只队伍的分数分配完时,它与其他队伍的比拼会使其他队伍也分配到了一定的分数 将其他队伍分配到的分数 这个状态 哈希 然后第二支队……,这就是子问题 啊啊啊,我也不知道我在说啥了 myl考场AC tql!!! #include<algorithm> #include<cst…
http://www.lydsy.com/JudgeOnline/problem.php?id=3142 如果已知数列的差分数列a[1]~a[k-1] 那么这种差分方式对答案的贡献为 N-Σ a[i],i∈[1,k-1] 差分数列一共有多少种? M^(k-1) 种 所以ans=Σ  (N-Σa[i]) = M^(k-1) * N - Σ Σ a[i] = M^(k-1) *N-(k-1)*M^(k-1) /M * (M+1)*M/2 后面是因为一共 M个数 出现(k-1)*M^(k-1) 次,每…
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j 位置的数是区间[i,j]的最大值和次大值 提供p2的攻击力:i,j位置的数有一个是区间[i,j]的最大值,另一个不是次大值 记录L[i].R[i] 分别表示i左右第一个大于k[i]的位置 p1的贡献: 1.点对(L[i],R[i])    2.点对(i,i+1) p2的贡献: 1.点对(L[i],…
http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #include<cstdio> #include<iostream> #define N 200001 using namespace std; #define max(x,y) ((x)>(y) ? (x) : (y)) #define min(x,y) ((x)<(y)…
http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了... #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 ],b[N<<]; ]; long long ans; void read(int &x) { x=; char c=getchar()…
http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 struct node { int siz; ],R[],con[]; ]; bool rev; int cover; }tr[…
https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式为AA的子串个数 ans= ∑ suf[i]*pre[i+1] 这两个数组的求法,类似bzoj 2119.3238 枚举|A|的长度len,将序列每len个分一块,取每块内第一个元素作为关键点 每个合法的AA恰好占据两个关键点 枚举每一个关键点i,取j=i+len 计算[i,n]和[j,n]的lcp…
https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 300001 char ss[N]; int s[N]; ,last; int fail[N],len[N],cnt[N…
http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len [i] 表示以i结尾的最长不下降子序列的长度 pre_sum[i] 表示对应长度下的方案数 suf_len[i] 表示以i开头的最长不下降子序列长度 suf_sum[i] 表示对应长度下的方案数 若已有了这4个数组 设最长上升子序列长度=mx 那么 如果pre_len[i]+suf_len[i] -…
http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最近是怎么了啊啊啊O(≧口≦)O #include<cstdio> #include<iostream> using namespace std; int n,m; ]; void read(int &x) { x=; ; char c=getchar(); ; c=getcha…
http://www.lydsy.com/JudgeOnline/problem.php?id=3670 法一:KMP+st表 抽离nxt数组,构成一棵树 若nxt[i]=j,则i作为j的子节点 那么num[i] 就是i到根节点的路径上,所有<=i/2 的节点的个数 这棵树的点随深度的递增而增大 所以用st表存这棵树 st 表 开[logn][n],常数优化求st表的过程 #include<cmath> #include<cstdio> #include<cstring…
http://www.lydsy.com/JudgeOnline/problem.php?id=1185 题解去看它 http://www.cnblogs.com/TheRoadToTheGold/p/8253800.html 精度真是卡的我醉生梦死,w(゚Д゚)w    O(≧口≦)O bzoj改成long double 就过了 洛谷仍处于 输出x.99999,答案输出x+1.00000 输出-0.00000,答案输出0.00000 救命啊~~~~(>_<)~~~~ 来自大佬的建议:输出do…
http://www.lydsy.com/JudgeOnline/problem.php?id=1879 f[i][j] 表示匹配了i个字符,匹配字符串的状态为j的方案数 枚举下一个字符是什么 计算加上这个自字符之后新匹配到的状态s f[i+1][s]+=f[i][j] 转移的时候判断如果f[i][j]==0,就不用枚举字符了 没有这个复杂度在6e8,TLE 其实可以预处理 g[i][j]表示已经匹配了长度为i,再加字符j 可以匹配到的状态 #include<cstdio> #include&…
http://www.lydsy.com/JudgeOnline/problem.php?id=3994 设d(x)为x的约数个数,给定N.M,求 用到的一个结论: 证明: 枚举n的约数i,枚举m的约数j 那么i*j一定是n*m的约数 d(nm)相当于不同的i*j 的个数 若i, j 不互质 设gcd(i,j)= g , 则 i= p*g ,j=q*g 那么i*j 可以 组成两个互质数p*g*g 和 q 的乘积 p*g*g 和 q 也都输n和m的约数 即p*g*g 和 q 也都是合法的i,j 所…
http://www.lydsy.com/JudgeOnline/problem.php?id=1569 dp[i][j][a][b] 表示i个职员,发广告状态为j,已有金钱a,声誉b的最少天数 j=0 表示没有发广告,否则j表示距离发广告j天 枚举有t个人增加金钱,那就有i-t个人增加声誉 当j=3时,人数+1 当j=0或j=3时,考虑发不发广告 注意: 1.当天赚的钱可以用来发广告 2.新招募的人当天不能为公司带来收益 #include<cmath> #include<cstdio&…
http://www.lydsy.com/JudgeOnline/problem.php?id=4300 f[i] 表示第i位&为1的最长长度 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; void read(int &x) { x=; char c=getchar(); while(!isdigit(c)) c=getchar(); +c-';…
http://www.lydsy.com/JudgeOnline/problem.php?id=1260 区间DP模型 dp[l][r] 表示涂完区间[l,r]所需的最少次数 从小到大们枚举区间[l,r] 如果col[l]==col[r] dp[l][r]=min(dp[l+1][r],dp[l][r-1],dp[l+1][r-1]+1) 否则 dp[l][r]=min(dp[l][k]+dp[k+1][r]) 我还是辣鸡啊~~~~(>_<)~~~~,这种题都不能秒 #include<c…
http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #include<iostream> #include<algorithm> #define lowbit(x) x&-x using namespace std; #define N 500001 struct TREE { int xi,yi; }Tree[N]; struct…
http://www.lydsy.com/JudgeOnline/problem.php?id=1036 树链剖分板子题 #include<cstdio> #include<iostream> #include<algorithm> #define N 30001 using namespace std; ],nxt[N<<],tot; int n,val[N]; int siz[N],fa[N],dep[N]; int id[N],dy[N],bl[N];…
http://www.lydsy.com/JudgeOnline/problem.php?id=1033 经半个下午+一个晚上+半个晚上 的 昏天黑地调代码 最终成果: codevs.洛谷.tyvj上AC COGS数据本机评测AC,提交50 bzoj WA 1.新产生蚂蚁时,如果洞口有蚂蚁,则不产生 2.移动的时候,第一次不能动,就不能动,接着下一次还不能动,那就可以走回之前来的那个位置 3.攻击,炮选定目标蚂蚁之后,要判断被殃及的蚂蚁所在圆是否与激光(线段)有交点 判断方式: 先判断是否与激光…
http://www.lydsy.com/JudgeOnline/problem.php?id=4515 把lca带进式子,得到新的式子 然后就是 维护树上一次函数取min 一个调了一下午的错误: 当一条线段完全在另一条线段之下时,用下面的完全覆盖上面的 判断条件为  两线段在范围内没有交点 然后若 新的线段的某一个端点<原来线段的对应的一个端点,就覆盖 错误的写法: 判断的时候 把两条线段在端点处相等也加了进去 即判断条件为  两线段在范围内没有交点 或 交点 在线段端点出 那么 若 新的线段…
http://www.lydsy.com/JudgeOnline/problem.php?id=4817 lct+线段树+dfs序 操作1:access 操作2:u到根的-v到根的-lca到根的*2+1 操作3:查询线段树区间最大值 1A,嘎嘎嘎 #include<cmath> #include<cstdio> #include<iostream> using namespace std; #define max(x,y) ((x)>(y) ? (x) : (y)…