自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cjk_My steps

千里天青染了驿道

  • 博客(20)
  • 问答 (2)
  • 收藏
  • 关注

原创 zoj3421 Error Curves(三分法)

题目大意:给出n条直线或开口向上的抛物线,记F(x)为:这些曲线在横坐标取x时纵坐标中最大的。求函数F(x)在[0,1000]上的最小值【题解】这n个函数都是下凸的,可以发现函数F(x)仍然为下凸函数。单峰函数的极值可以用三分法求解:首先设置边界:l=0,r=1000,令m1,m2为该区间的三等分点,( l 若F(m1)还是在r-l经实验,三分法约调用F(x

2015-02-28 01:47:14 548

原创 uva10341 Solve It(二分法求单调方程的根)

题目大意:给定方程:p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0, (0 p,r <= 20,-20 q,s,t <= 0)按从小到大的顺序输出它在0x的所有解,每个解保留小数点后4位;无解则输出 "No solution"。【题解】由p,q,r,s,t 的范围可以发现,该方程在[0,1]上单

2015-02-28 00:41:07 586

原创 poj2104 K-th Number(主席树)

同一道题开两篇主席树:可用于查询:一个数列{a1,a2,…,an}在给定区间[L,R]内 各元素(即所有a1,a2,…,an)的出现次数 这个数据结构由n棵形状相同的线段树构成,第i棵线段树记录:前缀区间[1,i]内 各元素的出现次数 要先将a[]离散化,得到离散化后元素的范围1~m。而线段树的每个节点就对应其中一段子区间,节点值记录区间内所有元素出现次数之和 也就是说

2015-02-24 02:26:47 417

原创 BZOJ2006 [NOI2010]超级钢琴(划分树+堆)

【题解】(划分树做法)要求出长度为l~r的前k大连续和,可以转化为k次求第i大连续和,这与划分树的作用有关 先把前缀和预处理出来。一段连续和为 S(j)-S(i),固定i之后为 S(i+len)-S(i-1) (i为起点,len为长度,len∈[l,r])这里面,若i一定,len就在固定区间内变动,连续和的k大值对应S(i+len)的k大值,问题就转化为"求给定区间的k大值",

2015-02-22 11:24:58 618

原创 poj2104 K-th Number(划分树)

划分树模板题:给定1~n的一种排列,m次询问区间[i,j]中第k小的数 (1 这篇文章对划分树得非常详细:http://blog.csdn.net/shiqi_614/article/details/8041390细节见代码注释#include#includestruct Node{ int v[100005],num[100005];//T[i].v[j]

2015-02-21 02:29:13 424

原创 uva11987 Almost Union-Find(可删除元素的并查集)

【题目大意】给定n个集合:{1},{2},…,{n},要求支持三种操作:"1 p q":若p,q不在同一集合,将它们所在的集合合并成一个"2 p q":若p,q不在同一集合,将元素p移动到q所在的集合"3 p"   :询问p所在集合的元素个数及元素和m个询问,1【题解】维护sum[x],cnt[x],表示以x为father的集合的 元素和及元素个数,就可

2015-02-20 23:28:18 1497

原创 BZOJ1758 [Wc2010]重建计划(二分答案+点分治+单调队列)

【题解】利用平均数的一个性质:若每个元素都减去x,平均数也减小x,因此可以二分答案Ave,求所有边权值减去Ave后,有无含L~U条边,权值和非负的路径 -> 树的含L~U条边的最长路权值和是否>=0点分治即可。优化:1.先求root,再二分,可以避免多次求root2.先只求经过root的路径的最优Ave,并把它作为 递归求不经过root的路径 时的二分下界 判断

2015-02-20 18:47:15 725

原创 BZOJ2152 聪聪可可(点分治)

【题解】基础的点分治题还是分为路径是否经过root来讨论,计算点到根的距离时,一边计算,一边统计距离对3取模等于0,1,2的点的个数 注意:统计答案时(a,a)算1次,(a,b)算2次 【代码】#include#includeint v[40005]={0},w[40005]={0},first[20005]={0},next[40005]={0};int

2015-02-18 01:23:58 604

原创 BZOJ3626 [LNOI2014]LCA(树链剖分)

【题解】首先考虑任意两点u,v的LCA的deep:若将0到u路径上所有点标记,则deep[LCA(u,v)]等于从v上溯到的第一个被标记点的deep,而再往上的话一直到根,经过的点都是被标记点 由前缀和的思想,将0到u路径上所有点权值设为1,其他点权值为0,那么deep[LCA(u,v)]等于SUM(0到v路径上的点权和)再进一步想,deep[LCA(u1,v)]+deep

2015-02-17 22:44:52 564

原创 WC2015简短感想

这次冬令营的确很像数学营,听课被虐爆了 TAT不过比赛的时候,暴力+玩了好久题答,竟然卡线二等,有点意外。。。新疆队整体的成绩也大有进步!WC闭幕了,紧接着新年到了,还剩最后半学期了在此以这篇blog督促自己,激励自己,希望自己在日后消沉的时候能够再坚持一下今后争取每天一更blog拼了!

2015-02-15 00:52:12 1056 2

原创 poj1741 Tree(点分治)

比较基础的题【题解】无根树转有根树,对于根结点:树上任意两点的路径有两种情况,即 经过根结点和不经过根结点1. 要求经过根结点的,求出所有点到根的距离d[x],将所有d[i]+d[j]    但实际上,若(i,j)是来自同一棵子树的,它们的路径不经过根,不该被计数,把这样的点对数减去即可2. 要求不经过根节点的,递归根的子结点,执行情况1即可这个根节点不能随便给

2015-02-13 22:13:59 468

原创 [Usaco2009 Jan]安全路经Travel(最短路树+并查集/树链剖分)

一道数据结构与图论的综合的好题,有着两种解法,可以在这里提交:http://218.28.19.228/cogs/problem/problem.php?pid=279【题解】由于1到其他点的最短路唯一,所以以1为起点的最短路恰好构成一棵树(最短路树,树边i满足:d[v[i]]==d[u[i]]+w[i])那么,一条不经过最短路径最后一条边的次短路,必然包含一条边(u,v)不在

2015-02-07 01:03:40 600

原创 BZOJ1036 [ZJOI2008]树的统计Count(树链剖分)

这篇blog算是对链剖的笔记吧先放下题:一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和。注意:从点u到点v的路径上的节点包括u

2015-02-06 02:22:42 525

原创 BZOJ1018 [SHOI2008]堵塞的交通traffic(分块+并查集)

这份题解没有在BZOJ上AC(狂汗不止),不过我觉得分块的思想挺不错的,就尝试了一下不过相似的代码可以AC这道题LA 4082 Traffic Jam如图,先给点编号,然后每一块中暴力维护并查集:Open:在同一块中就维护并查集,在不同块互相连通就用一个link数组记录Close:在同一块中就把块中元素的fa[]全部重新计算,在不同块中直接把link赋零Ask:判断

2015-02-04 18:24:45 1569 4

原创 BZOJ1083 [SCOI2005]繁忙的都市(最小生成树)

【题解】裸的Kruskal,将边从小到大排序,依次加边,并查集维护连通性即可#include#includeint fa[305]={0},u[90005]={0},v[90005]={0},w[90005]={0};int father(int x){ if(fa[x]!=x) fa[x]=father(fa[x]); return fa[x];}void jh(

2015-02-04 13:29:38 623

原创 BZOJ1050 [HAOI2006]旅行comf(Kruskal算法)

SPFA是错误的:局部最优不能保证全局最优,因为要求的是比例最小 可以设计m^2的算法:先将边按长度排序,然后限定最小边的长度w[i],依次加入更大的边,当加到某条边w[j]后s与t连通(并查集判断)时,用w[j]/w[i](double类型)更新答案 若没有w[i]能使s与t连通,则无解 注意:路径中分出的"杈"不用管,因为它们的长度既非最小,也非最大,去掉后s,t仍

2015-02-04 02:26:17 1853

原创 BZOJ2750 [HAOI2012]Road(最短路)

大神们眼中的水题。。。本蒟蒻搞了一下午。。。Orz。。。算法就想了半天。。。写代码各种细节错。。。图论太弱怎么办啊T T注意:题目给的是有向图!!!【题解】最短路的性质:以s为起点,若一条边在最短路上,则d[v]=d[u]+w分别以每个结点为起点求最短路,计算图中每条边对于这个起点,被经过的次数,最后吧对于所有起点的次数加起来即可 那么若起点s确

2015-02-03 17:50:44 1779

原创 BZOJ1051 [HAOI2006]受欢迎的牛(强连通分量+缩点)

题目大意:给出一个有向图,求有多少个结点能被任意一个结点到达 如果图无环,当出度为0的结点只有一个时(受欢迎的牛就是这头),问题有解,否则无解(几个出度为0的结点不会到达对方)如果图有环,由于同一个强连通分量中的结点相互可达(互相喜欢),它们可以看作一个点(权值为强连通分量的大小)因此,此题的解法为寻找强连通分量并缩点,之后按无环图处理即可 一个多月没看,全

2015-02-02 22:13:17 666

原创 BZOJ3124 [sdoi2013]直径(树上的dfs)

树上的DFS【题解】1. 给你一棵树,求树的直径:   先随便取一个点,一遍dfs找到离它最远的点low,再以low为起点做一遍dfs,找到离low最远的点high   那么low到high的距离即为直径(反证法可以证明)   2. 求出有多少条边在这棵树的所有直径上:   两个结论:   1)首先,这些边一定在同一条直径上(因为它们在任意一条直径上) 

2015-02-02 18:40:25 2340

原创 BZOJ1022 [SHOI2008]小约翰的游戏John(Anti-Nim游戏)

【题解】首先,可以发现:SG[0]=0,SG[1]=1,SG[2]=2,……,SG[x]=x然后是结论:先手胜有两种情况:1. SG和(SG[i]异或和)==0,且每堆石子数量都为12. SG和!=0,且至少有一堆石子数量大于1简单证明(简单YY):情况1. 每堆石子数量都为1时,堆数为偶数时先手胜,此时S

2015-02-01 23:33:24 2405

空空如也

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

TA关注的人

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