自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51Nod 算法马拉松17 最好的排列 贪心求解加高精度

题目大意我们定义“排列的价值”为所有区间的最大值之和。一个最好的排列,应当是在所有排列中,价值最高的。现在有NN个整数,他们是从11到NN且两两互不相同。现在要把他们重新排列一下,使得排列的价值最大。输出最大的排列价值。N≤10100N \leq 10^{100}解题思路考虑一个数对答案的贡献,若这个数所在位置是x,左边比它大的最近的数的位置是ll,右边比它大的最近的数的位置是rr,那么这个数对答案

2016-08-29 11:24:18 956

原创 51Nod 算法马拉松17 Simple KMP 链剖维护SAM的fail树

题目大意化简一下题意! 现在给你一个长度为NN的字符串,对于每个字符ii,我们要统计AnsiAns_i为前ii个字符有多少个相同的子串,并且其中一个子串一定要经过位置ii。在第ii行输出∑jj=1Ansj\sum_{j = 1}^{j}Ans_j。N≤100000N \leq 100000解题思路我们考虑先对原串建SAM,问题就变成了统计一个前缀所在节点的failfail链上有多少rightrig

2016-08-29 11:12:16 1095

原创 51Nod 算法马拉松17 路径计数 莫比乌斯函数加暴力构图

题目大意现在定义路径上所有边权的最大公约数定义为一条路径的值。 现在给定一个NN个点MM条边有向无环图。进行TT次修改操作,每次修改一条边的边权,每次修改后输出有向无环图上路径的值为1的路径数量(对10910^9取模)。N≤100N \leq 100 M≤50000M \leq 50000 T≤500T \leq 500 路径的权值≤100路径的权值 \leq 100解题思路我们可以用莫比乌

2016-08-29 10:57:28 1170

原创 BZOJ3875【JSOI2014/AHOI2014】骑士游戏(knight) 贪心求解

题目大意现在有一个游戏,一共有两种攻击方式,一种是普通攻击,一种是法术攻击。两种攻击方式都会消耗一些体力。采用普通攻击进攻怪兽并不能把怪兽彻底杀死,怪兽的尸体可以变出其他一些新的怪兽;而采用法术攻击则可以彻底将一个怪兽杀死。 现在一共有NN种不同的怪兽,每只怪兽有几个参数Si.Ki,Ri,P1...PRiS_i.K_i,R_i,P_1...P_{R_i}。问至少花费多少体力才能把第一只怪兽杀掉。N

2016-08-24 16:57:52 1368

原创 JZOJ4735【NOIP2016提高A组模拟8.24】最小圈 Spfa深搜判负环

题目大意给你一幅NN个点MM条边的有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过kk个节点,那么一个圈的平均值为圈上kk条边权的和除以kk,现要求其中的最小值。N≤5000N \leq 5000 M≤10000M\leq 10000解题思路看到这题一个很好的思路就是二分答案,把问题转化成判定性问题。二分答案后,将每条边的边权都减去答案AnsAns,那么问题就转变成了判定一幅图中是否存在

2016-08-24 13:28:40 1028

原创 NOIP 8.20~8.23训练总结

Day 1拿到题目先看第一题,是一道裸的线段树,把式子化简一下就可以用线段树维护。继续道第二题,看上去像最大费用最大流,但是我的想法是每次单路增广,然后修改限制,感觉做法差不多,就先过了。第三题,看上去好像只有SAM能做,但是是多串匹配,我对SAM的多串匹配不是很熟,但是以前也做过类似的,应该可以全部扔到一个SAM里面维护,没有仔细想,先看下一题。数论题,一点思路都没有,感觉这题要弃疗。先打完第一题

2016-08-23 14:34:36 915

原创 JZOJ4555【NOI2016模拟6.20】没有强联通分量的无聊世界 利用Dag性质的简单Dp

题目大意现在有一个NN个点MM条边的有向图,问最少减去多少条边使得这个有向图无有向环。N≤22N \leq 22 M≤N∗(N−1)2M \leq \frac{N * (N - 1)}{2}解题思路不存在有向环,即操作后的图要是一幅DagDag。回想一下DagDag的性质,即只能拓扑序小的向拓扑序大的点连边。那么我们设F[s]F[s]表示状态为ss(一个二进制)的点形成一个DagDag能加入边数的

2016-08-22 22:03:30 1095

原创 CF 319E Ping-Pong 区间的并查集合并

题目大意定义区间(a,b)(a,b)能走到区间(c,d)(c,d)的条件是c<a<dc<a<d或c<b<dc<b<d。 现在有两种操作: Ord=1:Ord = 1:新加入一个区间(a,b)(a,b)(后加入的区间保证比新加入的区间长) Ord=2Ord = 2:询问从第aa个区间能否走到第bb个区间。 现在有MM个操作,对于第二个操作输出YESYES或NONO。M≤105M \leq 1

2016-08-22 19:02:10 2057

原创 JZOJ4726【NOIP2016提高A组模拟8.22】种花 增加改错机制的后贪心

题目大意现在有一个NN个点的环,环上每个点都有一个权值ValiVal_i,现在要求在这个环上选MM个点出来,使得点之间两两不相邻并且权值最大。如果无解则输出Error!Error!。N≤2∗105N \leq 2*10^5 −103≤Val≤103-10^3\leq Val \leq 10^3解题思路无解的情况很好判断,直接隔一个去一个看一下能不能取够MM个就行了。那么现在的问题就是怎么能使取出的

2016-08-22 13:58:20 918

原创 JZOJ4479【GDOI2016模拟4.26】游戏 线段树维护多条线段的信息

题目大意给你一颗NN个节点树,每条边都有有一个距离。每个点都有一个初始权值,为123456789123456789。现在有两种操作: Ord=1Ord = 1:给定四个整数S,T,A,BS,T,A,B。表示把SS到TT之间的点都插入一个值为A∗Dis+BA * Dis + B的权值,DisDis为这个点到S的距离(一个点可以有多个权值)。 Ord=2Ord = 2:给定两个整数S,TS,T,表示

2016-08-21 23:07:32 1087

原创 JZOJ4722 跳楼机 巧妙地转换为最短路模型

题目大意有一个HH高的楼房,现在给你三个正整数x,y,zx,y,z表示,在每一层ii,你有4种选择,到i+xi+x,i+yi+y,i+zi+z层或第11层。问能到多少个楼层。H≤1018H \leq 10^{18} x,y,z≤105x,y,z\leq 10^5解题思路也就是说有多少p=ax+by+cx(p≤H)p=ax+by+cx(p \leq H)我们可一考虑一种一种操来做,假设我们一开始用前

2016-08-21 14:41:21 1164

转载 OI算法汇总

转自yangle61:http://blog.csdn.net/yangle61/article/details/520552601.数据结构线段树树状数组平衡树Link-Cut-Tree可持久化数据结构分块KD树可合并堆(左偏树)2.数学组合数学质数模数论函数矩阵博弈论3.图论强连通分量(SCC)拓扑排序割点与桥欧拉回路4.树LCA树链剖分分治(点/

2016-08-19 22:32:31 1905

原创 NOI2012 美食节 动态加边维护费用流

题目大意现在有NN种人,每种人有PiP_i个,还有MM个厨师,第jj个厨师给第ii种人做菜需要时间Ti,jT_{i,j},并且同一时间一个厨师只能做一道菜。每个人的权值是这个人等待的时间。问所有人的权值和最小是多少。N≤40N \leq 40 M≤100M \leq 100 ∑Pi≤800 \sum P_i \leq 800解题思路设Sum=∑PiSum = \sum P_i。 我们考虑用网络

2016-08-19 22:20:50 1319

原创 NOIP 2016.8第一次模拟总结

最近与雅礼进行了第一次模拟,又考挂了。Day 1因为不知道题目来源,题目的难度也不是很确定。一拿到题先看第一题,明摆着是向下走乘b,向右走乘a,可是我看成了求整个矩阵的和!样例挺大的,不是很敢推,感觉虽然很丧,但应该能做。推了半个多小时,发现最后的难点就是把多项式C01a0+C02a1....C0NaN−1C_{1}^{0}a^0+C_{2}^{0}a^1....C_{N}^{0}a^{N-1}转移

2016-08-19 15:30:30 627

原创 CF 671D Roads in Yusland 线段树维护代价合并的思想

题目大意给定一颗NN个节点的树,现在有MM个工人,每个工人有三个属性ui,vi,Ciu_i, v_i, C_i,表示这名工人可以维修节点uiu_i到节点viv_i的所有路径,花费为CiC_i,并且保证viv_i是uiu_i的祖先。问最少花费多少使得树上的每条边都有人维修。N,M≤300000N,M \leq 300000 Ci≤109C_i \leq 10^9解题思路这题有个特殊的性质,就是每个工

2016-08-19 12:47:31 1316

原创 CF 696E ...Wait for it... 链剖练手题

题目大意给定一颗NN个点的树,现在有MM个物品,每个物品一开始都在节点AiA_i上,权值为ii。现在有两种操作,先读入OrdOrd: Ord=1Ord = 1:再读入三个整数u,v,Limu,v,Lim表示从uu到vv这条路径上从小到大把最多LimLim个物品从树上取出,并且从小到大输出。 Ord=2Ord = 2:再读入两个数u,Valu, Val表示给在uu这棵子树的所有物品加上权值ValV

2016-08-18 20:02:20 828

原创 CF 452F Permution 神奇的线段树判断

题目大意给定一个11到NN的列,问是否存在一个长度为33的子等差数列。N≤300000N \leq 300000解题思路看到这题,感觉有点无从下手,好像怎么要都要枚举两个值。 但是我们可以发现一个很神奇的性质如果对于一个位置ii,它是子等差序列中的第二项,那么如果不存在长度为33的子等差数列,那么Ai+kA_i + k和Ai−kA_i - k在位置ii前肯定是成对存在的,即如果我们把位置ii前出现

2016-08-18 14:50:34 898 4

原创 上下界网络流小结

之间一直对上下界网络流不是很熟悉,今天就来小结一下!无源汇的上下界网络流对于一般的网络流每条边流量的下界是0所以不需要特别处理,但是有些网络流问题每条边会有一个流量下界,我们可以用一个二元组(low,up)(low, up)来表示一条下界为lowlow,上界为upup的边。 那么对于每个点,要满足:∑进来的界流+∑进来的自由流=∑出去的界流+∑出去的自由流\sum进来的界流 + \sum进来的自由

2016-08-18 11:06:23 1173 5

原创 CF 704D Captain America 上下界网络流

题目大意给定NN个点,每个点有一个坐标(Xi,Yi)(X_i,Y_i)。现在要给每个点染成红色或蓝色,染成红色的费用为rr,染成蓝色的费用为bb。现在有MM条约束,每条约束形如t,l,dt,l,d: t=1t = 1:对于直线x=lx=l上的点,红色的点数与蓝色的点数的差不能大于dd。 t=2t = 2:对于直线y=ly=l上的点,红色的点数与蓝色的点数的差不能大于dd。 现在问最小的花费把所

2016-08-17 23:07:17 944

原创 CF 616F Expensive Strings 用到fail链性质的SAM练手题

题目大意给定NN个串tit_i,每个串有一个权值cic_i。现在要求找到一个串SS,满足∑Ni=1ci⋅|S|⋅pi,s\sum^{N}_{i=1}c_i\cdot|S|\cdot p_{i,s},pi,sp_{i,s}表示SS在tit_i中出现次数。N≤105N \leq 10^5 ci ≤107c_i\ \leq 10^7 ∑ti≤5∗105\sum t_i \leq 5 * 10^5解题思

2016-08-16 23:12:45 1176

原创 CF 702F T-shirt 奇怪的平衡树维护+超强复杂度证明

题目大意给定NN件T-shirt,每件T-shirt有一个Qi,CiQ_i,C_i表示花费和代价。现在我们的选择策略是这样的:把价值从大到小排序,价值相同的把花费从小到大排序,对于拥有的初始金钱,我们按排序后的数组从前往后尽量取T-shirt,收益就是取的T-shirt的数目。现在有MM组询问,每组询问有个初始金钱BiB_i,问你每组询问的收益。N,M≤2∗105N,M \leq 2 * 10^5

2016-08-16 22:55:37 1319

原创 SPOJ SOPARADE(JZOJ 4696 第四次忍者大战) 根据条件构图跑2-SAT

题目大意现在有NN个位置,每个位置要填入一个11到44的整数,要求亮亮间的差要大于等于二。并且现在有MM条约束,每条约束规定了kk个位置B1,B2...BkB_1,B_2...B_k上的数两两不同。问是否有合法的填法。N,M≤105N,M \leq 10^5解题思路我们一步步从题目的约束中挖掘性质。 首先,相邻的两个数的差的大于等于2,那么1的傍边只能是3,4。2的旁边只能是4。3的旁边只能是1。

2016-08-16 22:25:22 773

原创 CF 316G3 Good Substring SAM上的简单计数

题目大意给你一个长度为NN的字符串SS和MM个限制。每个限制为(t,l,r)(t,l,r),表示限制字符串ss在tt中的出现次数为ll到rr。问SS中有多少不同的子串符合这MM条限制。N,Lenti≤500000N , Len_{t_i}\leq 500000 M≤10M \leq 10解题思路看到这题,一个很直接的思路就是用SAM来做,我们可以先建出SS的SAM,然后再把MM个限制串也放进去。S

2016-08-16 16:40:55 825

原创 GDOI 8.11~8.14训练总结

又到了回学校训练的时间……Day 1拿到题目,看了看第一题,有点懵逼,什么鬼第一题都不会!乱搞了一下,发现怎么都过不了,有点慌,先看第二题。第二题一看题面就是网络流,但是数据范围就有点奇怪,n≤10000,m≤2000n \leq 10000, m \leq 2000,这么大,网络流真的跑的动,想了一下构图,也没什么好思路,就感觉可能不是用网络流做。第三题又是喜闻乐见的字符串题,但是题目告诉我不用后

2016-08-15 11:22:32 495

原创 CF 487E Tourists(JZOJ4691 旅行) 树链剖分维护点双连通分量信息

题目大意给定一个NN个点MM条边的无向图,每个点有一个点权。现在有两种操作,第一种是修改一个点的点权,第二种是询问两点间路径上的最小点权(不能经过重复的点)。操作数为QQ。N,M,Q≤109N,M,Q \leq 10^9解题思路我们先考虑没有修改点权的情况。那么我们可以先用点双连通分量缩环,缩环后的点权为环上的最小值。而每组询问就变成了求树上两点间的最权值。这个经典问题可以用倍增后链剖来维护。但是有

2016-08-15 10:46:13 920

原创 CF 581E Kojiro and Furrari(JZOJ 4689 新车) 动态规划维护贪心

题目大意现在有一个长度为MM的数轴,上面有一个起点和一个终点,起点一定在终点左边。现在你要开车从起点到达终点,但是你的油箱只能走长度为SS的路程。途中有NN个加油站,加油站加的汽油有3种,分别为98,95,92,并且一个加油站只能加一种有油,在每个加油站你可以加任意多的油。一开始你加满了98的汽油,现在给定你每个加油站的位置和可以加的油的种类。问能否到达终点,如果可以最少需要加多少92汽油,当加92

2016-08-15 10:06:45 962

原创 JZOJ4686 卡牌游戏 线段树维护贪心策略

题目大意有两个人在玩这样的一个游戏:现在有2N2N张牌,牌的大小为11到2N2N,每个人都从中拿NN张牌来进行NN轮比大小。现在你已经知道第二个人的出牌顺序,你要帮第一个人赢得经量多(你可以决定他的出牌顺序)。比大小的规则是这样的:一开始是谁牌上的数字大谁就赢。但是当游戏进行了若干轮后,你可以改变游戏规则,变为谁的牌小谁赢(只能修改一次!)。问最优策略下第一个人能赢多少轮。N≤50000N \leq

2016-08-15 09:35:45 889

空空如也

空空如也

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

TA关注的人

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