自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 CF 842D Vitya and Strange Lesson 01Trie(mex)

题意:给出长度为n的序列a,m次操作,第i次操作将序列中每个元素与x[i]异或.求出此时序列的mex值.n,m,a[i]第i次操作后 序列中的第i个元素为 a[i]^x[1]^x[2]..x[i]=a[i]^(x[1]^x[2]..x[i])=a[i]^y[i].问题相当于将A中每个元素与y[i]异或后求出此时的mex.a[i]mex(A)=min(V-A)=min(B

2017-08-31 19:13:42 307

原创 BZOJ 1070 修车 费用流(拆点)

题意:同一时刻有N位车主到维修中心,告诉你a[i][j]第i个师傅修第j个人的车需要的时间.现在需要安排这M位师傅所维修的车及顺序,使得顾客平均等待的时间最小.顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间.2左边定点i为师傅 右边点j为车主 花费为a[i][j] 跑流量为n的最小费用最大流.wawawawaawa,一个师傅修多辆车时 等待时间需要累加!!

2017-08-31 09:32:55 269

原创 Codeforces 841D Leha and another game about graph 构造

题意:n个点m条边的图,每个顶点有值d[i](0,1,-1),可以有重边或者环(无自环)n,m输出保留下来的边的编号.首先图的度数和为偶数 若没有d[i]=-1&&d[i]之和为odd 则肯定无解否则一定能构造:dfs生出一棵树.从叶子结点开始操作.若当前结点d[u]==0 则说明u已经满足条件 不需要添加u-par[u]这条边.若当前结点d[u]==1 则需要加上u-

2017-08-29 17:58:15 332

原创 BZOJ 1007 水平可见直线 几何(半凸包)

题意:在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例如,对于直线:L1:y=x; L2:y=-x; L3:y=0则L1和L2是可见的,L3是被覆盖的.给出n条直线,n斜率相同的 只保留截距大的.剩下的按斜率从小到大排序.若斜率小的i和斜率大的j交点为(x,y) 则在(-

2017-08-29 10:34:29 346

原创 BZOJ 1061 志愿者招募 单纯形 OR 费用流

题意:某个项目需要N天才能完成 其中第i天至少需要Ai个人,一共有M类志愿者.其中第i类可以从第Si天工作到第Ti天,招募费用是每人Ci元.n利用要满足的等式 -> 流量平衡关系建图设第i类招了x[i]人则对样例有不等式x[1]>=a[1]x[1]+x[2]>=a[2]x[2]+x[3]>=a[3]若第i天超出的人数为d[i],则x[1]-d[1]=a[1]

2017-08-28 13:08:47 240

原创 BZOJ 1002 轮状病毒 生成树计数(行列式递推)

题意:如图所示的n轮环形图.只保留其n-1条边,并且每两点都要有唯一路径存在.n给出图求其生成树个数,先建下Kirchhoff Matrix,求出其n-1阶行列式的值就好了.然而这题求行列式的时候精度好像炸了,把行列式展开后有递推关系 参考链接:点击打开链接 点击打开链接#include using namespace std;typedef long long ll;c

2017-08-27 14:26:45 339

原创 BZOJ 1015 星球大战 逆向并查集

题意:n点m条边的图,k次操作:每次删去一个点及其所有边时 问此时图中的连通分量个数?n,m逆着考虑简单多了.维护当前可以使用的点.从后开始加点.用并查集维护连通分量个数即可.#include using namespace std;typedef long long ll;const double eps=1e-6;const int N=6e5+20;int n,m,

2017-08-26 08:24:47 245

原创 BZOJ 1013 球形空间产生器sphere 高斯消元

题意:n维空间,给出n+1个点的坐标 求出圆心坐标.n根据两点距离列出n+1个方程,两个方程相减,消去未知半径和平方项后,剩下n个方程n个未知数,高斯消元即可.#include using namespace std;typedef long long ll;const double eps=1e-6;const int N=3e2+20;int n;double f[

2017-08-26 07:38:19 187

原创 BZOJ 1031 字符加密Cipher 后缀数组(计数排序)

题意:n个字符顺时针围成一圈,按开头不同,总共形成n个长度为n的字符串.当n个字符串排序后,问这n个字符串最后一位连起来后为? |n|知道开头位置i,(i+n-1)直接求出其最后字符.把字符串复制一遍连起来,然后只要知道后缀i的排名即可.(后缀i长度超过n的部分比较无所谓.若比较则说明前n个字符相等.)后缀数组的排序内容:计数排序:a[i]排序后在第几位?

2017-08-24 23:07:03 252

原创 BZOJ 1003 物流运输 DP+最短路.

题意:m个点,e条带权边.d个限制:pi,ai,bi 表示pi这个点在[ai,bi]天无法到达.现在有n天,每天都从1出发走到m.如果今天路线和昨天路线不同则要增加费用K.m每次不一定走最短路,换线费用大或者换线次数多..设f[i]为前i天需要最小费用,最后一次换线在第j天时,则j+1,i只能为同一条路线.预处理cost[i][j]为第i天到j天都能走的路径中的最短路.f[

2017-08-24 11:26:52 240

原创 BZOJ 1026 windy数 数位DP

题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数求[a,b]内的windy数? a,b记录位数和前面一个数字.数位dp存当前状态出发时能获得的方法数.暴力记忆化即可.注意:返回dp[pos][sta]时:当sta为0 要判断当前状态是否为前导0状态.#include using namespace std;typedef long long ll;type

2017-08-23 11:55:45 216

原创 BZOJ 1001 狼抓兔子 平面图最小割

题意:n*m地图 每个点可以走到其右边,下方,右下方.这3道路都有各自的流量限制.源点s为左上角,终点t为右下角,n,m堵住割上的边 则s-t无路径存在.花费最小也就是求最小割/最大流 n,m本图是平面图,平面图的最小割等于其新图的最短路.新图的点为原图的面.(建新图时对面合理的编号..)新图边的权值等于:原图中分割这两个面的边的权值. #include

2017-08-23 10:57:42 285

原创 BZOJ 1012 最大数maxnumber 单调队列

题意;初始序列为空,Q次操作.Q,Dop1:询问末尾Li个数的最大值 op2:向末尾插入x+上一次的查询的答案%D.(在线)若一个数右边有比它大的数,则查询末尾最值时可以将该数淘汰.单调栈维护第i大的位置.每次二分找到第一个大于n-L+1的位置即可.次二分找到第一个大于n-L+1的位置即可.#include using namespace std;typedef long

2017-08-22 23:05:13 312

原创 HDU 4547 CD操作 LCA

题意;n个结点的树,根到任意一个结点只要一秒,子结点往根走需要1秒.m次询问,u->v的最小时间. n,mu->v  = u->lca(u,v)->v 时间为u到lca(u,v)的距离加上1用倍增处理出lca即可.O(nlogn).注意u-v相同的情况和n==1的情况.#include using namespace std;const int N=2e5+20;cons

2017-08-21 22:25:00 194

原创 树链剖分(合集)

参考链接 点击打开链接树链剖分通常用于处理树的形态不变 但点权/边权需要修改查询的题目树链剖分就是把树拆成一系列链,然后用数据结构对链进行维护。通常的剖分方法是轻重链剖分,所谓轻重链就是对于节点u的所有子结点v,size[v]最大的v与u的边是重边,其它边是轻边,其中size[v]是以v为根的子树的节点个数,全部由重边组成的路径是重路径,性质:任意一点到根的路径

2017-08-21 16:28:08 269

原创 BZOJ 1588 营业额统计 Splay

题意:给出序列a,a[i]的贡献为:min(abs(a[i]-a[j])) (j=1..i-1)n当计算a[i]贡献时 找前面第一个比它大的,最后一个比它小的? 用set维护.或者建立splay,中序遍历是递增的,把x旋转到根,从根开始找x左子树最右边的,x右子树最左边的即可.splay模板参考#include using namespace std;const i

2017-08-21 10:59:57 341

原创 ARC 081 D(讨论),E(DP),F(规律.最大子矩形变形)

题意:2*N方格,已知1*2,2*1的多米诺排列方式,现在有3种颜色,问相邻多米诺颜色要不同的染色方案? n竖着为X,横着为Y.  前i-1组染色方案为res最后一组..Xi-1,Xi则Xi有两种方案,  最后是两个横着连两个横着的,则前面任意一种方案,最后这两个横着的都有3种染色方案. 其余类似#include using namespace std;typedef long l

2017-08-20 23:14:20 626

原创 BZOJ 2002 弹飞绵羊 分块

题意:有n个装置编号0~n-1,每个装置有弹力k[i],在第i个装置给以弹到第i+k[i]个装置(若i+k[i]不存在 游戏结束)现在有m个操作,操作1:从第x个装置出发,弹多少次后游戏结束?,操作2:修改第i个装置弹力k[i]n,m序列分成根号n块,每个装置维护需要跳多少次到下一块及保存它在下一块的落点.查询一次只要sqrt(n),更新时只有[L,x]的pos及tim可能发生

2017-08-20 17:33:04 220

原创 Codeforces 86D Powerful Array 莫队

莫队简介莫队(感觉就是niubi的排序.)将序列分成相等大小的若干块,每块大小为p,(p通常取sqrt(n)) 将query按下列方式离线处理后 复杂度神奇的达到了O(nsqrt(n))左右.1):排序,以左段点所在的块为第一关键字,以右端点为第二关键字2):从左往右处理询问(离线)3):已知当前[l,r]的答案后,不断调整l,r的位置并同时修改

2017-08-20 12:01:26 274

原创 CS Academy Distinct Neighbours 经典DP

题意:给出序列a,若排列中:任意两个相邻的数都不同则该排列合法.n经典的DP问题.设置dp[i][j]为前i组不同的数,正好有j对相同数相邻的排列数.cnt[i]记录数字i个数.插入数字i+1时,先选k个位置,这k个位置又可以分成两类,一类在相同数中间,一类为不同数中间.选好k个位置后 在放了cnt[i]个相同的数(一元方程不同解个数)S=tot[i]+1, dp[i]

2017-08-19 23:23:03 448

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除