自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Icefox的博客

生活不止眼前的苟且,还有诗和远方。

  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

原创 NOIP模拟10.31 R2

2016提高D2 A.组合数问题。AC B.蚯蚓 水了60 C.愤怒的小鸟。。写过了。。结果还是被卡了精度5分。

2017-10-31 20:27:48 400

原创 NOIP模拟10.31

2016提高D1 A.玩具谜题。(我写过的第一道正式的oi题hh)AC B.天天爱跑步。这我哪会啊。。水了45。正解待更新 C.换教室。一觉醒来已经快结束了hh,水了24(4)分就。。太弱了

2017-10-31 20:21:50 273

原创 luogu3933 Chtholly Nota Seniorious(二分答案+贪心)

这题我哪会啊。。。让最大值最小,很显然的想到了二分答案。怎么解决是否合法呢?其实合法的情况,如果左上角为红色的话,就是每行的红色的个数是单调的即可。我们还贪心的想,应该让最大值和最小值不在一块内。因此我们假定最大值mx在红色块内,最小值mn在蓝色块内,这次二分判定的答案为x。假设红色块在左上角,则我们逐行贪心的选择尽量多的合法的(即>=mx-x的),这样留给蓝色的不合法情况一定不会更多。为了让分块合

2017-10-29 12:23:37 658

原创 bzoj1499 [NOI2005]瑰丽华尔兹(dp+单调队列)

这题朴素dp方程应该还是挺好想的。。然后直接朴素dp,O(nmT)写好点就能卡过去了hh。实际上,我们可以用单调队列来优化转移。变成O(nm*k).就是难写的一B。%%%jfy

2017-10-29 11:02:16 453

原创 bzoj4717 改装(暴力+二分答案)

因为数据范围很清奇,时限很挥霍,所以我们对询问操作暴力搞,修改操作直接O(1)做。对于询问,我们二分一个答案x,看比他大的有几个,看是小了还是大了。不断调整。怎么快速的知道有几个比x大的呢?对a数组每次询问时暴力处理出小于等于v的有几个,记为cnt[v]。然后我们枚举每一个b[i],大于x/b[i]的在a数组中有几个就是有几个比x大的了。记询问个数为a,则复杂度为O(a*(2000+log2e9*m

2017-10-28 11:15:22 465

原创 NOIP模拟10.27

Poetize10 A.transport(Floyd+状压dp) 先Floyd预处理出两点间最短路径,然后状压dp,dp[s][i]表示状态为s的点都遍历了,停在i的最小时间。枚举一个j去转移就好了。然后处理出f[s],表示遍历了s状态的点的最小花费。然后枚举A遍历了哪些点,B必须遍历了其余点与1.取最大值就是最慢的,更新答案即可。复杂度O(2^n *n*n) B.elevator(数学+模

2017-10-27 16:18:17 370

原创 AtCoder Grand Contest 010

%%%leoly %%%Visjiao %%%Elijahqi 题解可以去看VisJiao大佬的:传送门 AtCoder Grand Contest 010 A.Addition(数学,奇偶性) B.Boxes (数学) C.Cleaning(树+结论) D.Decrementing(数论+gcd+奇偶性) 都是思维题,这我哪会啊。。。Visjiao大佬的题解写的很详细orz

2017-10-26 21:53:06 474

原创 NOIP模拟10.26

Poetize11 A.rainbow. 挂精度了。30。思路好像也有点问题·。。。正解是二分答案,通过勾股定理求出每个半圆能够覆盖的线段。此时问题转化为线段覆盖问题,排序扫描一遍即可。(直接拿圆判可能会有特例?) B.clover。状压dp+dfs瞎搞。。70. C.fin。dp打表了AC hh。实质上可以根据这道题的特性,把dp优化下,简直黑科技。处理出深度为d时,可能的最大节点数和最小节

2017-10-26 16:28:31 369

原创 CF77C Beavermuncher-0xFF(树形dp)

这题连写带改了将近一周。。。太弱了。。。很明显是个树形dp,然而细节有点多,蒟蒻认为不太好写。dp[i],表示在i的子树中,先花一个进入i,最后还要回到i,最多能吃多少只。考虑dp[x]如何求出,对于所有儿子y的dp[y],我们贪心的选取,即从大到小排序,先拿大的,再拿小的。要是还能接着拿,看儿子们还有多少剩余,能拿的就是儿子们的剩余与还能拿次数的最小值。注意还有一些回根x而拿掉的1.。。还要注意l

2017-10-25 22:11:45 318

原创 NOIP模拟10.25

Poetize12 A.seal 模拟+贪心 B.energy 树形dp C.journey 瞎搞。。。优化暴力即可。

2017-10-25 17:16:36 310

原创 bzoj4326【2015提高】运输计划(二分答案+lca+树上差分前缀和)

这题我哪会啊。。。这题卡常,我们把每个路径的lca求一次就记录下来,每条路径的长度求出来(借助预处理得出的dis数组,dis[i]表示i到根的路径长度,则len[i][j]=dis[i]+dis[j]-2*dis[lca(i,j)])。然后按每条路径的长度从大到小排序,也许能快些( 让最大值最小问题。。二分答案,每次判定最大值<=mid是否可能。那么对于每条长度大于mid的路径我们都得给...

2017-10-24 21:54:35 531

原创 NOIP模拟10.24 R2

2015提高D2 A.跳石头。二分答案+贪心 AC B.子串。dp。写过一遍的。。结果用了另一种方法写过的。。AC C.运输计划。拿了60的暴力分。正解待更新。 upd:C正解看这里:传送门

2017-10-24 17:33:29 307

原创 NOIP模拟10.24

2015提高D1 A.神奇的幻方。 这不几年初赛题么。。AC B.信息传递。 这题卡了许久。。大概是老了。。%%%elijahqi C.斗地主。 超级大爆搜,先把顺子都搜索枚举了,然后剩下的牌贪心。

2017-10-24 11:18:15 261

原创 bzoj1722 [Usaco2006 Mar] Milk Team Select 产奶比赛(树形dp)

dp[i][j][0/1]表示以i为根的子树,有j对关系,根选没选的最大产奶量。则 dp[i][j][0]=max{tmp[j-k][0]+dp[y][k][0/1]|0<=k<=j} dp[i][j][1]=max{tmp[j-k][1]+dp[y][k][0]/dp[y][k-1][1]|0<=k<=j}+a[i] 复杂度O(n^3),注意一些细节,过了应该没问题。转移很像背包dp的转移,

2017-10-23 21:38:05 521

原创 bzoj4990 [Usaco2017 Feb]Why Did the Cow Cross the Road II(dp+树状数组)

dp[j]表示第二行选择的最后一个位置为j时,最多选择多少对。以第一行做到i划分阶段,则这次只会影响a[i]能连到的的位置j, dp[j]=max{dp[k]| 0<=k< j}+1.这样复杂度是O(n2*9)的,过不了,我们可以用树状数组或线段树维护一下决策的前缀最大值,优化成O(9*nlogn)。

2017-10-23 20:16:49 483

原创 NOIP模拟10.21(洛谷10月R2)

洛谷10月月赛R2 A.浮游大陆的68号岛(模拟+前缀和)AC。注意开ll,分左右情况讨论即可。 B.Chtholly Nota Seniorious 完全不会。水了20分。 B的题解看这里:传送门 C.Nephren Ruq Insania 瞎搞了60分。欧拉定理我哪会啊。。

2017-10-22 23:13:52 292

原创 bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛(状压dp)

dp[s][i]表示状态s,为1的表示已选,i表示最后一个是谁,考虑j能接在i后面,如果j没被选过且差超过k。复杂度O(2^n*n*n)

2017-10-22 23:10:34 314

原创 NOIP模拟10.22

2014提高D2 A.无线网络发射器选址 暴力枚举选在哪即可。AC B.寻找道路 图论+bfs+spfa AC C.解方程 数论+筛法+枚举。 脑残没想到取模,去写高精度,结果当然是挂了。只拿了30.具体题解见这里

2017-10-22 23:05:57 247

原创 bzoj3751【2014提高】解方程(数论+筛法+枚举)

这题强啊。。。蒟蒻弱到去写带负数的高精度了,结果玩挂。 因为数无比的大,所以我们发现给两边都模个数好了hh。为了更准确些,让他们摸个大质数吧!一个正确性还不太够,多模几个吧!于是诞生了正解。读入的时候就顺道都模了,我这里是用了三个质数。然后枚举x,带入,用秦九韶公式计算,判断是否得0.如果模3个质数的情况下均为0,基本可以说他就是得0了(错误的概率极小)。然后这样枚举是O(nm)的,可能会卡常。...

2017-10-22 22:58:41 295

原创 bzoj5027 数学题(扩欧)

这题我写了一天???求ax+by+c=0的整数解x,y在范围内的对数。首先通过扩展欧几里得算出一组解:ax+by=-c,令c=-c,则ax+by=c,显然当g=gcd(a,b)不能整除c时,方程没有整数解,直接输出0。否则,令x0,y0为ax+by=g的一组整数解,则ax+by=c的一组整数解为x0=x0/g*c,y0=y0*g/c。不难发现,其他的解为x+-k*dx,y+-k*dy。因此我们以这组

2017-10-20 22:09:32 654

原创 bzoj4636 蒟蒻的数列(离散化+线段树)

因为是只有最后询问一次和,所以可以离散化之后,区间更新最大值,线段树维护即可。叶子节点l表示[ a[l],a[l+1] )。答案就是每个点最后的值乘上这个点所代表的区间。

2017-10-20 16:29:10 580

原创 bzoj1088 [SCOI2005]扫雷Mine(枚举+模拟)

这水题。。。好吧。。。枚举第一个位置是否有雷,然后就可以推出其他位置是否有雷,判定是否合法即可。方案数最多两种。。。注意判断给定数据是否合法。

2017-10-20 09:14:24 364

原创 CF487B Strip(单调队列预处理+单调队列优化dp)

这题妙啊。。。堪称优先队列中的典范了啊。。。 首先预处理出L数组,表示右边界为i,左边界最多能扩展到L[i] 。这个过程可以通过两个单调队列和一个指针p解决,分别维护区间最大最小值即可。复杂度O(n) 然后进行dp,dp[i]表示前i个数至少分成几部分,不能分的为inf,考虑转移: dp[i]=min{dp[j]| L[i]-1<=j<=i-l}+1,然而朴素转移是O(n^2)的,显然会T。而

2017-10-19 22:06:13 588

原创 bzoj1560 [JSOI2009]火星藏宝图(dp+贪心)

首先朴素的dp很好想,dp[i]表示前i个点的最大收益,则dp[i]=max[dp[j]+dis(j,i)|j可以到i},给这n个点排个序就是O(n^2)的dp了,然而过不了。考虑优化,状态数O(n)不可能在优化了,m为1000,O(m)的转移是可以接受的。我们玩一下之后发现,若x到i之间有一个合法的y存在,则(x->y->i)的走法一定比(x->i)的走法要优,因此我们不必从x转移。其实也就是我们

2017-10-19 20:30:18 313

原创 CF482C Game with Strings(期望dp+状压dp)

这题很神啊。orz sbw. 首先考虑一个数组num[s],表示问了s状态的问题,有几个串不能判断 。直接枚举状态处理的话会爆掉,因此思考优化。考虑两个串,什么状态会不能判断呢?当你询问的位置上的字母相同时。因此枚举两个串,相同的位置标1,把这个东西压成s.则询问的问题为s的子集时均不同区分这俩。从大到小递推的算出num[s]即可。有了这个数组我们就好dp了

2017-10-19 15:36:16 472

原创 CF678E Another Sith Tournament(概率dp+状压dp)

这题又想了会???一开始题都没读对orz。。其实就是让你安排一个比赛顺序,要求1最后存活的概率最大,求这个最大的概率。dp[s][i]表示状态s时擂主为i+1,最后1活下来的最大概率 。我们考虑倒着推(因为正着推难以统计答案x),则状态转移很显然:见代码。。。初始值给dp[1][0]=1,因为要求最后1存活下来。复杂度O(2^n*n^2)

2017-10-18 22:14:08 486

原创 CIA3 Sometimes Naive(莫比乌斯反演+积性函数前缀和)

题意:求∑x=1n∑y=1mφ(gcd(x,y))\sum\limits_{x=1}^n\sum\limits_{y=1}^m\varphi(gcd(x,y)) 根据各种老套路化简得 ∑i=1n⌊n/i⌋⌊m/i⌋∑d|iφ(i/d)∗μ(d)\sum\limits_{i=1}^n\lfloor n/i\rfloor \lfloor m/i\rfloor\sum\limits_{d|i}\varp

2017-10-18 21:23:54 870

原创 CF869E The Untended Antiquity(二维数状数组+差分+hash)

考虑什么情况会不可达,当覆盖两点的最小矩形不同时,一定不可达。因此我们需要快速的知道覆盖一个点的最小矩形是哪个。我们考虑每次把一个矩形染色,那么复杂度是不可接受的。联想到我们一维做区间加法,单点查询时,可以使用差分+前缀和的方法解决。我们此时同样可以使用差分+前缀和的思想。只不过是二维的。给(x1,y1,x2,y2)的矩阵加x,我们可以这样做:(x1,y1)+x,(x1,y2+1)-x,(x2+1,

2017-10-18 17:32:24 498

原创 CF16E Fish(概率dp+状压dp)

这题好像思路还是很简单的。。。概率推了一会。。。太弱了。。。

2017-10-18 17:21:15 556

原创 CF870E points, Lines and Ready-made Titles(并查集+图论+快速幂)

我们把每条线看做并查集上的一个点,那么图上的每个点相当于连接了两条线。我们去维护一下每个联通快内有多少条边,是否有环。如果没环,也就是n个点,n-1条边,是一棵树,由于每条边最多只能贡献一个点,所以显然不能实现n个点的情况。总情况数为2^n -1。如果有环,可以实现所有情况,总情况数为2^n。都乘起来就好了。(显然互不影响的边只要用乘法原理乘起来就好啦)orz leoly

2017-10-18 10:44:23 432

原创 CF870D Something with XOR Queries(异或+暴力枚举)

首先考虑如果n^2的询问我们都问了,如何算出答案。我们已知了两两数之间的异或和,则我们可以枚举p0的取值,根据p0的取值算出所有数的取值,然后去检查是否合法即可。那我们现在最多只能问2n个问题,如何实现n^2个问题的效果呢?我们先得到p0与bi的所有异或值,用掉n个问题,然后再得到b0与pi的所有异或值,用掉n-1个问题。 对于p0^pi,可以直接通过p0^b0^b0^pi得到。然后对于pi^bj

2017-10-18 08:49:33 638

原创 CF875C National Property(简化版的2-sat)

这题原来是2-sat,果然还是我太弱,哪会什么2-sat呀。。以为随便模拟呢x 这题应该是个简化版的2-sat,先把前缀都合并了,然后考虑两个相邻串的大小问题,显然只与第一个不同的数字有关,记前一个串的为x,后一个串的为y。 则若x>y,为了满足条件,x必须大写。 若x< y,为了满足条件,如果y大写了,x也一定要大写,我们就建一条有向边(y->x)。然后用一遍dfs把所有需要变成大写的都变成

2017-10-17 22:20:14 572

原创 Codeforces Round #441

CF876A Trip For Meal(贪心水题)

2017-10-17 21:09:24 333

原创 NOIP模拟10.17

2014提高D1A.生活大爆炸版石头剪刀布。一个很水的模拟。ACB.联合权值。有点树形dp的意思?AC(听说看成图更好想hh)C.飞扬的小鸟。一个dp。朴素dp本来至少70?结果写挂了只有60.。。正解就是优化了一下转移方程?有点背包dp的味道?%%%elijahqi大佬同样的dp,写到了75分。

2017-10-17 20:53:07 271

原创 luogu1941【2014提高】飞扬的小鸟(完全背包加01背包)

朴素版dp谁都会。。。dp[i][j]表示到i列j行至少需要跳几次。转移也很显然,然而是O(nm^2)的,只有70分。我们的状态已经不能再压缩了,因此只能优化转移。考虑转移为什么是O(m)的,因为我们不知道它是上一次跳了几次到达这个点的,因此我们要枚举所有的情况。其实若想到达i,j,上一次能跳x的话,则 dp[i][j]=min(dp[i-1][j-x],dp[i][j-x]),为什么呢?因为你如

2017-10-17 20:43:25 384

原创 Codeforces Round #440

CF872A Search for Pretty Integers(贪心)CF872B Maximum of Maximums of Minimums(贪心)CF871A Maximum splitting(贪心+数学)

2017-10-15 22:04:14 225

原创 CF486D Valid Sets(枚举+树形dp)

我还在想没给定根怎么能树形dp呢。。。我们枚举每一个i来当跟,然后每次统计过根且a[i]为最大值的方案数。考虑到如果a[i]!=a[j],则一定不会重复计数。那可能重复的就是a[i]==a[j]的情况,那我们强制规定一个方向,让标号小的能访问到相等的大的即可。这样就不会重复计数了。

2017-10-15 21:39:07 407

原创 CF402D Upgrading Array(贪心+数学+线性素数筛)

先预处理出g[i]表示a[1]…a[i]的gcd,我们贪心的发现,肯定是从后往前做,这样不会影响前面。每次我们分解这个gcd,看他是负贡献还是正贡献,决定是不是要除掉它。这样的操作之后,我们分解每一个剩下的数,统计答案即可。用线性素数筛提前把素数筛出来,复杂度应该是小于O(n sqrt(1e9))的。

2017-10-15 15:23:21 389

原创 CF165E Compatible Numbers(位运算+状压dp)

我们用f[x]表示与x与完得0的数,没有就是-1.考虑一个数x,他可以和~x(x取反)与完得0,即f[~x]=x。而且f[~x的所有子集]=x。所以直接暴力更新的复杂度为O(n·2^22),我们不能接受。。考虑优化,我们每次只更新~x去掉一个1的子集,由大到小递推更新,这样的复杂度为O(2^22·22),就可以过了。

2017-10-13 23:05:16 629

原创 bzoj3529 [Sdoi2014]数表(莫比乌斯反演+树状数组)

%%%popoqqq大爷的题解:传送门 又掌握了线性素数筛处理sigma函数的技能。。。复杂度O(T*logT+T*sqrt(n)*logn)

2017-10-13 22:14:36 367

zjoi2015.zip

浙江省选 2015 zjoi 数据 题目zjoi2015.zip 2015浙江省省赛数据。

2018-02-23

国家集训队2004论文集

国家集训队 论文集 2004 OI。

2017-08-05

2013国家集训队清华集训

2013国家集训队清华集训资料。

2017-07-30

空空如也

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

TA关注的人

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