摘要:
初赛一: 1001 Drink:$\max\left\{\left\lceil\frac{m}{x}\right\rceil\cdot y\right\}$ 1 #include<cstdio> 2 #include<algorithm> 3 #define rep(i, l, r) for (in 阅读全文
摘要:
A:暴力。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 6 typedef lo 阅读全文
摘要:
A.模拟。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 6 typedef lo 阅读全文
摘要:
1001 Polynomial:若第一个多项式的次数大于第二个,就是1/0,若小于就是0/1,若等于就是第一个多项式最高次项系数/第二个多项式最高次项系数。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define 阅读全文
摘要:
本题可以用的方法很多,除去以下三种我所知道的就还有至少三种。 方法一:类似线段树优化建图,将一个平面等分成四份(若只有一行或一列则等分成两份),然后跑Dijkstra即可。建树是$O(n\log n)$的,单次连边是$O(n\log^2 n)$的。 1 #include<queue> 2 #incl 阅读全文
摘要:
回文树(也就是回文自动机)实际上是奇偶两棵树,每一个节点代表一个本质不同的回文子串(一棵树上的串长度全部是奇数,另一棵全部是偶数),原串中每一个本质不同的回文子串都在树上出现一次且仅一次。 一个节点的fail指针指向它的最长回文后缀(不包括自身,所有空fail均连向1)。归纳容易证明,当在原串末尾新 阅读全文
摘要:
首先枚举回文中心,然后显然中心两边要尽量扩展作为middle,这个用manacher实现。 然后注意到suffix的结尾位置是固定的(串尾),那么预处理出以每个位置结尾的串与原串后缀至多能匹配多长,然后再作个前缀和在枚举回文中心时尝试更新答案即可。这一部分将原串反过来用KMP实现,注意|suffix 阅读全文
摘要:
T1.桥梁(bridges/restriction) Subtask1:暴力,$O(n^2)$。 1 #include<cstdio> 2 #include<algorithm> 3 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 4 #define 阅读全文