自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 【搜索】【kruskal】BZOJ1016[JSOI2008]最小生成树计数

分析:根据最小生成树的性质,如果存在多个最小生成树,那么这几种最小生成树必然满足:权值相等的边数量相同。所以要计算不同的情况,只需要考虑权值相同的边的选择状态。然后由于题目满足:权值相等的边不超过10条,那么爆搜就可以了。 对于权值相同的一个边集,用爆搜讨论完所有的选择情况,如果选择完后,这种权值边的总数,与预先求出的最小生成树中这种边权的边数量相同,即合法。然后乘法原理乘起来就可以...

2018-08-31 17:26:43 160

原创 【容斥原理】【树形DP】Atcoder ARC101 Ribbons on Tree

分析:很不错的树形DP+容斥原理的混合题不得不说,尽管Atcoder去世了一个半月,但这次题目质量仍然保持得很不错首先,这题可以运用容斥原理转化一下:定义EEE为给出的边集,设F⊆EF⊆EF\subseteq E,f(F)f(F)f(F)表示:F中的边全部未被覆盖的方案数。答案就是∑(−1)|F|f(F)∑(−1)|F|f(F)\sum (-1)^{|F|}f(F)那么接下来就...

2018-08-27 00:42:03 932

原创 【二分答案】【平衡树】Atcoder ARC101D Median of Medians

分析:答案的单调性是显然的,所以可以二分答案,把最值问题转化为判定性问题。现在要求的就是:满足区间的中位数不超过xxx的区间数量。(x为我们二分的值)定义一个ppp数组,满足pi=pi−1+[ai>x]pi=pi−1+[ai>x]p_i=p_{i-1}+[a_i>x] 说白了就是求出:前i个数中有多少个超过了x那么如果一个序列满足条件,就可以转化为满足这个式子: r...

2018-08-25 23:06:41 859

原创 【DP】BZOJ2708 木偶

分析:将目标转化一下,变为:求互不矛盾的数值相邻的三元组的个数为什么是三元组呢,是因为这样第一个一定不能选最后一个,所以内部是不会矛盾的。矛盾的三元组只有一种情况:(i,i+1,i+2),(i+1,i+2,i+3)(i,i+1,i+2),(i+1,i+2,i+3)(i,i+1,i+2),(i+1,i+2,i+3) 即每一个位置相差1这样无论指向顺序是i−> (i+...

2018-08-25 16:29:54 187

原创 【莫比乌斯反演】HDU6428 Problem C. Calculate

题意:求∑i=1i≤A∑j=1j≤B∑k=1k≤Cφ(gcd(i,j2,k3))∑i=1i≤A∑j=1j≤B∑k=1k≤Cφ(gcd(i,j2,k3))\sum_{i=1}^{i\leq A}\sum_{j=1}^{j\leq B}\sum_{k=1}^{k\leq C}\varphi(gcd(i,j^2,k^3))分析:膜拜cch。。。 狄利克雷卷积:(f∗g)(D)=∑d|D...

2018-08-23 22:24:59 347

原创 【数论】Codeforces1025G Company Acquisitions

题意:有n个节点,每个节点有两种状态:选中和未选中。每个选中的点后面都跟着若干个(可能是0个)未选中的点。每个未选中的点都一定跟在某个选中的点后面。每次操作随机选择两个被选中的点,随机将其中一个变成未选中,且跟在另一个后面,同时将跟在他后面的节点全部改为选中。求这样操作下去,直到最后只剩一个选中的点的期望步数。分析:非常有趣的一道数论题: 设一个点后面跟着k个被选...

2018-08-23 17:03:58 470

原创 【状压DP】CQBZOJ3646 炼金术师

分析:肥肠水的状压DP题。。。 考虑到k非常的小,可以用dp[i][j][l]dp[i][j][l]dp[i][j][l]表示以iii为首的前k个数中,被访问的状态为jjj,且最后一步访问到的数是l+il+il+i 转移也不难。。但的确是需要点技巧的首先直接枚举下一步走哪里(需要判断是否合法),以此来转移jjj和lll然后考虑转移iii很显然如果l!=0且j%2==1l!=0且...

2018-08-22 09:39:56 159

原创 【构造】Codeforces 1025E Colored Cubes

分析:很有趣(du)的一道题目啊。。。构造法很简单,首先,对原序列按x坐标排序,设第i个位置排序后的序号为idiidiid_i然后把每个位置(xi,yi)(xi,yi)(x_i,y_i)平移到(idi,yi)(idi,yi)(id_i,y_i)。这样只需要在yiyiy_i这条线上平移,很容易发现这是不可能矛盾的。现在我们让每个格子都有一个不同的横坐标xixix_i,说明每一列上最多只有...

2018-08-21 10:28:11 431

原创 【DP】Codeforces1025D Recovering BST

题意:给出n个点,每个点有一个点权aiaia_i 现在要求构造一颗二叉搜索树,需要满足:每条边两端的点其权值不互质。 询问能否满足分析:很水的区间DP题啦。。。 不知道为什么同学们还有WK大佬都没做出来呢。。。 看来同学们的DP训练还得再做做啊。。。(话是这么说,不过我似乎除了DP啥也不会了。。。好菜啊。。。)首先,由于其是一颗二叉搜索树,所以其中序遍历必然是不下降...

2018-08-21 00:07:25 338 1

原创 【并查集】Codeforces1027F Session in BSU

题意:给出n场考试,每场考试有2天可以通过(第aiaia_i与bibib_i天)。每天最多参加一场考试,现在要求所有考试全部通过的最小天数。分析:可以把每天看作一个点,每次考试看作一条边。现在要每条边选择一个点,把每个联通块分别考虑,很容易发现: 如果是树(n=m+1),那么只有1个点不用选,为了最优性,肯定不选最大的一个。 如果是基环外向树(n=m),那么所有点都必须选。...

2018-08-19 10:30:31 443

原创 【DP】Codeforces1027E Inverse Coloring

题意:给出一个n*n的矩阵,要求在每个位置涂上黑/白色,要求满足:任意相邻的两行,其颜色要么完全相同,要么完全相反。任意相邻的两列,其颜色也要么相同要么完全相反。且这个矩形中,不存在任意一个大小大于等于k的同色矩形。分析:很简单的DP水题。。。。我们可以把这个矩形的的每一行设一个值aiaia_i,每一列设定一个值bibib_i。其中ai,bi=0或1ai,bi=0或1a...

2018-08-19 10:22:43 762 2

原创 【LCT】Codeforces1023F Mobile Phone Network

题意:给出n个点,你拥有k条边,这些边权值未定。还有m条权值已知的边,要求这个图的最小生成树,一定包含了所有你的边。满足这个条件下,求你拥有的边的权值最大和。(保证k条边不会形成环)分析:啊啊啊啊啊结果就因为多了一句MakeRootMakeRootMakeRoot操作就卡常。。。。。好亏啊。。。。。本来可以直接跳紫上黄的。。。。5555。。。。其实非常简单啦。。。首先拿拥有的k...

2018-08-18 10:47:32 378

原创 【交互题】Codeforces1023E Down or Right

分析:很简单的交互题。。。首先,题目保证有路径可达,所以可以手动模拟DFS寻路的过程。即:询问当前节点的右边一个是否可达目的地,如果可以走右边 如果不行走下面。这样只需要2n−22n−22n-2次询问,就能找到路径。题目说要求询问的点的距离不低于n−1n−1n-1,无非就是正向走一次(从1,1出发)到距离为n-1为止,反向走一次(从n,n出发)到距离为n-1为止。只要正向...

2018-08-18 10:37:08 313

原创 【状压DP】HDU6407 Pop the Balloons

分析:实质上很水的状压DP题。。。。。因为m≤12m≤12m\leq12,可以枚举哪些行被消除了,在状压转移删除的列首先枚举一个maskmaskmask表示要删除哪些行设dp[i][j]dp[i][j]dp[i][j]表示前i列已经被消除的行的状态为j,其中jjj为maskmaskmask的子集对于当前这一列,如果每一个有位置的行都被j覆盖了,那么就只能直接转移如果存在一个...

2018-08-16 19:34:15 284

原创 【构造】HDU6400 Parentheses Matrix

分析:很有趣的一道题目啊。。。毕竟是构造题,没什么思路可言,这里直接给出两种构造方式: 当然,首先排除掉nnn或mmm为奇数的情况,对于n、m都为偶数的情况: 1、1、1、 这里只讨论n>mn>mn>m的情况(如果m>nm>nm>n把矩形横过来看即可) 第一列全为”(“,最后一列全为”)” 中间按照行和列的奇偶性这么放的答案为n+(m−2)2n...

2018-08-16 08:20:44 205

原创 【数据结构】【模拟】HDU6406 Taotao Picks Apples

分析:mmp…lwc讲错题意了害我乱码了半个小时。。。题意搞清楚了其实这题真心容易。把每个询问离线了,按照位置从前往后排序,先处理出每个询问的位置及以前能拿的数量,以及当时的最高高度。然后从前往后加入点,如果当前的高度高于之前的最高高度,则更新最高高度,并且长度++处理询问时,如果这个询问更改后的值高于之前的最高高度,则直接把最高高度改为更改后的值,然后拿的数量+1 如果询问...

2018-08-16 08:09:53 672

原创 【数据结构】【平衡树】【贪心】HDU6408 From ICPC to ACM

题意:题意非常的鬼畜。。。 你经营着一家电脑公司,需要满足一些客户的需♂求。每个月,你可以购买电脑配件(误),每单位价格为cicic_i 每个月需要制造didid_i台电脑,每制造一台电脑,需要一单位的电脑配件,然后外加mimim_i的人工费。而且每个月最多制造pipip_i台电脑。然后电脑和配件都可以储存。 从第i个月存到第i+1i+1i+1个月,最多储存eieie_i台电脑,...

2018-08-15 22:21:03 397

原创 【DP】【组合数学】HDU6391 Lord Li's problem

分析:很典型的组合数学+DP的题。 定义DP[i][j]DP[i][j]DP[i][j]表示用i个数字,xor出来有j个1,且这i个数字互不相同的方案数。转移很简单: DP[i+1][j+3]+=DP[i][j]∗C(n−j,3)DP[i+1][j+3]+=DP[i][j]∗C(n−j,3)DP[i+1][j+3]+=DP[i][j]*C(n-j,3):选3个1,xor上去 DP[i...

2018-08-14 16:22:18 364

原创 【枚举】 HDU6387 AraBellaC

分析:题解上说要RMQ?。。。估计他自己没想清楚吧。。。这题哪用得着RMQ啊。。。首先,可以暴力枚举循环节的长度: 然后,对每种字母进行判断,求出每个循环节中B,C最靠前的位置和A,B最靠后的位置。 如果A最靠后的位置在B最靠前的后面,或者B最靠后的位置在C最靠前的后面。就说明当前这个循环节长度是矛盾的。如果不矛盾,则将A最靠后的位置及以前,都设为A,B最靠后的位置及以前(除去A的...

2018-08-14 14:57:28 287

原创 【图论】 【树状数组】Traffic Network in Numazu

分析:用LCT水过去当然也是可以的啦。。。。 不过这里讲一下不用LCT的方法。。(当然也不是树链剖分)这个图肯定是一颗基环外向树,先忽略环,剩下的一定是一个森林。对于每个森林,其实可以用dfn+树状数组维护没两点之间的距离: 按照dfn,在每个位置存储它到达当前根节点的距离,然后询问在同一颗树中的点时,可以用lca求出两点最近公共祖先,两点距离就是dist(u)+dist(v)−2...

2018-08-14 10:47:19 185

原创 【数论】HDU6390 GuGuFishtion

分析://详情参见problem B 很明显,如果(x,y)=1(x,y)=1(x,y)=1(“()”表示最大公因数) 那么φ(x∗y)=φ(x)∗φ(y)φ(x∗y)=φ(x)∗φ(y)\varphi(x*y)=\varphi(x)*\varphi(y)那么如果(x,y)>1(x,y)>1(x,y)>1 将x、yx、yx、y唯一分解: x=pkx1x1×pkx2x2×...

2018-08-14 10:39:00 105

原创 【点分治】【数据结构】Codeforces1019E Raining season

题意:给出一棵树,每条边的距离都是一个一次函数,给出斜率k和截距m。(y=k*x+m) 现在求当x=0,1,2,……,t-1时,整个图中最远点的距离。分析:这题一股浓郁的OI气息啊。。。(思路简单实现复杂的数据结构题)首先,如果不考虑那个神奇的边权,那么就是一个简单的点分治水题。。。现在考虑加上这个边权,很容易发现,最终答案一定是一个下凸壳。所以可以维护这个凸壳中...

2018-08-13 10:35:24 613 1

原创 【枚举】【计算几何】Codeforces1019 D Large Triangle

分析:事先说明。。。。Codeforces强大的评测机。。。是可以支持n=2000时的O(n3)O(n3)O(n^3)算法的。。 所以这题写O(n2logn)O(n2logn)O(n^2logn)算法纯属练手。。。如果只是想过题的话,去写O(n3)O(n3)O(n^3)更容易首先,可以枚举三角形的一条边,因为三角形面积S=12×d×hS=12×d×hS=\frac 1 2\times d...

2018-08-13 10:24:38 258

原创 【图论】Codeforces 1019C Sergey's problem

题意:给出一个有向图,在这个图中选择一些点,这些点不能有边直接相连,并且每个点都能从某个选中的点不超过两步到达。求任意一个方案。分析:也是非常简单的一道题。任意找一个没被删除的点,删去它及它连向的点,对剩下的图继续做,直到删空为止。然后按照删的反向顺序依次考虑:若所有连向它的点都没被选中,则选中这个点不会造成矛盾,直接选。否则就不选。这两种情况中,都能保证该点以及它...

2018-08-12 12:00:45 330

原创 【交互题】Codeforces 1019B The hat

分析:非常简单的交互题,二分答案的左端点位置(在[1,n/2]中) 由于每两个相邻的点值都相差1,所以可以把询问的值看作一个由-1或1组成的序列的前缀和。 答案就是要求两个前缀和相差为0,长度为n/2的区间。所以二分的时候,如果当前区间的左端点值(即a[l+n/2]-a[l])与中间的值(a[mid+n/2]-a[mid])同号,则如果有答案,右端点的值(a[r+n/2]-a[r])一...

2018-08-12 11:49:59 497

原创 【枚举】COdeforces 1019A Elections

题意:有n个人,m个政党,每个人都想投一个政党,但可以用一定的钱让他选你想让他选的政党。 现在要1号政党获胜,获胜的条件是:票数严格大于其他所有政党。求最小代价分析:直接暴力枚举它获胜时得了多少票。 对每个票数大于这个值的政党,把其中代价最小的一部分人挖走,使得其刚好小于这个值。 如果这样强制挖过来后,票数已经超过了枚举的值,返回-1(非法) 否则再从所有不选1的人中,...

2018-08-12 11:43:11 382

原创 【组合数学】【Lucas】HDU6372 sacul

分析:原来倒着读题目就是题解啊。。。。出题人很皮。。。恩。。lucas定理在组合数学中还算是比较常见的了,之前在CQOI2018就遇到一道可以用Lucas骗分的(运气好还能卡过)的题。。。其实lucas定理本身还是比较简单的(看着隔壁的EXLucas瑟瑟发抖。。。) C(n,m)%p=(C(np,mp)∗C(n%p,m%p))%pC(n,m)%p=(C(np,mp)∗C(n%p,m%...

2018-08-10 18:43:07 424

原创 【规律】【容斥】HDU6363 bookshelf

分析:援引dls的一句话:像这么恶心的题面,如果没有一个神奇的规律,就根本没法做嘛。。。我们可以尝试打个表: 书的个数(序号) 1 2 3 4 5 6 7 8 9 10 斐波那契数列 1 1 2 3 5 8 13 21 34 55 2的斐波那契数列次幂-1 1 1 3...

2018-08-10 15:39:20 165

原创 【图论】HDU6370 Werewolf

分析:这题还算比较水的。。。真不知道为什么初三的小朋友被卡了。。。明明人家初二的小朋友拿这题签到来着。。。。显然,可以所有人都是狼人,这是一定合法的,所以一定是村民的人数必然为0因此,只需要知道哪些人一定是狼人,就能得到答案。我们定义一条全是由“认为xx是村民”的边,所组成的链为一条信任链。不同的信任链可以重合。这种信任链的特点是:对某个信任链上的点而言,它认为所有它的...

2018-08-10 15:09:34 191

原创 【筛法】Codeforces1017F The Neutral Zone

分析:就是个算贡献的水题。。。但出题人相当无聊。。。把内存卡得爆小。。。只有16M。。。。不得不说CF的评测机真心快。。。n=3∗108n=3∗108n=3*10^8的情况下nlognnlognnlogn居然还能卡进2s(卧槽不科学啊啊)其实就是个埃氏筛,但是由于n=3∗108n=3∗108n=3*10^8且内存只有16M,bitset也只能存大概10810810^8位,出题人以为这样...

2018-08-09 13:26:36 265 1

原创 【凸包】【KMP】Codeforces1017E The Supersonic Rocket

分析:。。。第一次见CF服务器炸了,还好最后unrated了,不然这次死惨。。。很容易想到,这两个多边形的凸包能通过旋转、平移最终重合,就必然满足条件。所以就是判断两多边形是否全等。额。。题解就是标题:顺时针地把两个凸包每个边的长度、每个点的旋转角储存下来(长度不开根号,旋转角用差积表示,这样都是整数)。如果这两个序列能完全匹配,则说明能够重合。方法就是把其中一个串复制一遍粘在...

2018-08-09 10:44:11 240

原创 【OEIS】Xor Sum AtCoder2272

分析:OEIS大法好哇。。。暴力打表然后去OEIS上面搜一下, get… 但似乎没有给公式啊 嗯。。再看看 似乎是这玩意的前缀和啊,这玩意给了个递推公式。。。 然后用数学老师讲的方法: a1=a1a1=a1a_1=a_1 a2=a1a2=a1a_2=a_1 a3=a1+a2a3=a1+a2a_3=a_1+a_2 a4=   &nbsp...

2018-08-07 21:10:16 905 4

原创 【贪心】ARC066E Addition and Subtraction Hard

分析:考场上看到一堆人写DP。。。。也许DP能过?其实。。。这题不就是个傻逼贪心嘛。。。。。首先,由于这题括号能叠加,所以有一个很简单的结论:整个式子最外层的1个括号最多只有一对。。。。。首先,括号的左端点的符号必须为负才有意义,在这样的条件下,如果括号内还存在一个符号,那么后面的值都可以为正。因为可以从那个负号开始,把后面一堆的正号都放在一个小的括号里。 如上图所示...

2018-08-07 20:41:25 399

原创 【仙人掌?】【并查集】HDU6350 Always Online

分析:考场上看都没看的题。。。但实现起来居然异常简单(相对于隔壁D题动态点分治而言)。。。。这题除了利用了仙人掌图的定义。。其它都和仙人掌没关系。。。先考虑一个相对简单的问题: 如果给的是棵树,怎么求答案?树的性质无非就是两点间路径唯一,也就是说,这里的“最大流”可以看作两点间路径上的边权最小值。从大到小加入边。每次加入时,因为两端点所在的联通块中,这条边边权一定是最...

2018-08-07 12:10:02 399

原创 【DP】HDU6357 Hills And Valleys

分析:真是石乐志的一道题目啊。。。。这题我考场上现推的DP和官方题解一点关系都没有。。。。还是说说官方题解的做法吧它把最长不下降子序列映射成两个序列的最长公共子序列问题 a序列就是给出的原序列 b序列是值域的序列 需要注意的是:b序列可以重复匹配一般的最长不下降子序列中,b序列就是:0,1,2,3,4,5,6,7,8,9 这样a和b的最长公共子序列就是一个最长不下降子序...

2018-08-07 09:48:34 1001 1

原创 【模拟】AtCoder2160 Manhattan Compass

分析:模拟实现题。。。把坐标轴转一下然后暴力求就行了。 转了一下坐标轴,问题就变成以p为中心,与新的坐标轴平行的,边长为2*d的正方形上的点能够与p相连。只不过有个技巧,如果使用并查集储存能到达哪些点,那么每次连的边应该从与上个点最后一个连的点开始即可。(没必要重复连边,因为那部分已经连上同一个点,所以只需要连一条就能把所有点连在一起)。这样一来,连边的次数均摊下来就是2*N次了。 ...

2018-08-06 07:59:12 217

原创 【数学】Codeforces1016G Appropriate Team

分析:其实如果把ai,x,yai,x,ya_i,x,y的范围调小一点,这就是道不折不扣的水题了。。。如果y%x!=0y%x!=0y\%x!=0那么一定无解。对x、yx、yx、y唯一分解,再对aiaia_i因数分解,分别考虑其作为gcd的一侧和作为lcm的一侧的答案。因为哪怕是1018101810^{18}、质因数种类也不会超过18个 当aiaia_i为gcd时,首先必须满足ai%...

2018-08-05 17:21:22 322

原创 【搜索】Codeforces1016F Road Projects

分析:额,可以把树中从1到n的那条链单独提出来, 显然,如果某个点延伸出去的点不小于了2个,那么肯定连那些点(蓝色边)是最优的。因为它不会对最短路造成影响。否则只能连红色边是最优的。显然,我们连接的点u、v是在最优条件下固定的。无非求出这两个点罢了。这两个点满足min{dist0−>u+distv−>n,distn−>u+distv−>0}min{dist...

2018-08-05 16:51:53 292

原创 【字符串】Atcoder 064F Rotated Palindromes

分析:显然,对于长度为N,字符种类为K的字符串,其回文串的个数为k⌈n2⌉k⌈n2⌉k^{\lceil \frac n 2\rceil}而且每个字符串都可以操作N次。但是会有重复。首先,对于一个字符串N,其最小循环节长度为c, 若c为奇数,那么有恰好有c个不同的字符串。 若c为偶数,那么有恰好c2c2\frac c 2个不同的字符串。所以只需要求最小循环节大小为c的字符串个数即...

2018-08-05 10:43:01 280

原创 【DP】【KMP】1015F Bracket Substring

题意:给出一个括号序列,求包含这个序列的长度为2*n括号匹配的个数。 |s|≤200|s|≤200|s|\leq 200 n≤100n≤100n\leq 100分析:这里不得不介绍一下BZOJ1009GT考试 这题是简化版本。很容易发现,这题就是GT问题的补集。首先,括号匹配的常规DP定义式:dp(i,j)dp(i,j)dp(i,j)表示长度为i,前缀和为j的括号匹配方案...

2018-08-02 17:14:20 289

IOI2011 Race 测试数据

IOI2011 Race的测试数据,数据有四个文件夹,所有输出数据全是"Correct"。每个输入数据最后一个值才是当前数据的答案。

2018-03-19

空空如也

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

TA关注的人

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