------------Contest-----------
文章平均质量分 84
alpc_qleonardo
这个作者很懒,什么都没留下…
展开
-
HDU 6203 ping ACM/ICPC 2017 Shenyang Online(LCA+贪心)
现在想来好简单,还是太菜了…… 大致题意:给你一个树形网络,然后再给出一些点对,意思是这些点对不能相互连通,然后问最少坏掉多少个点,能够满足这些不连通的性质。 一开始的想法是对于一个点对,然后把路径上所有的点都加一,然后对应删除点权最大的点,然后相应剪掉关联的点对造成的贡献。但是很明显,确定了点权最大的点,但是无法在可行的时间内确定该点关联哪些点对,于是就不知道该怎么做了。其实即使能够解决这个问题,也不一定能够对,因为当有多个点权都是最大的时候,并不是随便取就能满足最优值的。原创 2017-09-10 21:09:41 · 475 阅读 · 0 评论 -
UVa 7037 ACM/ICPC 2014 Xian(网络流+最大密度子图)
大致题意:给你一个1~n的排列,然后让你在这个排列中挑选任意个数字,使得这些数字组成的子串的逆序对数量除以总长最大。 首先,我们先来回顾一下逆序对怎么计算。正常来说,O(N^2),但是大大可以用一些数据结构来优化。无非就是,加入一个数字的时候统计在此之前比该数字大的数字有多少个,然后再把这个数字加入。这种单点修改,区间查询,用树状数组再好不过了。 但是对于这题来说,由于数字可以是任意取,即不一定是取连续的一段,所以在子串的选取上就不太好处理。如果说本题是要求子串必须是原排列的原创 2017-09-13 21:59:00 · 479 阅读 · 0 评论 -
HDU 5534 Partial Tree ACM/ICPC 2015 Changchun(完全背包)
有n个节点的树,但是还没有连边,现在要你去连边。然后对于一棵树,它的权值的计算与每个点的度有关,如果某个点的度是i,那么这个点的权值贡献就是f(i),其中f(1)~f(n-1)已经给出,然后问最后权值最大的树权值是多少。 看到这题的时候,我就感觉,不管怎么建树,只要能够保证每个点的度至少为一,那么总是存在一棵树满足你的度数分配要求。换句话说,我们要做的只是把所有的度分配下去,而且分配与点无关,即把度分为n个部分,每个部分不能为0。n-1条边就对应2n-2个度。 知道了,度数可原创 2017-09-08 09:05:37 · 293 阅读 · 0 评论 -
HDU 5536 Chip Factory ACM/ICPC 2015 Changchun(Trie)
人生第一道Trie…… 对于异或问题,用Trie求解最大最小值是一个常用套路。本来Trie不属于我的范畴的…… 本题求一个互不相同的i、j、k,使得最后结果(si+sj)^sk最大。暴力的方法枚举三个不同的i、j、k,据说现场赛这种O(N^3)的方法居然能过?!大力出奇迹啊…… 正解的话在模拟比赛中也想到了。一开始把所有的数字加入到Trie中,然后枚举i和j,把si和sj从Tire中删除,然后在Trie找与si+sj异或结果最大的数字,并返回结果,最后再把si原创 2017-09-08 09:19:31 · 368 阅读 · 0 评论 -
HDU 5449 Robot Dog ACM/ICPC 2015 Changchun Online(数学期望+LCA)
大致题意是,给你一棵n个节点的树,树上有k个宝石,编号0~k-1,现在从起点s放一条电子狗,电子狗在每个节点往各邻接点走的概率相同,问电子狗按编号顺序拿完所有宝石的期望步数。 这题的关键就是如何考虑这个期望步数,因为如果没有一个好的考虑方式,一直在乱走,情况很多无法求出期望。所以我们考虑,对于从一个点u到一个点v的期望步数,肯定与lca有关,大致可以分为,从u到lca的期望步数,再从lca到v的期望步数,两者之后即为答案。再进一步思考发现从父亲往儿子走和从儿子往父亲走是两种不同的情况。于是考原创 2017-09-07 08:42:00 · 724 阅读 · 0 评论 -
HDU 5445 Food Problem ACM/ICPC 2015 Changchun Online(二进制优化多重背包)
当时读题的时候就感觉这题很明显的多重背包,但是感觉条件好多就不敢想…… 其实,这个只要把问题拆成两个部分就行了。题意就是,每个点心有一定的能量、空间和数量,然后你的要求是使得总的大于p,然后你可以租一些车来运送这些点心,不同的车有不同的价格、容量和数量,问你在满足能量总数大于p的情况下,最小要花费多少。 确实如果看成一个整体去考虑,确实不好dp。于是拆成两个独立的问题,首先,总能量大于p最少需要多少空间,然后对于这个最少的空间,我又需要花费最小多少代价能够把这些东西装完。原创 2017-09-06 20:53:14 · 462 阅读 · 0 评论 -
HDU 5446 Unknown Treasure ACM/ICPC 2015 Changchun Online(Lucass+CRT)
可以说是一道裸题,求C(n,m)对p1*p2*……pn取模,这个n、m都可以到1e18级别,然后pi是1e5级别。 如果说只对一个质数p取模,而且质数不大,那么我们直接可以用Lucass定理拆分求组合数,这个我之前讲过了,我就不多说了。关键是,本题取模是对很多质数的乘积取模,故不能直接用Lucass定理。如果我们设最后答案为X,那么X=C(n,m)%(p1p2……pn)。根据同余的性质,我们可以有X%pi=C(n,m)%pi,这个很容易理解,于是我们X对于所有的pi的方程都写出来。则有:原创 2017-09-06 09:33:51 · 483 阅读 · 0 评论 -
HDU 5514 Frogs ACM/ICPC 2015 Shenyang(容斥原理)
有很多个青蛙在绕着一个圆圈跳,第i只青蛙每次能够跳ai步,然后起始点为0,问你把所有青蛙能够踩到的点的位置编号加起来结果是多少。 有了之前一道博弈题的经验,我们很快能够知道,如果一只青蛙每次跳的距离是ai,那么所有gcd(ai,m)的倍数的编号都能够被走到。于是就相当于求所有的gcd的倍数的和。问题很快就出现了,会出现重复。 计算倍数的和与计算倍数的个数很类似,于是很容易想到之前多校的TrickGCD那题,那题就是用莫比乌斯函数去容斥。但是这题m的范围很大,不可能求出莫比乌斯原创 2017-09-03 23:21:57 · 425 阅读 · 0 评论 -
HDU 3861 The King’s Problem(tarjan缩点+最小路径覆盖ISAP)
一道裸的图论题,算是长点见识。 首先相互连通的点要在同一部分,相当于缩点,用tarjan求连通分量缩点即可。 缩点之后就是一个DAG,在DAG上把所有的点分成最少的部分,然后每部分任意两点是单连通的。这就相当于是用最少的路径把所有的点给覆盖,最小路径覆盖问题。 关于DAG的最小路径覆盖问题,可以用二分图匹配的方法,把每一个点i分为i和i'。然后假设有边u->v,那么连边u->v'。然后跑二分图匹配,用n-最大匹配就是最小路径覆盖。 但是原创 2017-09-02 23:25:11 · 413 阅读 · 0 评论 -
2017多校训练赛第三场 HDU 6061(NTT模板)
题目容易理解,相当于求f(x-sigma(ai))。 难点在于卷积式子的推导和转换。具体见代码:原创 2017-08-25 22:50:25 · 720 阅读 · 0 评论 -
2017多校训练赛第九场 HDU 6162(LCA+Treap解法)
Ch’s giftTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1091Accepted Submission(s): 412Problem DescriptionMr. Cui is working off-cam...原创 2017-08-25 10:48:44 · 463 阅读 · 0 评论 -
2017多校训练赛第四场 HDU 6070(二分答案+线段树+扫描线)
一道常规题,还是那句话,比赛的时候就是蠢…… 本题是问,区间内 (题目数目)/(区间长度)的最小值。不巧的是,这一类问题比较就没有遇到了,所以说比较蠢,没有想到最优比例生成树这个经典模型。最优比例生成树是今年寒假的时候就见到的模型,大致就是每条边有两个权值ai和bi,然后要你求一棵生成树,使得最后树的 所有ai之和/所以bi之和最大或者最小。解决的方法就是用二分答案,我们假设这个最后的比例是k,为了方便表示我们把ai之和表示为sa,bi之和表示为sb,那么有:sa/sb=k。然后我们设最优解原创 2017-08-04 20:37:01 · 523 阅读 · 0 评论 -
2017多校训练赛第九场 HDU 6162(离线处理+树链剖分+线段树解法)
离线处理的题目千千万万,但很多时候还是能够让你耳目一新…… 没有修改操作,很显然可以离线水。但是与普通的lca不同,这题要求是求点权在一个区间内的两点路径权值和。加了个值域,就足以让人头疼。但是,万能的我(not)们(me)总能想到方法解决。对于一个询问(x,y,l,r),如果我们把它拆成(x,y,l-1)和(x,y,r)会发生什么呢?没错,如果我能够分别求出这两个,那么把他们两个相减不久可以得到结果了吗。但是,即使如此,还是有一个最大值的限制,不过不要忘了,我们可是在离线处理啊。每个点都有原创 2017-08-24 22:40:07 · 510 阅读 · 0 评论 -
HDU 5984 ACM-ICPC Regional QingDao(数学期望)
人生第一道数学期望程序,纪念一下…… 就是跟你一根棍子长度为L,你每次可以在任何一个点把它折断,同时拿走左边那段,对右边那段棍子继续重复刚刚的动作,知道剩下的棍子的长度小于d。然后问你在根除L和d的情况下,期望多少次能够使得不能继续把棍子截断。 本来好好的一道数学题,被大部分人做成了找规律的玄学题……鄙视(╬▔皿▔)凸找规律的人……原创 2017-08-03 09:54:17 · 1308 阅读 · 0 评论 -
HDU 5988 ACM-ICPC Regional QingDao(最小费用最大流)
去年青岛站regional原题,在两个人的情况下做了四道题,按照现场排名大概六十多…… 我记得小肥羊学长和我说过,regional很喜欢考网络流的题目。然后做了原题,果不其然。这道题就是一个网络流的题目,而且个人感觉比较裸。题目大致意思就是,在acm比赛中,选手要在比赛中吃饭,然后在某些供应点有一定数量的人还有一定数量的饭。当然了,可能出现供不应求的情况,此时的话选手就得走到别的供应点去拿饭吃。因此还给出了一些路径,对应路径还有容量,但是这路上会有其他选手的电脑,所以走的时候每一条路都会有一原创 2017-08-03 09:29:01 · 678 阅读 · 0 评论 -
2017多校训练赛第一场 HDU 6042 (母函数)
人生第一道母函数的题目,纪念一下…… 我就稍微说说母函数吧。母函数分为普通型母函数和指数型母函数,两个分别对应解决组合问题和排列问题。关于它的用法表示,这个自己看看百度百科吧,个人感觉百科已经说得很清楚了。大致意思就是可以通过母函数某一次项的系数来确定结果。 然后这题的话,总共有n个物品,第i个物品的体积为i,数量为ai。那么物品i对应的母函数就是1+x^i+x^2i+x^3i+……+x^ai。剩下的直接就看官方题解吧,够清楚了……原创 2017-08-02 09:57:51 · 1533 阅读 · 0 评论 -
2017多校训练赛第二场 HDU 6052(统计+思维)
又是一道统计的题目…… 题目虽说是统计期望,但其实就是用所有矩形的权值和除以总的矩形个数。至于总的矩形个数,很容易求,对于一个点(i,j),以它为右下角的矩形个数就是i*j,由此总的矩形个数就是sigma(sigma(i*j))1<=i<=n,1<=j<=m。原创 2017-07-29 18:31:53 · 584 阅读 · 0 评论 -
2017多校训练赛第一场 HDU 6041 I Curse Myself(仙人掌图生成树)
现在才来补这道题,是不是有点太慢了…… 题意比较简单,给你一幅图,让你求这幅图的生成树的带权值和,即最小生成树乘1,次小生成树乘2,次次小生成树乘3……然后k可以很大,图的点只有1000个。还有特别重要的条件,每一条边都最多在一个简单环中,所以说图是一个仙人掌图。原创 2017-07-29 13:47:27 · 595 阅读 · 0 评论 -
2017多校训练赛第二场 HDU 6053 TrickGCD(容斥原理/莫比乌斯反演)
最后五分钟A了这题……惊天地泣鬼神啊……一波三折,真是刺激! 最初的想法,由于gcd是大于2的,然后gcd肯定只和质数有关,所以直接枚举,以每一个质数作为gcd,然后分别求出每个质数作为gcd的方案数加起来即可,然后对于每一位,用a[i]/gcd,就可以得到该位置的可选方案数,然后每位乘起来即可。可是事实并没有那么简单,很容易发现,计算完质数2、3的方案数后,所有6的倍数的方案都被重复计算了一次,类似的重复还有很多。怎么解决这个问题呢?原创 2017-07-27 20:28:44 · 916 阅读 · 0 评论 -
CSU 2131:突然的灵光 (三分法)
一个人群挑系列,战绩居然还不错,A了4题,放在现场也能Rank 3,大佬都没打? 这题的话当时看题懵逼,看着好简单,却不知道怎么下手?看到有人14min就A了,心里挺着急的,还好最后冷静下来,也想到了解法。原创 2017-06-04 21:34:20 · 565 阅读 · 0 评论 -
CSU 1919:不醉不归(神奇的dp)
首先,膜石文斌大佬orz…… 此题第一眼望去极像网络流……如果没有再来一瓶的话,直接源点连每个架子的第一瓶酒,然后同一个架子相邻两个酒瓶之间连边,费用为酒瓶质量,流量全部设置为无穷大,最后所有的酒瓶也都连上汇点,流量为1,汇点再连上超级汇点,流量设置为拥有的钱的个数K。这样用流量限制来控制钱,费用来控制质量,跑一边最大费用最大流即可得到所能得到的最大质量。原创 2017-05-10 15:05:13 · 840 阅读 · 2 评论 -
CSU 1891: Full Tank?(dijkstra+priority_queue or dp?)
1891: Full Tank? Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 57 Solved: 11 DescriptionAfter going through the receipts from your原创 2017-04-27 18:32:55 · 738 阅读 · 0 评论 -
CSU 1842: Fake scoreboard dinic(2010 Southwestern European Regional Contest)
1842: Fake scoreboardSubmit Page Summary Time Limit: 10 Sec Memory Limit: 128 Mb Submitted: 43 Solved: 12 Description As you know, after the award ceremo原创 2017-03-30 21:45:38 · 565 阅读 · 0 评论 -
2-SAT 问题回顾(CSU 1844)
CSU 1844:Palindromic DNA (2010 Southwestern European Regional Contest)原创 2017-03-30 17:27:15 · 279 阅读 · 0 评论 -
CSU 1848:3-sided dice 高斯消元(2010 Southwestern European Regional Contest)
1848: 3-sided dice Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 42 Solved: 5 Description Just like every fall, the organizers of th原创 2017-03-21 23:45:34 · 524 阅读 · 0 评论 -
CSU 1845:Sensor Network. Link Cut Tree 解法(2010 Southwestern European Regional Contest)
目前为止比得最失败的一场多校赛,所有人的成绩都不好……果然是WF大佬出的题目…… 题目大意:给出很多个点,然后有很多个带权值的边,要求求一棵生成树,使得这棵树中边权值的极差最小,并输出这个极差。 根据贪心的思想,我们首先要想kruskal那样先对所有边按照边权值来排序,排序之后,连续的几条边如果构成生成树,那么这棵生成树的极差就是备选解。即不用考虑非连续的情况,因为非连续情况一定有比他更优的解。这样,我们只需要枚举这个连续的区间了。我们设定一个集合f,边按照从小到大的顺序一次原创 2017-03-21 15:44:10 · 698 阅读 · 0 评论 -
CSU 1838: Water Pump(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
ACM/ICPC 2017湖南多校赛第二场K题,作为负责人的我第一次上台讲题(小激动)……我就按照我ppt的来讲吧……原创 2017-03-14 15:30:33 · 1019 阅读 · 0 评论 -
CSU 1831 Found(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
ACM-ICPC Asia Thailand National On-Site Programming Contest 2015) D题原创 2017-03-17 15:36:02 · 1025 阅读 · 0 评论 -
CSU 1839: Who Feels Lucky(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
还是多校赛的题,当时考虑不周全,然后,赛后有人问Rank1的队怎么做的,然后她发了一张图,所有人瞬间秒懂(学姐经验老道果然owesome!),这是一个非常非常非常巧妙的模型,非常的美妙!原创 2017-03-16 10:20:23 · 473 阅读 · 0 评论 -
HDU 5528 Count a*b ACM/ICPC 2015 Changchun(数论)
非常棒的一道数论题,而且还是一道金牌题,A了几乎就是金牌…… 至于具体推到姿势,由于符号难写,我就用某个大神的手迹来说明吧,大神写的真的很好。原文地址:http://blog.csdn.net/firstlucker/article/details/49336427 下面,我解释一下画横线那一步。之前已经是求到了sigma(gcd(a,x)),相当于1~x中所有数字与x的gcd之和。BTW,关于这个可以再说一篇文章,P原创 2017-09-08 21:22:56 · 519 阅读 · 0 评论 -
HDU 5890 Eighty seven ACM/ICPC 2015 Shenyang Online(DP+bitset优化)
说实话,人生第一次用bitset。 也不是特别为了练bitset,反正省赛的时候因为没有想到用bitset差点哭出来…… 这题就是,有n张卡片,卡片上面有一些数字,然后每次你抽出最多三张牌不能用,然后问是否有可能从n张牌中挑10张牌,使得他们的总和为87。 首先,我们考虑正常的dp,我们考虑dp[i][j][x]表示取了考虑了前i个数字,从中取j个数字,和为x是否可能。显然有转移方程dp[i][j][x]=dp[i-1][j-1][x-a[i]],然后这之中的原创 2017-09-05 23:08:35 · 384 阅读 · 0 评论 -
2017多校训练赛第二场 HDU 6051 (数论)——By alpc_wh
If the starlight never fadeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 122 Accepted Submission(s): 65Problem DescriptionWe will gi...原创 2017-07-29 23:00:53 · 890 阅读 · 0 评论 -
HDU 6212 Zuma ACM/ICPC 2017 Qingdao Online(区间dp)
Zuma游戏,相信大家都玩过,但是可能不知道它的名字罢了。 大致题意是每个珠子只有黑白两种颜色(其实多一点颜色也无所谓),然后一旦有三个及以上的同色珠子连在一起,那么就会自动消除同色的珠子。数据保证一开始没有三个连续的同色珠子,然后你每次可以选择一个颜色的珠子发射到任意位置,如果出现三同色那么消除,并且会发生连锁反应,问最后至少需要发射几个珠子才能使得所有珠子都被删除。 赛后才听说这是一道原题,POJ 2915,而且是弱化版本,那题是连续M个同色才能删除,而且不保证一开始没有原创 2017-09-18 18:14:05 · 1376 阅读 · 0 评论 -
2017多校训练赛第四场 HDU 6078 Wavel Sequence(dp+优化)
第四场多校,到现在才补…… 又是类似最长公共子串类型的dp。大致题意是给你两个序列a和b,然后问你能够选出多少个f和g映射,使得a[fi]==b[fi],而且a[f1]、a[f2]、a[f3]……a[fn]是波浪序列。 很容易想到的一个递推是dp[i][j][t]=Σdp[x][y][t^1](a[i]==b[j]且a[x]==b[y],同时满足波浪性),其中dp[i][j][t]表示序列a取到第i位,序列b取到第j位,而且当前是波峰(t==1)或者波谷(t==0)时的方案数原创 2017-09-19 19:44:18 · 514 阅读 · 0 评论 -
2017多校训练赛第九场 HDU 6170 Two String(dp)
最近发现,如果dp好能够快速解决很多问题,于是来补一波…… 这个题其实有点类似最长公共子串的dp,但是又略微有点不同。我们还是一样,设dp[i][j]表示第一个串取前i位,第二个串取前j位是否能够完成匹配。根据题意,如果第i位和第j位相等或者第j位为‘.',那么可以直接从前一位转移过来,有转移方程:dp[i][j]=dp[i-1][j-1]。 然后就是重点讨论一下当第j位为’*‘的时候。这个符号表示它前一位可以重复n次,这个n可以是0,而当n为0的时候相当于去掉两位(第j位和原创 2017-09-18 22:59:46 · 451 阅读 · 0 评论 -
HDU 6200 mustedge ACM/ICPC 2017 Shenyang Online(LCT动态缩点)
说实话,之前一直觉得LCT的用法大致都知道了,比完赛才发现LCT还有这种操作…… 大致题意:给你一个无向图,初始时没有重边和自环,然后可以支持不断的加边和询问操作。每次询问时,输出u到v的所有路径边集的交集大小。 所谓边集交集大小,即如果有u、v有两条完全不同的路径可以到达,那么这个交集大小就是0。如果有重合的部分,那么就是重合的边的数量。其实,这个交集如果没有考虑好确实也不知道该怎么处理。 这里我们先考虑两点之间若只有一条路径的情况,此时结果就是点的数量减去原创 2017-09-12 19:21:56 · 607 阅读 · 0 评论 -
HDU 4035 Maze(数学期望)
大致题意:有一个n个房间的迷宫,一开始你在1号房间,然后有n-1条通道,走到每一个房间都有一定的概率被杀死,或者在这个房间找到出口。然后每次通向相邻的通道有是等概率的。而且每次被杀死之后就会重新回到1号房间,重新走。问你从1号房间开始,直到走出这个迷宫,期望要走多少个这样的通道。 看到这题的时候联想到15年长春regional的机器狗那题,同样也是一个在树上求期望的题目。与是仿照那题一样的分别求从根到任意点和从任意点到根的期望。但是在计算的过程中一环套一环实在比较难以实现。于是看了Kuang原创 2017-10-07 08:41:34 · 396 阅读 · 0 评论 -
HDU 6006 Engineer Assignment(状态压缩dp)
看到数据范围这么的小,想了想搜索还是差了一点,于是就只能是状压了…… 大致题意是,有n个项目,每个项目都涉及到一些领域,然后有m个专家,每个专家也都精通一些领域。规定每个专家只能参与一个项目,可以在一个项目中负责多个领域,然后每个项目一定得保证所有的领域至少都有一个人精通才能完成。问最后最多能够完成多少个项目。 我们发现专家总共只有10个,然后项目也最多只有10个,所以我们可以定义dp[i][s]表示对于前i个项目,我选用专家的状态为s的时候最多能够完成的项目个数。这里s是一原创 2017-10-07 23:35:47 · 441 阅读 · 0 评论 -
HDU 4799 LIKE vs CANDLE ACM/ICPC 2013 Changsha(树形dp)
长沙居然也举办过regional…… 大致题意是,有一个原始的微博,然后大家都去转发它,转发的时候用LIKE和CANDLE分别表示支持和不支持。然后每个人都可以转发其他的微博(可以是原始的也可以是转发的),每个微博都有一定的价值,要计算支持的价值与不支持的价值差最大是多少。你可以选择花X价值去反转一些人的态度,每次反转之后,相应的所有转发过这个人微博的人的态度也会跟着反转。但是有一些微博已经被其他人反转过了,那么你要再次反转它得花价值Y。然后问最后价值差最大是多少。 转换过来原创 2017-09-21 18:35:27 · 396 阅读 · 0 评论 -
HDU 4794 Arnold ACM/ICPC 2013 Changsha(二次剩余+数论)
看了这么久,居然不是找规律的题目…… 大致题意是给你一个N*N的矩阵,然后告诉你阿诺德变换,即原来坐标为(x,y)的点变换一次后变成((x+y)%N,(x+2y)%N)。然后告诉你阿诺德变换一定能够通过有限次变换之后变换回原本的矩阵,然后让你求这个周期。 我们用(x,y)的形式表示每一个坐标,写出经过阿诺德变换之后的坐标。我们发现,对于坐标(x,y),经过有阿诺德变换之后,在模n的剩余系下可以写成(fib(n)x+fib(n+1)y,fib(n+1)x+fib(n+2)y)的原创 2017-09-22 08:50:04 · 972 阅读 · 0 评论