自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 拓扑(有向图判断环)—— HDU 5961

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5961题意:中文题意见链接分析:因为 P∪QP\cup Q 为完全图。则如果 在 PP 中,如果存在 a→ba \rightarrow b 和 b→cb \rightarrow c ,而不存在 a→ca \rightarrow c 的话,那么 a—ca — c 这条边一定存在于 QQ 中,不管指向

2017-04-30 21:50:05 574

原创 背包——AtCoder Regular Contest 073 #D

题目链接:http://arc073.contest.atcoder.jp/tasks/arc073_b题意:01背包的题意,但是物品价值为1~1E7,物品质量为1~1E9,但是每个物品的质量范围为 [w1,w1+3][w_1,w_1+3] 。分析: 虽然物品质量很大,但是都是在 [w1,w1+3][w_1,w_1+3] 以内,所以我们很容易就能想到把 w1w_1 都提取出来。那么原来01背包的

2017-04-29 23:46:35 511

原创 离散化+multiset —— HDU 4400

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4400题意:给出N个地雷的坐标和其爆炸范围,使用曼哈顿距离计算。给出M个查询,每个查询引爆第 ii 个地雷,求这次引爆最终会导致多少个地雷爆炸,已经爆炸的地雷不会再次爆炸。分析:标程是KD-Tree,但是高效的STL使得我们可以直接暴力做。首先因为,坐标轴的范围很大,但是地雷个数较少,所以我们可以选择

2017-04-29 19:50:55 463

原创 生成树计数——SPOJ HIGH

题目链接:http://www.spoj.com/problems/HIGH/题意:给出一个无向图(权值为1),求有多少个生成树分析:这个祭出Matrix-Tree来,对于原图的联通矩阵,计算其Kirchhoff矩阵,然后求出其n-1大小的子矩阵的行列式,就是原图生成树的个数了。具体证明过程请看07年国家集训队论文AC代码:/*********************************

2017-04-29 16:32:08 427

原创 贪心——HDU 4415

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4415题意: 你有一把耐久度为 mm 的武器,你要去杀 nn 个敌人,每个敌人需要耗费 AiA_i 的耐久度,但会掉落一把可以击杀另外 BiB_i 个敌人的武器,求用最小花费最多能击杀多少个敌人分析:首先我们把敌人分成两类,一类是武器有作用的(BiB_i 不为0),一类是武器无用的(BiB_i 为0

2017-04-29 13:17:43 385

原创 树状数组 or 归并树 —— HDU 4417

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417题意:给出一个数组,每次查询区间 [li,ri][l_i,r_i] 内大于等于 hih_i 的数的个数分析:解法1:我们可以离线所有查询,然后把查询按照 hih_i从小到大排序,并且把原来的数组也从小到大排序,从第一个元素开始,判断是否满足当前查询的条件,满足在树状数组中给对应元素的原来位置赋

2017-04-29 12:45:24 423

原创 容斥——HDU 4407

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4407题意:见链接分析:因为区间是[1,N],所以我们可以先用求和公式得到和,然后利用容斥定理找出区间内并且与p不互质的数的和。再做差,就可以得到区间内与p互质的数的和。tips:对于一个区间[1, x],x/v表示区间内能被v整除的数的个数。所以对于p的一个质因子组合v,我们可以直接求出区间[x

2017-04-23 11:17:51 311

原创 数学——CodeForces #410 div.2

题目链接: http://codeforces.com/contest/798/problem/C题目:见链接分析:我们可以发现,对于相邻的两个奇数,我们对前一个做操作,会使得他们变成两个偶数,即gcd 最小为 2;再者,对于任意一个数,做2遍操作后,它和它后面的元素都会变为原来的2倍(符号不管),所以我们对于单个的奇数,做2次操作,就会也会使得gcd最小为2。这样得到的操作次数一定是最小的。首

2017-04-22 10:01:10 315

原创 DP——HDU 4571

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4571题意:给出一个无向图(N个点,M条边,有重边),每条边有一个花费,每个节点有一个花费和一个价值(如果想获得价值,则必须付出花费,否则可以不用付出花费),求从点S到点E,在总花费不超过T的情况下的最大价值是多少分析:我们假设DP[i][j]表示从起始点到i点(并参观了i点)所达到的最大满意度。

2017-04-20 15:30:29 374

原创 暴力——HDU 4569

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4569分析:如果 f(x)%(p2)=0 f(x)\%(p^2)=0\ 那么一定有 f(x)%p=0  f(x)\%p=0\ ,如果后者不成立,那么前者一定不成立;如果f(x)%p=0f(x)\% p=0 那么一定有f(x+p)%p=0 f(x+p)\%p=0 。AC 代码:/**********

2017-04-16 20:11:06 456

原创 贪心——HDU 4572

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4572题意:给出M行瓶子,每行N个且高度都为这一行的序号(1~M),求重新排列瓶子的位置,使得所有行里,最大高度和最小。排列的方式必须满足: 同一列不许有重复;且同一行相邻两个瓶子高度差不超过1分析:这题初看很懵逼,但其实我们可以把问题转换成给出M个罐子,每次往这些罐子里扔M个硬币,面值为1~M,每

2017-04-16 19:59:36 396

原创 矩阵快速幂——HDU 4565

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565题意:给出 a,b,n,m 0<a,m<215,(a−1)2<b<a2,0<b,n<231a,b,n,m \ 0< a, m < 2^{15}, (a-1)^2< b < a^2, 0 < b, n < 2^{31} 求解: 分析:直接怼肯定会烂掉,但是好像也没有什么大浮点数的快速幂。我尝试过用

2017-04-16 19:47:54 385

原创 Tarjan求割点——HDU 4587

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4587题意:从一个无向图中删除任意两个点,求能得到的连通分量的最大个数分析:想要增加联通分量的个数,我们肯定想到是去删除割点。但是题中要删除2个点,所以我们第一次删除点时,不应该只奔着割点去,因为有可能删除一些非割点能够创造出新的割点,所以第一次删点应该枚举每一个点,第二次删除点就可以在删除第一个点

2017-04-16 11:06:12 476

原创 同余——HDU 4596

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4596题意:给出N组数据X,Y,Z,判断是否存在两组数据,使得存在某一个数ID,使得 ID%X1=Y1||Z1 andID%X2=Y2||Z2 ID\%X_1=Y_1||Z_1 \ and ID\%X_2 = Y_2||Z_2 ;分析:那么我们可以求出X1,X2X1,X_2的GCDGCD后,判Y1,Z

2017-04-15 20:48:17 836

原创 可持久化Treap——SPOJ ADALIST

题目链接:http://www.spoj.com/problems/ADALIST/题意:有3种操作,要求能够在第K个位置加入元素,删除第K个位置的元素,输出第K个位置的元素分析:这道题可以使用vector或者dequeue暴力跑过,还可以用更省时的Treap来做。复习一下可持久化Treap:插入:在第K位置split,合并三棵Treap删除:在第K位置split,再split包含第K个元素的

2017-04-12 22:54:14 581

原创 贪心+树剖(假)—— HDU 5242

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5242题意: 给出一颗有根树,每个节点有一个权值,每个权值只可以被获取一次,从根节点走到任意一个叶子节点为完成一次游戏,问完成K次游戏能获得的最大权值为多少。分析:这题用到了一点树剖的思想:我们从根节点出发做一次深搜,在回溯的时候,在每个节点处保存最大权值的子树的indexindex,并保存这个最大

2017-04-09 10:40:29 448

原创 概率DP——HDU 5236

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5236题意:现在有一个特殊的键盘,在 i+0.1i+0.1 秒可以输入一个数,在 i+0.9i+0.9 秒有 pp 的概率可能崩溃导致未保存的字符全部丢失,在ii秒可以选择保存,每次保存需要按下 xx 个键, 求输入N个字符在最优策略的情况下的期望按键次数。分析: 我们假设输入 ii 个字符的期望按键

2017-04-08 21:05:44 538

原创 拓扑排序——Codeforces Round #290 (Div. 2) C. Fox And Names

题目链接:http://codeforces.com/contest/510/problem/C题意:见链接分析:对于给出的N个字符串,我们按顺序判断相邻2个字符串,如果前者比后者长,肯定不构成字典序。否则按第一对不相等的字符建有向边。构图结束后,跑一遍拓扑排序,如果得到的字符数最后得到字符数小于26则不构成字典序。AC代码:/********************************

2017-04-04 21:47:58 336

原创 二分——POJ 3579 Median

题目链接:http://poj.org/problem?id=3579题意:给出N个数,求这个N个数的所有间隔中的中位数,如果有偶数个,则取中间两个中的前面那一个。分析:因为N的取值最大为1E5,所以我们不能直接求出所有间隔来算。那么第一个想到的就是二分来做,因为间隔的取值范围我们可以得知,所以我们在这个范围内二分查找,对于每一个值,我们再通过O(n)的查找确定小于等于它的间隔数量有多少,将它与

2017-04-04 21:02:08 416

原创 完全背包——Codeforces Round #302 (Div. 2) C. Writing Code

题目链接: http://codeforces.com/problemset/problem/544/C题意:给出 NN 个程序猿,第 ii 个程序猿写一行代码会产生 aia_i 个bug。你是他们的Boss,想知道怎么分配任务使得写完m行代码产生的bug数量不超过 mm ,否则你的公司就倒闭了:)分析: 因为每个程序猿的工作量没有上限(是的呢,剩余价值无限大(老铁,修仙吗?)),所以我们发现这

2017-04-04 20:49:42 368

原创 DP——AtCoder Beginner Contest 050 #D - Xor Sum

题目链接:http://abc050.contest.atcoder.jp/tasks/arc066_b题意:求有多少个数字对<u,v><u,v>满足0≤u,v≤N0≤u,v≤N并且存在两个整数a,ba,b使得a+b=u,a xor b=va+b=u,a\ xor\ b=v分析:我们发现只要a,ba,b不超过NN,那么a xor ba\ xor\ b也不会超过NN,所以关键就是要保证a+ba +

2017-04-04 10:40:59 845 1

原创 贪心——The Martian Challenge 2017 #G. Pick Your Team

题目链接: http://codeforces.com/gym/101306/problem/G题意:给出N个士兵的力量值,地球人和火星人轮流拿(地球人先),给出火星人拿取士兵的先后顺序。求地球人怎么拿使得最后双方的差最大。求这个最大差值。分析:我们可以以火星人拿的顺序作为参考,假设地球人每次拿这个顺序下剩下的第一个,火星人拿第二个,并且在每次火星人拿的时候,比较一下当前的士兵力量值和之前地球人

2017-04-04 00:19:57 650

原创 组合数学——Codeforces Round #404 (Div. 2) D. Anton and School - 2

题目链接:http://codeforces.com/problemset/problem/785/D题意:给出一个只含有 ‘(’ 和 ‘)’ 的字符串,求其中含有多少个RSBS子序列。RSBS定义为:不为空,长度为偶数,前一半全是’(‘,后一半全是’)’分析:一个很显然的思路就是

2017-04-02 18:46:01 326

原创 倍增二分——玲珑学院OJ #1112

题目链接: http://www.ifrog.cc/acm/problem/1112?contest=1015&no=1题意: 看链接吧分析:一个很容易想到的做法就是二分找到每一个刚好超过M的分界点,但是每次排序用时是nlognnlogn的复杂度,最后可能达到n2lognn^2logn,所以我们才用一种先倍增再二分的方法,即缩小二分范围:每次在左端点L上增加2k2^k,直到超过了M,那么二分的范

2017-04-02 12:37:39 452

二分图判断【染色法】

怎么判定一个图是否为二分图 ? 从其中一个定点开始,将跟它邻接的点染成与其不同的颜色,最后如果邻接的点有相同颜色,则说明不是二分图,每次用bfs遍历即可。

2019-03-25

空空如也

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

TA关注的人

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