会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Claris' Blog
首页
联系
订阅
管理
上一页
1
···
20
21
22
23
24
25
26
27
28
···
38
下一页
2015年12月4日
BZOJ1039 : [ZJOI2008]无序运动Movement
摘要: 首先不考虑翻转,对于两个等长的序列,如果任意两条相邻边的边长比以及夹角都相等,那么就匹配。为了避免实数运算,边长比可以上下平方,然后约分。夹角可以用叉积和点积的最简比值来表示,注意上下符号都要保留。然后将这些信息离散化,转化成数字串匹配问题,建出用Hash表存边的AC自动机后即可解决。对于翻转,可以...
阅读全文
posted @ 2015-12-04 14:03 Claris
阅读(626)
评论(0)
推荐(0)
2015年12月2日
BZOJ4032 : [HEOI2015]最短不公共子串
摘要: 第一问:对B串建立SAM,暴力枚举A的每个子串,在SAM上走,若失配则可行。第二问:设g[i][j]表示B串的第i个字符之后最早出现的字符j的位置,暴力枚举A的每个子串,按照g贪心地走,若失配则可行。第三问:对B串建立SAM,设f[i][j]表示考虑了A的前i个字符,当前在SAM上的状态为j的最小长...
阅读全文
posted @ 2015-12-02 01:44 Claris
阅读(654)
评论(0)
推荐(1)
2015年12月1日
BZOJ4013 : [HNOI2015]实验比较
摘要: 首先用并查集将等号缩点,然后拓扑排序判断有没有环,有环则无解,否则通过增加超级源点$0$,可以得到一棵树。设$f[x][y]$表示$x$子树里有$y$种不同的数字的方案数,由底向上DP。对于当前点$x$,依次遍历它的所有儿子$y$,设以$x$为根的子树里之前已经有了$s[x]$个点,$y$子树里有$...
阅读全文
posted @ 2015-12-01 23:31 Claris
阅读(306)
评论(0)
推荐(0)
2015年11月30日
BZOJ4140 : 共点圆加强版
摘要: 假设当前询问点为$(A,B)$,那么它在一个以$(x,y)$为圆心的圆里需要满足:$(x-A)^2+(y-B)^2\leq x^2+y^2$$2Ax+2By\geq A^2+B^2$等价于询问所有圆心与$(2A,2B)$的点积的最小值是否小于$A^2+B^2$。考虑将修改操作二进制分组,分成$O(\...
阅读全文
posted @ 2015-11-30 20:33 Claris
阅读(603)
评论(3)
推荐(0)
BZOJ4348 : [POI2016]Park wodny
摘要: 首先特判全部都是A或者全部都是B或者$n=1$的情况。然后把矩阵四周都填充上A,枚举一个块,分以下情况讨论:1.在它四周选两个块扩展,此时平方暴力枚举即可。2.在它四周选定一个方向扩展两步。3.选择一个角落,斜着扩展一步,再扩展另一步。时间复杂度$O(n^2)$。#include#define re...
阅读全文
posted @ 2015-11-30 13:36 Claris
阅读(612)
评论(0)
推荐(0)
BZOJ4347 : [POI2016]Nim z utrudnieniem
摘要: 将石子从小到大排序,然后DP。设$f[i][j][k]$表示考虑了前$i$堆的石子,当前扔掉的堆数模$d$为$j$,没有扔掉的石子的异或和为$k$的方案数。因为石子排过序,所以转移的复杂度为$O(md)$。对于空间的问题,注意到$f[i][j][k]$和$f[i][j][k\ xor\ a[i]]$...
阅读全文
posted @ 2015-11-30 13:35 Claris
阅读(1157)
评论(0)
推荐(0)
BZOJ4346 : [POI2016]Nadajniki
摘要: 设$f[x][j]$表示$x$点不放无线,它的儿子里放了$j$个无线,且对$x$的父亲不作要求时的最小代价。$g[x][j]$表示$x$点不放无线,要求$x$的父亲至少放$j$个无线时的最小代价。$h[x][j]$表示$x$点放了$j$个无线时的最小代价。然后从底向上树形DP即可,时间复杂度$O(n...
阅读全文
posted @ 2015-11-30 13:33 Claris
阅读(958)
评论(3)
推荐(0)
BZOJ4345 : [POI2016]Korale
摘要: 只考虑第一问,将珠子按照价值从小到大排序,设排序后第$i$小的为$b[i]$,定义二元组$(x,y)$表示当前珠子的总价值为$x$,用的价值最大的珠子为$y$,用一个小根堆来维护所有状态。一开始往堆中加入$(b[1],1)$状态,然后每次取出堆顶元素$(x,y)$,可以扩展出$(x+b[y+1],y...
阅读全文
posted @ 2015-11-30 13:31 Claris
阅读(724)
评论(2)
推荐(0)
BZOJ4134 : ljw和lzr的hack比赛
摘要: 设$f[x]$为$x$子树里的子游戏的sg值,$h[x]$为$x$所有儿子节点$f[x]$的异或和,则:$f[x]=mex(y到x路径上所有点的h的异或和\ xor\ y到x路径上所有点的f的异或和)$,$y$是$x$子树中的一个白点。考虑一个白点对其祖先的影响,可以发现每往上走一步,一个子树里的贡...
阅读全文
posted @ 2015-11-30 01:33 Claris
阅读(751)
评论(0)
推荐(1)
2015年11月25日
BZOJ4342 : CF348 Pilgrims
摘要: 可以发现,每个特殊点可以贡献的部分在树上是一条链。设三元组(v,x,y)表示路径长度,需要更新的端点,与当前点的lca为y。对于每个节点x,通过两遍树形DP可以求出:d[x]:x到x子树内的某个特殊点的最优解。u[x]:x到x子树外的某个特殊点的最优解。pre[x]:x以及x之前的兄弟的d[]的最优...
阅读全文
posted @ 2015-11-25 17:53 Claris
阅读(513)
评论(1)
推荐(0)
2015年11月24日
BZOJ2310 : ParkII
摘要: 单路径最大和问题,设f[i][j][S]表示到达(i,j),轮廓线状态为S的最优解。S用4进制m+1位数表示,0表示无插头,1表示左括号,2表示右括号,3表示独立插头。在DP之前先进行一次预处理,剔除无效状态,并预处理出与每个括号匹配的另一个括号的位置,有效状态只有8000个左右。然后分类讨论进行转...
阅读全文
posted @ 2015-11-24 16:27 Claris
阅读(355)
评论(0)
推荐(0)
2015年11月23日
BZOJ3322 : [Scoi2013]摩托车交易
摘要: 求出最大生成树,则两点间的最大容量为树上两点间的边权的最小值。设$lim[i]$表示第$i$个订单的城市允许携带的黄金上限,则$lim[i]=\min(lim[i+1],a[i]和a[i+1]点间最大容量)+\max(0,-b[a[i]])$然后依次模拟即可,时间复杂度$O(m\log n)$。#i...
阅读全文
posted @ 2015-11-23 17:45 Claris
阅读(447)
评论(2)
推荐(0)
BZOJ1444 : [Jsoi2009]有趣的游戏
摘要: 建立AC自动机,并求出转移矩阵。再用$\sum E(终止节点)=1$去替换第一个方程,高斯消元即可。时间复杂度$O(n^3l^3)$。注意精度问题,要特判0.00的情况。#include#include#include#define N 110using namespace std;int n,l,...
阅读全文
posted @ 2015-11-23 00:54 Claris
阅读(577)
评论(0)
推荐(0)
2015年11月22日
BZOJ3784 : 树上的路径
摘要: 树的点分治,在分治的时候将所有点到根的距离依次放入一个数组q中。对于一棵子树里的点,合法的路径一定是q[L]..q[R]的某个数加上自己到重心的距离。定义五元组(v,l,m,r,w),表示当前路径长度为v,在[l,r]里选出最大值m,并加上w。用大根堆维护这些五元组,每次取出v最大的元素,并扩展出[...
阅读全文
posted @ 2015-11-22 23:38 Claris
阅读(1123)
评论(0)
推荐(0)
2015年11月21日
BZOJ2388 : 旅行规划
摘要: 考虑分块,每块维护两个标记$ts,td$。那么对于块中一个位置$i$,它的实际值为$i\times td+ts+v_i$。修改的时候,对于整块,直接打标记,对于零散的暴力修改,然后重构凸壳,时间复杂度$O(\sqrt{n})$。查询的时候在凸壳上二分即可,时间复杂度$O(\sqrt{n}\log n...
阅读全文
posted @ 2015-11-21 17:14 Claris
阅读(451)
评论(0)
推荐(0)
BZOJ4337 : BJOI2015 树的同构
摘要: 对于一棵无根树,它的重心个数不超过2。 枚举每个重心,以重心为根求出这棵有根树的最小表示,然后取字典序最大的即可。 对于有根树的最小表示,可以看成括号序列,每次把子树的括号序列按字典序排序后依次串连起来即可。 #include<cstdio> #include<string> #include<al
阅读全文
posted @ 2015-11-21 02:23 Claris
阅读(1263)
评论(0)
推荐(0)
BZOJ4327 : JSOI2012 玄武密码
摘要: 对所有询问串建立AC自动机。然后将母串在AC自动机上跑,每走到一个点x,从x点出发沿着fail指针能到的所有前缀都是匹配成功的,暴力向上走,碰到走过的就break,这样每个点最多只会被标记一次。时间复杂度$O(N+100M)$。#include#includeconst int N=10000003...
阅读全文
posted @ 2015-11-21 01:35 Claris
阅读(691)
评论(0)
推荐(0)
2015年11月20日
BZOJ4303 : 数列
摘要: 将每个点看成二维坐标点$(i,a_i)$,那么每次操作的范围都是一个矩形。于是建立KD-Tree,通过打标记支持操作即可。时间复杂度$O(m\sqrt{n})$。#include#includeconst int N=50010,P=536870912;int n,m,i,root,cmp_d,an...
阅读全文
posted @ 2015-11-20 14:51 Claris
阅读(506)
评论(0)
推荐(0)
2015年11月17日
BZOJ1077 : [SCOI2008]天平
摘要: 首先通过差分约束系统建图,用Floyed算法求出任意两个砝码差值的上下界。然后暴力枚举放在右边的砝码C,D,通过与A,B差值的上下界分类讨论统计方案。时间复杂度$O(N^3)$。#include#define rep(i) for(i=0;ib)a=b;}inline void umax(int&a...
阅读全文
posted @ 2015-11-17 16:38 Claris
阅读(648)
评论(0)
推荐(0)
2015年11月10日
BZOJ1829 : [Usaco2010 Mar]starc星际争霸
摘要: 设出$x,y,z$三个未知量分别表示三种单位的战斗力。那么各种不等式都可以表示成$ax+by+cz\geq 0$的形式。注意到$z>0$,那么两边都除以$z$得到$ax+by+c\geq 0$。然后半平面交求出所有顶点后,对于每次询问将所有顶点带入求值即可。#include#include#incl...
阅读全文
posted @ 2015-11-10 00:50 Claris
阅读(408)
评论(0)
推荐(0)
上一页
1
···
20
21
22
23
24
25
26
27
28
···
38
下一页
公告