自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sakai_Masato的博客

雅人叔好帅啊!

  • 博客(99)
  • 收藏
  • 关注

原创 艺术是否低于科学

在学校里,经过多年的学习,这往往会使人觉得艺术低于科学,因为音乐,美术,语文课所占的比重很小。许多人认为,科学能够改变人们的衣食住行,为人们提供更加优良的生存条件,而艺术好像没有像科学一样的维持人最低生存需求的作用。人们就会认为,科学比艺术有用多了。 在我看来,这不仅不对,而且还错得离谱。一个人,当满足了他的物质需求后,他就会主动从事构建哲学,艺术,宗教,法律等上层建筑的工作。可以这么说,科学相当

2016-06-17 21:44:04 1047 3

原创 [6-10]总结

我在想一个问题zyh17岁生日(niu)那天,收到了Builder Jose的礼物:一本政治预默本,由很多个字符串组成。那些字符串也非常迷茫,因为他们不知道他们来到这个世界上是为了什么。而睿智的zyh则在想一个问题:我能不能做这么一个事情,在一个字符串中找一个最长的子串,那个子串是一个重复串,形如SS。 分治… 当前递归l,r,中点为mid。从[l,mid]内枚举一个i,要求的是[i,mid]是

2016-06-10 21:51:38 511

原创 [6-7]考试总结

年度最佳牛农给你一个字符串,每次从串首或串尾拿出一个到一个新字符串的队尾,求字典序最小的串。 若队首队尾不一样直接贪心,否则你枚举队首还是队尾,看看谁更优即可。手风琴与班卓琴约翰的2N(3<=N<=1000)只奶牛正打算举办一场音乐会来吸收资金。其中,N只奶牛是手风琴手,而另N只奶牛是班卓琴手。每个手风琴手有一个天才指数Ai(0<=Ai<=1000),同样一个班卓琴手有一个天才指数Bi(0<=Bi

2016-06-10 21:36:34 505

原创 [6-6]考试总结

检查边权给你一幅新有向图和原有向图,判断是否满足一下条件: 所有边为非负整数且原图中任意两条路径的差在新图中的差仍然相等。 也就是说每一条起点终点一样的路径权新图和原图的差为定值。 对于一条有向边,连一条边,权值为边权的改变量,连一条反边,边权为负改变量。搞出生成树,算出每个点到根的距离。然后依次检查每一条非树边,看它所连接的两个点的距离差是否等于这条边的边权,不是就是No。计数器平面上给定一

2016-06-10 21:11:26 450

原创 [5-28,5-29]考试总结

day1T1 需要考虑的地方:给定一个字符串,再给定另一个串,只有小写字母,如何在线性时间内匹配出一个子序列等于所给定的第二个串。 做法:设dp[i][k]表示在第一个串中,从i开始下一个k字符的位置,先预处理dp,按着这个指针直接跳即可。 T2 需要考虑的地方:如何求出一个序列的最长上升子序列必须用到的数。 做法:处理出d[i]数组,即以i结尾的最长上升子序列长度,把长度等于ans的加入

2016-05-29 19:29:32 404

原创 Codeforces Round#333 div.1 E A Museum Robbery

题目大意:要你动态维护一个0-1背包问题(可以离线)。 首先预处理出每个背包所能影响的询问区间,然后区间插入询问的线段树中,注意线段树是分治的询问。 然后遍历线段树的每一个节点,遍历的过程中就只有加背包了,直接维护dp数组即可。 复杂度大概是O(nklogn)这个级别的。 这种算法之所以比暴力优,是因为一个背包会影响多个询问,而暴力每次都要重新考虑。 这种考虑的方式貌似可以适应很多问题,我

2016-05-27 21:23:16 780

原创 Codeforces Round#333 div.1 D Acyclic Organic Compounds

题目大意是给你一棵还没有合并的trie树,要你合并它,然后统计一些傻逼信息。 本题需要一种线性时间复杂度的合并算法,这里直接给代码片了。#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<iostream>#include<cassert>#include<map>#include

2016-05-26 22:04:11 595

原创 [5-21,5-22]考试总结

一、要注意一次操作是+或-1的题,然后可以把时间看作一维,把值看作一维,就变成了平面上的到达问题,可以用组合数解决。至于有限制也可以把不合法的所有方案通过对称唯一映射到另外一个同样的问题上面去,减去即可。 二、自己若是想到了一个算法,应该自信的去验证,不要动不动就自我否定掉,本来有一题是考虑过正解的,乍一想好像不对,就弃了。 三、关于最长上升子序列的问题,往往可以用nlogn方法的那个数组思考或

2016-05-22 21:53:59 352

原创 [5-14,5-15]NOIP模拟考试总结

day1 T1,线段树被卡常了,用别的算法可以过,但是正解是线性的,运用了逆向思维,区间修改用差分转化成了单点修改,然后还使用了扫描线。扫描线常常和全局达到某一状态结合,即扫描的每个元素达到了某个状态那么就是全局达到某个状态。然而直接操作然后判断复杂度要多一个判断,扫描线就只有线性了。 T2,容斥原理,我没有想出暴力dp以及n2n^2的可重边的dp,一开始问题就想错了方向,以为是背包。dp设状态

2016-05-16 22:14:28 415

原创 [BZOJ1005][HNOI2008]明明的烦恼

这一道题属于树的计数问题,我所知道的有三种方式处理这类问题,dp,基尔霍夫矩阵还有purfer编码。 这一题跟度数有关那么就用purfer编码啦。 purfer编码和树是一一对应的,如何把一棵树转化成编码。首先把树的度数为1的编号最小的点所连向的点放到编码的第一个,然后删除这个度为1的点,一直这样搞直到树的点数小于2为止。 一颗n的树的purfer编码只有n-2个数。 如何从purfer编码

2016-05-09 21:50:10 567

原创 [BZOJ1003][ZJOI2006]货物运输

SPFA处理出i天到j天路线不变的最小值,设f[i]表示1到i天的最小值,枚举改变路线的那一天转移即可。#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<iostream>#include<cassert>#include<map>#include<climits>#includ

2016-05-04 22:02:26 449

原创 [APIO2015]Bali Sculptures

看到这种求位运算的问题一定要想直接对答案贪心啊,从高位枚举到低位,设当前的位为pos,pos之前贪心得到的答案为ans。 现在的问题就是能否找到一种方案,使得pos这一位为0,而且满足这种方案算出来的答案的前若干位与ans相同。 考虑设f[i][j]表示前i个数,分j份能否满足条件,0为满足,若存在一个k使得f[k][j−1]==0,(s[i]−s[k])and(1<<pos)==0,(((an

2016-05-02 20:28:08 680 1

原创 HNOI2016题解

最小公倍数考虑暴力做法,对于每一个询问,暴力加入满足询问的边,然后维护联通性和maxa,b,如果满足条件则YES。 两个条件的限制似乎很难用别的数据结构优化掉,那么考虑分块,先以a为第一关键字,b为第二关键字排序,每m0.5m^{0.5}分成一块。然后把每一个询问归类到相应的块中,使得这个询问的a大于等于块的a最小值小于等于最大值。 依次扫每个块,把每个块的询问取出来。设当前的块号是ii,那么我

2016-04-30 15:41:10 851

原创 HNOI2016游记

两天的考试过去了,自己仿佛置身梦境。 最近都有这么一种感觉,感觉自己正在干的事情是在梦里一样,麻木了,没感觉了,然后时间一下就过去了。我心里过一天是一天,遇到麻烦事也默无声息地对待,就像具死尸。 第一天暴力是匆匆写完的,一直在想拿某一题的更多部分分,暴力写出来就没管了。还好只挂了20分。第一天考完我就在想,第二天一定要把暴力打好,一定要优先暴力。 第二天第一题的诱惑实在太大,我想不出,只得乖乖

2016-04-17 20:49:08 1443

原创 4-14蒟蒻段位赛

今天的考试,我的段位就变成了蒟蒻!开心… 第二题傻逼题,没有发现一些东西,本来想推推公式的,万万没想到,随便观察一下性质就出来了。要是放到普及组第一题说不定就做出来了。 第一题也不难,考试脑子混乱,想到了正解但是算法实现不了,殊不知每个点单独算就可以了,还有维护上凸壳,斜率递减,截距递增,然后每次看一下加入线与栈顶线的交点与栈顶线和次顶线的交点的位置关系,弹栈即可。 第三题不会。。。 我是蒟

2016-04-14 20:48:30 546 1

原创 HNOI2016上半场考试总结

出现的问题: 1,考试时间安排不合理,一直在某一道题上乱搞,然而并搞不出来,留下的时间只能给别的题打大暴力,没有时间想小暴力了。 2,太注重个人得失,在自己家里考试没必要以太过紧张的心态应考,考完后没有必要太过自责。 3,许多算法不太会,很多没学过的知识和以前没有搞透的知识。 学到的东西: 1,善于将问题转化为图论或者特殊的图论模型然后乱搞,有些问题要把不必要的点看成边。 2,各种线段树

2016-04-07 21:34:11 529

原创 [HNOI2016]树

题意:给出一颗树和每一条边出现的概率和kk,和所有点的权值a[i]a[i],定义一个联通块的特征值为(∑a[i])k(\sum a[i])^k,树的特征值为所有联通块特征值的和,求期望。 n,k≤2000n,k\leq2000 设f[i][j]f[i][j]表示以ii为根的子树,指数为jj时的树的特征值,有: 初始化f[i][0]=1,f[i][j]=f[i][j−1]×a[i]f[i][0]

2016-03-29 19:20:33 1006 1

原创 [BZOJ3144][HNOI2013]切糕

总结一下这一题我的思考过程,以及与题解的对比。 这题我首先考虑二维平面的切法,发现就是一个最短路,然后套在三维的情况,发现无法保证每个(x,y)(x,y)都经过。所以说这种思路是不对的。一开始就不对,后面怎么可能对。一般靠谱的思路自己都会觉得靠谱,我那样搞十分玄学肯定不是正解。 最小费用好像很玄学,考虑最小割吧,既然一个(x,y)(x,y)只要选一个,我们把同一纵行串成一链,那么求每条链的最小割

2016-03-24 21:20:02 404

原创 [BZOJ3143][HNOI2013]游走

不得不说确实是一道一眼题啊,设p[i]p[i]表示经过ii点的期望。 p[i]=p[j]/deg[j]+[i==1],i→jp[i]=p[j]/deg[j]+[i==1],i\rightarrow j,高斯消元即可。 每一条边期望经过的次数为p[i]/deg[i]+p[j]/deg[j]p[i]/deg[i]+p[j]/deg[j],贪心即可。 然而高斯消元有细节要注意,不然会WA。#incl

2016-03-24 20:08:06 549

原创 [BZOJ3142][HNOI2013]数列

这题我的公式好像不能化简,于是膜拜了一下题解。 先做差分A[1]...A[k−1]A[1]...A[k-1],那么满足这个差分的初始票价为的方案数有: n−∑i=1k−1A[i]n-\sum\limits_{i=1}^{k-1}A[i],那么总方案有: ∑所有序列(n−∑i=1k−1A[i])\sum\limits_{所有序列}(n-\sum\limits_{i=1}^{k-1}A[i]),

2016-03-23 21:09:38 505

原创 3-19,3-20考试总结

Day1 第一题跟道路堵塞差不多,其实暴力就可以过,还是写出来了的。 然后没有什么时间了,半个小时吧,只有打暴力了。 第二题其实就是一个状压dp,也不是很难的。 第三题实在是没办法做啊,考场上只能写平衡树! Day2 第一题计算几何,写出来了,只是输出格式不对,痛失100分。 然后还有一个小时,心态就不对了,光想着打暴力,打完暴力就完事。。。 第二题我先也考虑了可不可以二分答案,结果

2016-03-23 18:58:12 366

原创 3-12,3-13考试总结

第一天有一个裸的线段树模板题写错了,没开LL和INF设得太小。 有一题没做出来,其实要说也不是很难,注意一下题目的重组。 第二天两题没写出来,而第三题我没有仔细探究,说不定我给我的口胡算法出一组hack数据我就能把这一题A了,因为只要有hack我的数据这题就很显然了,当时真没想到这题还能模拟,搞第一题去了,以为这题是个高大上的网络流。 然而第一题也没有那么简单啊,我没有考虑对问题的重组,只证明

2016-03-15 20:04:14 331

原创 GDKOI2016考试总结

这两次考试我都没考好,两次考试不管是算法方面还是考试策略方面都有许多值得总结的地方。 第一天的第一题是一个和位运算与区间有关的问题,我们可以考虑按每一位分治,只要按照每一位分治(用线段树什么的维护),然后考虑贡献即可。 第二题是一个期望dp题,我想了一个方程,但是是错误的。当一个点有许多个决策而决策的顺序对答案有影响时,可以考虑推导出决策的顺序,就像证明贪心一样证明交换两个不会更优。 第三题,

2016-03-09 21:46:44 475

原创 [BZOJ3572][HNOI2014]世界树

这一题调试了蛮久,而且我一写虚树常数就大,是rank1的17倍。 显然是一道虚树题。建出虚树后,先两遍DFS处理出每个虚树上的点的归属,然后考虑虚树每一条边的贡献。 定义sizesize为原树每个子树大小 对于一条边(u,v)(u,v),设xx为原树中uu的儿子vv的祖先。 bel[u]=bel[v]bel[u]=bel[v],ans[bel[u]]+=size[x]−size[v]ans[

2016-03-04 21:54:21 701

原创 [BZOJ2286][SDOI2011]消耗战

设dp[i]dp[i]表示ii所在的子树里面所有的询问点与ii不连通的最小代价,那么dp[i]=∑min(dp[j],w[i][j]),j∈son[i]dp[i]=\sum min(dp[j],w[i][j]),j\in son[i],直接dp会TLE,发现询问的点数很少,那么建立虚树就可以了,一般虚树的题都很明显的。。 虚树就是关键点以及它们两两LCA所形成的树。 我写的常数好大QAQ。#in

2016-03-03 14:36:57 547

原创 [BZOJ3571][HNOI2014]画框

我反正是绝对做不出来。 我们把每个决策的∑x\sum x和∑y\sum y看做点(x,y)(x,y),那么最优解只有可能是下凸壳的点,而且在xx最小的点A和yy最小的点B之间的下凸壳。我们先求出A、B,观察得在线段AB下方离线段AB最远的点C一定在下凸壳上,这样就可以分治(A,C)和(B,C)了。 怎么求C? S△ABC最大S_{\triangle ABC}最大即cross(C−A,B−A)c

2016-03-01 21:49:05 515

原创 [Codeforces 277E][Round #170 div.1 E]Binary Tree on Plane

题目大意:平面上给出K个点,每个点可以向纵坐标比它小的点连边,边权为欧几里得距离,求一棵最小二叉生成树。 每个点只有一条入边,至多有两条出边,考虑使用最小费用最大流模型。 每个点拆成两个点i,i’,对于原图上的边u,v,u向v’连一条容量为1,费用为dis的边,源点向每个i连容量为2费用为0的边,每个i’向汇点连一条容量为1费用为0的边,最后检查除了最上面那个点的出边之外是否满流即可。#incl

2016-03-01 20:12:04 836

原创 [BZOJ2324][ZJOI2011]营救皮卡丘

思考如何满足要摧毁点N,必须摧毁前N-1个点。 我们设dis[i][j]为从i到j且不经过大于max(i,j)的点的最短路。 原题转化成了求K条路径覆盖,使得这些路径的权值和最小。 考虑网络流里面的二分图模型最小路径覆盖里面的拆点。 每个点要拆成i和i’,分别表示进入这个点和出去这个点。 源点向0号点连一条容量为K,费用为0;对于每一个点i,向所有的点j(j>i)的j’连接一条容量为1,费

2016-02-29 21:49:42 1050

原创 2-27、28考试总结

总而言之,这两次考试都出了一个同样的问题,就是第一题脑补出来的算法都不正确,而打完之后才拍出错的,然后浪费了好多的时间,然后心态就不对了,开始或多或少的弃疗。 比较能总结的题和见得比较多的题就是关于平面上的点的一些问题,可以考虑枚举扫描线,树状数组维护点的数量,然后转化成了确定了横坐标的问题,搞一搞就行了。 还有一题的dp要考虑逆向思维和环形dp,总之还是太弱。 心态真是个很重要的问题!

2016-02-29 18:48:53 360

原创 [BZOJ1927][SDOI2010]星际竞速 最小费用最大流

用流量限制次数,用费用限制距离。 这一题和最小路径覆盖很像,所有边容量为1,把每个点拆成uu,u′u',原图上uu,vv连成uu,v′v',费用为距离,每个u′u'连向汇点,费用0,源点连向每个uu,费用0,源点连向每个u′u',费用为瞬移代价,直接跑最小费用最大流就可以了。 注意最小费用最大流每个点记的是来边而不是来点。#include<ctime>#include<cstdio>#inc

2016-02-26 20:42:43 430

原创 [BZOJ2756][SCOI2012]奇怪的游戏

如果我们知道了要变成的数dd,怎么检验这个答案可不可行。 将整张棋盘黑白染色,黑点连向四边的白点,容量为无穷大,源点连向黑点,容量为d−v[i]d-v[i],白点连向汇点,容量为d−v[i]d-v[i],最后检查是否满流。 那么当m∗nm*n为偶数时,可以二分答案。 奇数时,不妨设黑格子比白格子多一个,不管怎么操作,黑格子的和与白格子的和的差是定值,设为difdif,再设最后变成的数为dd,有

2016-02-24 21:40:31 632

原创 [Usaco2015 FEB Gold][2016-2-21]考试总结

第一题裸四方暴力,一直在想怎么用数据结构优化,期间想到了主席树套二维线段树,然而会爆空间,但是只要从上到下从左到右便可以只要主席树了,然后动态开点就是O(n2logn)O(n^2logn)的空间,还是对主席树不熟练啊,我毕竟是以前只写过一次的蒟蒻。 第二题AC自动机搞啊,裸裸的,然而我写了个O(n2)O(n^2)居然只超了两个点,考场上,下考后都自以为是O(n)O(n)。我果然是无脑工业狗,一看见

2016-02-23 21:05:48 714

原创 [BZOJ3672][NOI2014]购票 树分治斜率优化

废话不多说,直接上方程。 dp[i]=min(dp[j]+(dis[i]−dis[j])×p[i]+q[i])dp[i]=min(dp[j]+(dis[i]-dis[j])\times p[i]+q[i]) 考虑xx是yy的儿子,且xx比yy优: dp[x]−dis[x]∗p[i]<dp[y]−dis[y]∗p[i]dp[x]-dis[x]*p[i]<dp[y]-dis[y]*p[i] 设T

2016-02-21 14:04:00 704

原创 [POJ1637]SightseeingTour

题目大意:给出一个含有有向边和无向边的图,求是否存在一条欧拉回路。 很明显地,一个有向图有欧拉回路当且仅当入度等于出度。我们可以把无向边强制设定一个方向,然后再调整。 那么我们如何调整。 我们先计算每个点的入度和出度,若和为奇数,则必无解。 若in[u]>out[u]in[u]>out[u]则把这个点和汇点连一条边,容量为(in[u]−out[u])÷2(in[u]-out[u]) \d

2016-02-19 20:52:48 329

原创 [BZOJ1010][HNOI2008]玩具装箱[BZOJ1911][APIO2010]特别行动队[BZOJ1492][NOI2007]货币兑换 斜率优化

今天因为刷不动ydc的题,只能搞搞LCT和斜率优化,上午搞了LCT,下午搞斜率优化,其实我本来是想看冬令营的课件的,发现正好有斜率优化,也写得很好。玩具装箱直接上方程好了。 设dp[i]dp[i]表示前ii个玩具的答案,记s[i]s[i]为物品前缀和,那么: dp[i]=min(dp[j]+(i−j+s[i]−s[j]−L)2),(j<i)dp[i]=min(dp[j]+(i-j+s[i]-s[

2016-02-16 20:45:50 612

原创 [BZOJ2049]洞穴勘测[BZOJ2157]旅游Link-Cut Tree模板题

第一次写LCT,先来两道模板题,因为上个月被三道区间维护的超级工业的splay搞傻了,吸取了很多教训(见前几篇博客),所以LCT写得很顺啊,这里要感谢hzwer的题解。 BZOJ 2049:给出一颗树,每次加一条边或者删除一条边,询问两点的连通性。 这是一眼题,最裸的,纯天然的LCT,如果你不会先去看论文吧。半年以前看LCT感觉是一个非常高端的东西,当时反正看不懂,而TTY又有LCT爷的称号,写

2016-02-16 14:25:27 676

原创 [BZOJ1093][ZJOI2007]最大半连通子图

先缩点,就转化成了求一条最长链和求有多少条这样的最长链。 关键是第二个的dp,设dp[i]表示到第i个点,有多少条最长路经过它,那么 dp[i]+=dp[u]dp[i]+=dp[u] (u→i,dis[u]+w[v]=dis[v])(u\rightarrow i,dis[u]+w[v]=dis[v])#include<ctime>#include<cstdio>#include<cstdl

2016-02-15 17:33:43 643

原创 同余式运算的总结

最近在做数论的题目,发现这个东西我没有搞太清楚,现在来总结一发,供大家参考。 1.反身性:a≡a(mod m)a\equiv a (mod\ m); 2.对称性:a≡b(mod m)⇒b≡a(mod m)a\equiv b(mod\ m) \Rightarrow b\equiv a(mod\ m); 3.传递性:a≡b(mod m),b≡c(mod m)⇒a≡c(mod m)a\equiv b

2016-02-09 15:44:03 2721

原创 [BZOJ2434][NOI2011]阿狸的打字机

发现一种新的思路,以前从来没有见过的,即AC自动机的fail树。 这一题我们先考虑暴力,从root往Y的最后一个点走,如果走到了X的末点,ans++,如果通过fail指针走到了X的末点,ans++。 反过来考虑,从X的末点往root走,如果当前点在Y串或者通过反向的Fail到了Y串,ans++。 又发把fail反向之后得到的是一棵树,那么也就是要求在X末点的子树里有多少个Y点,转化为DFS序后

2016-02-08 16:25:55 463

原创 BZOJ1500维修数列Splay

不得不说这题目真的猥琐,写一个小时调一晚上加一上午,还被卡常了。 这里不放题解,主要来总结一下Splay区间修改比较猥琐的地方。 一 、查找第k大的时候一定要记得push_down; 二、有改值标记的题目push_down一定要写成改值的push_down,今天我才知道我以前写的线段树都是jg,全是错的标记方式。 三、注意一下边界问题和Splay函数里的push_down和update操

2016-02-02 15:13:37 381

空空如也

空空如也

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

TA关注的人

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