自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

alpc_qleonardo

半退役状态

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

原创 ZOJ 3981 Balloon Robot CCPC2017 Qinhuangdao(推公式+离线处理)

现在回想起来,真的不应该去用C++强撸那道应该用Java做的大整数的题目了……        大致题意就是,有一个发气球的机器,然后有n个人,m个座位排成了一个圆圈,总共AC了p道题目,然后机器人每次从某一个位置开始移动,每次花1个时间单位移动一格。每次机器人走到一个人旁边,它就会把这个人已经A的所有题目对应的气球发给他。对于每一道题目,产生的不高兴值是发气球的时间,减去对应A题的时间。然后问,如何选取这个出发点使得总的不高兴值最大。        首先,我们考虑如果发气球机器的起始位置是x,那么对于一

2017-10-31 20:56:55 597

原创 HDU 5542 The Battle of Chibi(dp+树状数组)

按照惯例,比赛期间应该停止刷题……        但是经过上次的失败经历我发现,手感这种东西还是很重要的,不然关键时候卡题……        于是今晚重新刷一套CCPC,结果发现自己状态神勇,几乎是自己一个人在3小时10分钟内A了6题……虽说水题有好几道,但怎么说至少没有卡手,后面的这两道稍微算上中档题的dp也几乎是一次过样例。        废话说多了,看看这道题。就是给你一个序列,问你长度为m的严格上升序列总共有多少种。方案数问题,dp也是很明显的,有转移方程dp[i][j]=Σdp[k][j-1

2017-10-26 23:15:45 280

原创 HDU 5943 Kingdom of Obsession(二分图匹配+数论)

大致题意是给你从n开始的s个连续的数字,例如n=15,s=3,那么对应16、17、18三个数字。然后,每个数字的可行放法是放在它的因子对应的位置上,例如8可以放到第1、2、4、8个位置上。问你是否存在一种摆法使得这s个数字能够合法的排成从1~s的一列。 一开始觉得是一个找规律的题目,但是仔细分析之后可以发现这之中还是可以体现一些算法的。对于一个数字i它可以放到它的约数对应的位置上,然后每个位置和数字一一对应,很容易发现这是一个匹配问题。如果数字能放到1~s的某一个位置,那么就连一条边,最后跑

2017-10-16 07:52:29 294

原创 HDU 5942 Just a Math Problem(数论+容斥原理)

很裸的一道数论题,但是故事还是不少的。        先说说自己脑洞大开的想法。首先,说说自己脑洞大开的思路。根据题目的公式,我们很容易发现,很多数字的g(i)函数值其实是相等的,所以说我们统计的时候就可以统计每一个g(i)数值的贡献。相当于,我们就要求出有多少中质数的组合,然后对于每一种质数的组合,我们只需要计算有多少个数字拥有这样的组合形式。由于1e12的数据范围,最多含有11个质数,所以我们可以用dfs枚举所有的质数组合,紧接着再枚举每个质数的次方。在15s的时间内,对于sqrt(n)的小质数来说,

2017-10-15 00:01:46 611

原创 51Nod 1499 图(最小割)

中文题。        说实话,确实没有想到这题可以用最小割来玩……        看了题解才知道,确实是有那么点像论文里面最大最小模型对应的最小割。        先说说具体做法吧。首先,对于所有的点i,我都向所有的其他点j连边,流量为|i-j|。然后,根据原图中的连通情况,对于任意两个点u,v,若存在边u->v,那么连边s->u和s->v流量都为|u-v|,反之则连边u->t和v->t流量都为|u-v|。最后的(ΣΣ|i-j|-mincut)/2就是最后结果。        下面,我就自己的理解

2017-10-13 09:58:20 395

原创 HDU 4336 Card Collector(状态压缩dp+概率dp)

Card CollectorTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4693    Accepted Submission(s): 2380Special JudgeProblem DescriptionIn your...

2017-10-12 19:13:13 372

原创 HDU 6003 Problem Buyer(鸽笼原理)

别看这题过的人少,但是确实是一道典型的思维题……        大致题意是,首先给你一个题库,告诉你题库里面每一个题目的难度的范围。然后你要出m个题目,给你每一个题目的难度系数,要求你从题库中选取对应符合要求的题目,即要求的难度系数在题库中题的难度范围之内。现在,问你如果我要任意在题库中选取k个题目,最后都能从这选出的k个中跳出满足条件的不同的m个问题,问这个最小的k是多少,如果不存在则输出IMPOSSIBLE!        先说一下自己虽然可能会超时,但是很大胆的想法。首先,判断能否取出m个问题,我

2017-10-10 22:37:26 1281

原创 HDU 4089 Activation(概率dp)

ActivationTime Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4222    Accepted Submission(s): 1411Problem DescriptionAfter 4 years' waiting...

2017-10-09 23:21:28 295

原创 HDU 5661 Claris and XOR(贪心)

现在发现了,一般和异或求最值有关的题目都是贪心。这题,还有16年CCPC Final的题等。        首先,既然是贪心,我们就是得保证,在二进制下,从高到低,每一位都尽量的取1。于是,我们可以根据两个范围分情况讨论。        对于第i位,如果两对端点的相应位都不一样,即x和y的第i位都是既可以取1也可以取0,那么后面的位就可以不用考虑了,直接全部取1即可。至于为什么,就是说如果x取了下界确定的0,那么对于后面的所有位,相当于可以不用考虑上界了,可以全部取1;而对应y取就要取上界确定的1,这样

2017-10-08 23:40:45 397

原创 HDU 6006 Engineer Assignment(状态压缩dp)

看到数据范围这么的小,想了想搜索还是差了一点,于是就只能是状压了……        大致题意是,有n个项目,每个项目都涉及到一些领域,然后有m个专家,每个专家也都精通一些领域。规定每个专家只能参与一个项目,可以在一个项目中负责多个领域,然后每个项目一定得保证所有的领域至少都有一个人精通才能完成。问最后最多能够完成多少个项目。        我们发现专家总共只有10个,然后项目也最多只有10个,所以我们可以定义dp[i][s]表示对于前i个项目,我选用专家的状态为s的时候最多能够完成的项目个数。这里s是一

2017-10-07 23:35:47 435

原创 HDU 6005 Pandaland 最小环(dijkstra+剪枝)

大致题意就是,给你一个图,然后让你在里面找一个最小的环。 说到找最小环,我很惊叹网上居然没有一个很好的算法。见到的算法都是用floyd的O(N^3)或者dijkstra的O(N^2logN)。但是这些显然都不能满足这题的要求。然后其实本题还加了一个条件,就是一定是一个平面图。一开始还拼命地去想平面图的性质,现在发现其实这些都无所谓。 这题,只要你联想到之前多校赛的第k小生成树的和,你就会知道如何下手。那题利用树边和非树边进行修改生成树和成环。这题也可以类似。由于要求是最小

2017-10-07 23:33:10 1224 6

原创 HDU 4035 Maze(数学期望)

大致题意:有一个n个房间的迷宫,一开始你在1号房间,然后有n-1条通道,走到每一个房间都有一定的概率被杀死,或者在这个房间找到出口。然后每次通向相邻的通道有是等概率的。而且每次被杀死之后就会重新回到1号房间,重新走。问你从1号房间开始,直到走出这个迷宫,期望要走多少个这样的通道。        看到这题的时候联想到15年长春regional的机器狗那题,同样也是一个在树上求期望的题目。与是仿照那题一样的分别求从根到任意点和从任意点到根的期望。但是在计算的过程中一环套一环实在比较难以实现。于是看了Kuang

2017-10-07 08:41:34 393

原创 HDU 5970 最大公约数(找规律)

最讨厌找规律的题目了,本来还想好好做一道数论题。        一开始,我自己假设先不考虑c。那么就变成了ΣΣi/gcd*j/gcd=Σj/gcd*Σi/gcd,如此一来,由于m比较小,我就可以枚举j,然后对应求出j所有的因子作为gcd,gcd确定之后再根据容斥来统计i/gcd的和。具体统计方法和15年沈阳regional的frog那题类似,用n的因子来进行暴力的容斥。但是很显然这样子很难把c的影响带进来,而且这里的c还要向下取整,更加的麻烦。        于是打表找规律,首先很容易知道f(i,j)=

2017-10-06 16:21:25 924

原创 HDU 5967 小R与手机(Link Cut Tree 基环树森林)

基环树森林……        当时还没有意识到是这个东西,直到WA了一发之后。联系起之前做的那道BZOJ 2759,这两题其实很是相似。        在此我就再总结一下如何处理这种基环树森林。首先,不用说的,用LCT。然后我们连接的时候要提前判断两点是否在同根树中。如果在的话,说明再连上这条边之后就会形成一个环,而实际上为了保持树的结构,我们并不能真的去相连,用一个数组表示虚边。当我们断开或者改变某个点的前驱之后,这个保存的虚边就可以发挥作用了。如果切断的点的实根(非splay根)含有虚边,那么切断的

2017-10-06 10:15:51 640

原创 HDU 5965 扫雷(dp/状态压缩dp)

中文题。        有个3*N的地图,告诉你第二行的情况,问你有多少种情况放地雷。        自己自始至终的想法:状态压缩。由于任意一个第二行格子的情况只与前一个的格子控制范围的后四个有关,所以我么可以用一个4位的二进制数来表示某个位置是否放了地雷。定义dp[i][j]表示处理到第i列,且第i列所控制的后四个格子的状态是j的时候的方案数。那么就可以很自然的得到状态转移方程:dp[i][j]=Σdp[i-1][x],其中这个x表示上一个可以合法转移的状态。这里关于这个状态的枚举,我们可以枚举上一个

2017-10-05 18:49:27 409

原创 CodeForces 865D Buy Low Sell High(思维)

我的想法,贪心。首先给那些价格低的点从左往右分配一个卖出点,然后用线段树维护。然而WA……因为后来发现很显然,如果我一味的用最小匹配最大,有可能导致一些点找不到匹配的卖出点,而实际上最优解可能这个点可以匹配卖出点。这样就比较麻烦了。 直到看了看其他dalao的代码。一个化整为零的方法。对于每一个价格,我不管具体方案是什么,我只要能计算出最后的最优解即可。那么我们可以先强行在所有时刻买入,然后对应每个时刻在优先队列里面加入两个价值的相反数。对于每一个时刻,我选取一个队列中最大的负数相加。如果

2017-10-04 21:00:14 2584 2

原创 BZOJ 1492 [NOI2007]货币兑换Cash(斜率优化dp+splay维护凸壳)

中文题,我就不复述题意了……        首先,由于这个买入和卖出并没有中间商赚取差价(吐槽一下),所以说每一天结束之后的价值既可以用钱来表示也可以用金券来表示。那么这样的话,我们用f[i]表示第i天的时候最多能够得到的钱,x[j]表示第j天的时候把钱换为最多的A的数量,y[j]表示对应的b的数量。那么有转移方程f[i]=max(f[i-1],x[j]*A[i]+y[j]*B[i]),直接枚举复杂度为O(N^2)。显然对于最大可达10^5的数据来说是不够的。        于是我们很容易去想到斜率优化

2017-10-03 23:09:40 473

原创 CodeForces 858D Polycarp's phone book(Trie)

大致题意,给出很多个号码,然后要你对每一个号码找出一个长度最短的识别码,即长度最短的同时,只有那一个电话包含这个识别码。        这里队友机智无比,直接想到用字典树搞。由于号码最多只有10位,所以对于每一个号码,在字典树里面分别加入第0位~最后一位,第1位~最后一位,第2位~最后一位……这样解决了字典树只能一定要从头开始的缺陷。如此一来对于一个号码的任意一个小段,我们都可以对应在字典树中找到一个从根开始的路径与之对应。那么我们要做的就是统计一直到任意小段的最后一位的节点,有多少个这样的子串包含这个小

2017-10-02 18:56:50 507

原创 FFT/NTT 总结(HDU 4656)

FFT/NTT可以说是非常有名的两个东西,从通信到数学再到计算机领域…… 然后我本人接触这个东西也就是在今年暑假的时候。其实呢,到现在,它的变化本质和算法的实现方法我还并不是很了解。但是呢,作为一个ACM选手,能够做到会熟练的运用算法模板,懂得一些变通也就差不多能够算是合格了。而且,FFT/NTT本身也没什么,就是套用模板即可。 下面我就具体说说...

2017-10-02 13:01:48 1394 3

原创 CodeForces 852B Neural Network country(dp+矩阵快速优化)

好久没有遇到这么单纯的矩阵快速幂的题目。        大致题意就是,给你一个网络,这个网络分层,除了源汇直接相连的点以外,其余所有的层都是相同的。然后问你,从源点出发到汇点,路径权值和为某个特定的数字M的倍数的方案有多少种。        事实证明,题目的数据范围确实是一个突破口。本题给出M的范围是100,可以说就是突破口。经过长期的做题,很容易知道这里直接用当前花费在M下的剩余系来表示状态即可,然后可以有前一层的状态转移到后一层。在不考虑层数和每一层点数的限制下,我们可以有如下状态转移方程dp[i]

2017-10-01 08:35:11 592

空空如也

空空如也

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

TA关注的人

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