http://www.lydsy.com/JudgeOnline/problem.php?id=1499 预处理从每个位置向每个方向最多能走几步 dp[k][i][j] 第k个时间段后,钢琴到位置(i,j)能走的最长路径 枚举这一次走几步转移 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,m; ][];…
1499: [NOI2005]瑰丽华尔兹 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 1802  Solved: 1097[Submit][Status][Discuss] Description 你跳过华尔兹吗?当音乐响起,当你随着旋律滑动舞步,是不是有一种漫步仙境的惬意?众所周知,跳华尔兹时,最重要的是有好的音乐.但是很少有几个人知道,世界上最伟大的钢琴家一生都漂泊在大海上,他的名字叫丹尼•布德曼•T.D.•柠檬•1900,朋友们都叫他1900…
1499: [NOI2005]瑰丽华尔兹 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 1714  Solved: 1042[Submit][Status][Discuss] Description 你跳过华尔兹吗?当音乐响起,当你随着旋律滑动舞步,是不是有一种漫步仙境的惬意?众所周知,跳华尔兹时,最重要的是有好的音乐.但是很少有几个人知道,世界上最伟大的钢琴家一生都漂泊在大海上,他的名字叫丹尼•布德曼•T.D.•柠檬•1900,朋友们都叫他1900…
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色之后,任意满足要求的四联通块一定可以是 黑色-->紫左-->紫右-->白色 只要破坏三个箭头中的一个即可 所以可以构建最小割模型 1.源点向黑色格连流量为格子代价的边 2.黑色格向相邻的紫色格连inf边 3.与黑色格相邻的紫色格向与白色格相邻的紫色格连 流量 为 两个紫色格较小代价 的边 4…
http://www.lydsy.com/JudgeOnline/problem.php?id=1500 1.覆盖标记用INF表示无覆盖标记,要求可能用0覆盖 2.代表空节点的0号节点和首尾的两个虚拟节点,所有有关取max的信息全部设为负无穷,但注意不要无穷相加爆掉int 3.空间,用一个队列回收已删除的节点的编号 4.建树的时候采用的笛卡尔树的构造方式,但并没有比错误的忽略优先级的build快多少 5.手写的max快 inline int& max(int &x, int &y)…
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=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…