摘要: 没有x地图的话是一个比较明显的2-SAT。对于$(i,h_i,j,h_j)$,若$h_i$不能用,则无视掉;若$h_j$不能用,则连边$(i,i')$,表示选$i$就要选$i'$,那么按照2-SAT的定义,$i$肯定不会出现在答案中;否则连边$(i,j),(j',i')$(若$j$不选$h_j$,则 阅读全文
posted @ 2019-08-15 15:59 wangyuchen 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 因为开始每个点颜色不同,染上去的颜色都是新的,由此得出:颜色种数=颜色段数。 然后考虑操作1。它的流程是:从结点x出发,每次跳到同色的链顶端,沿途染色,然后修改链顶的父亲的指向,继续执行,最后得到一条1到x的同色链。 想到了什么?access?没错,用LCT来维护同色点集的话,每次改颜色就是裸的ac 阅读全文
posted @ 2019-08-14 16:59 wangyuchen 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:已知一些数对$(x,y)(0\le x<n,0\le y<k,x+y>0)$,可选可不选,每种选法对答案的贡献是所有$\frac{x}{(k-1)x+y}$之积(一个都没选则为1),求总贡献。 首先提取公因式就可以看出答案是所有$(x,y)$的$(1+\frac{x}{(k-1)x+y})$之 阅读全文
posted @ 2019-08-14 15:25 wangyuchen 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 不会写双向BFS的,死也不会写的 考虑IDA*。一个很naive的h函数是:每个按钮到目标的距离的最大值。于是你花20min就可以拿到40分: #include<cstdio> short s[15],a[15][5],maxd=0,opt[20]; inline bool check(){ for 阅读全文
posted @ 2019-08-14 15:23 wangyuchen 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 想练模拟又不想写猪国杀的话,这题是个不错的练手题比猪国杀好写不止一点点 #include<cstdio> const int dx[8]={1,1,0,-1,-1,-1,0,1}; const int dy[8]={0,1,1,1,0,-1,-1,-1}; struct plane{ int hp, 阅读全文
posted @ 2019-08-14 15:20 wangyuchen 阅读(120) 评论(0) 推荐(0) 编辑
摘要: (持续更新) Hello 2020 A: 为什么不是天干地支 #include<cstdio> #define For(i,A,B) for(i=A;i<=(B);++i) char s[25][15],t[25][15]; int main(){ int n,m,q,x,i; scanf("%d% 阅读全文
posted @ 2019-08-12 15:40 wangyuchen 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 神仙毒瘤卡常题 首先$O(n\sqrt{n}logn)$的想法不难想到:跑莫队,每次加入一个$a_i$的贡献是$\text{比它小的数个数+1}\times a_i+\text{比它大的数之和}$,删除同理,在值域上跑树状数组即可。 然后你被卡成了暴力 让我们想一下:一个莫队题,插入/删除都是$O( 阅读全文
posted @ 2019-08-12 15:17 wangyuchen 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 一句话题意:给出数列$a_1,a_2,\cdots,a_n$,和$q$个询问$[l,r]$,询问$\frac{\sum\limits^r_{i=l}\sum\limits^r_{j=i}\prod\limits^j_{k=i}a_k}{\frac{(r-l+2)(r-l+1)}{2}}mod1000 阅读全文
posted @ 2019-08-12 14:52 wangyuchen 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 看见神刀手我好像想到了什么。。。 字符串匹配问题。很明显要用字符串哈希,而且发现题目中的$k$很小,考虑把长度小于等于$k$的字串哈希值都暴力存进哈希表哈希套哈希,那么匹配的时候就可以做到接近$O(1)$。 连接和删除时,新增或减少的子串一定跨越断点,也就是一定由前串的后缀和后串的前缀拼成,枚举即可 阅读全文
posted @ 2019-08-08 16:40 wangyuchen 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 由于AC自动机是1975年被发明的,所以这个打字机也可以算是上古科技 首先考察AC自动机的性质我们可以知道,fail指针被发明出来就是为了沿着它跳能跳到所有当前结点代表的字符串的后缀在Trie上对应的结点,所以我们只要统计出y里面有多少个结点跳fail可以跳到x的结尾就可以了。 然而这个东西肯定不能 阅读全文
posted @ 2019-08-07 15:50 wangyuchen 阅读(151) 评论(0) 推荐(0) 编辑