自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 新博客地址:www.akirakiwi.com

新博客地址 : www.akirakiwi.com之前的题解仍放在CSDN,2017年及最新的题解及别的内容都将发在新博客中

2018-03-26 17:42:57 507

原创 Trie(位运算)—— 计蒜客 XOR Queries

题目链接:https://nanti.jisuanke.com/t/15430题意:见链接分析:对于位运算,我们可用使用字典树来搞一搞。此题中,我们可以把区间查询 [L,R][L,R] 拆分成 [1,L−1][1, L-1] 和 [1,R][1,R] 然后离线所有查询,扫一遍,最后做差即可。AC代码:/*********************************************

2017-05-19 21:07:48 688

原创 2017 CCPC 女生专场(重现)

链接:http://acm.hdu.edu.cn/contests/contest_show.php?cid=772既然不能女装参赛,那么只好在HDU上被各路大佬虐杀了。。A. Automatic Judge上来用char接了一发,发现判断字符串相等还是string好用,又推了重敲。。总结:多想几秒再敲,手速反而会快B. Building Shops队友刚开始想了个递推,钦定了上次选好

2017-05-07 20:57:31 1440

原创 递推——Codeforces 319A

链接:http://codeforces.com/problemset/problem/319/A题意:给出一个长度为n的01串表示一个数 xx,现在有2支队伍A,B分别有 2n2^n 个队员,标号为 0,1,2,...,2n−10,1,2,...,2^n-1 , A中标号为 ii 的队员和B中标号为 ixi ^ x 的队员配对,求这些配对的复杂度,即所有配对中满足 在配对<a,b>和<c,d>有

2017-05-06 22:53:26 596

原创 二分图匹配——HDU 5943

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5936题意:给定 s,n,判断 s+1,s+2,...,s+ns+1,s+2,...,s+n 这 n 个数能否放到 1,2,3,...,n1,2,3,...,n 的位置上(如果 xx 可以放到 yy 上,则必须满足 x mod y=0x\ mod\ y = 0)分析:这题是一道很明显的二分图匹配,但是因为

2017-05-06 11:14:55 471

原创 Tarjan 缩点——HDU 5934

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5934题意:给出N个炸弹的坐标爆炸半径还有引爆的花费,求爆炸所有炸弹所需要的最小花费。分析:我们发现如果炸弹A在B的爆炸范围内,同时炸弹B也在炸弹A的爆炸范围内,那么无论引爆哪一个,都会导致它们俩都爆炸,所以我们可以把A和B当做一个炸弹,花费为最小花费即可。同理,可以延伸到 n 个炸弹,如果引爆这 n 个

2017-05-06 10:38:31 415

原创 状压DP——FZU 2218

题目链接: https://vjudge.net/problem/FZU-2218题意:给出一个字符串,求出它的两个子串,满足互相之间不含有相同字符,且长度的乘积最大,输出这个最大乘积。分析:首先,我们要计算出这个字符串的所有子串包含的字符情况,因为不同字符的个数最多为16,所以我们可以通过一个长度为16的二进制串来表示某一个子串的字符包含情况,可以在 O(len(str)2)O(len(str

2017-05-03 22:08:19 323

原创 BFS预处理——UVAlive 7263

题目链接:https://vjudge.net/problem/UVALive-7263题意:给出2个字符串,字符为1~6,现在给出2种操作,一种是将一种数字全部变为另外一种;一种操作是将某一个数字变成为另一个。求对第二个字符串进行最少多少次操作可以将它变为第一种分析:我们可以发现对于任意两个字符串的转换过程,第二种操作利用得当总能带来最大的价值,所以一般都是当第二种操作无法转换更多的数字时,我

2017-05-03 21:10:55 392

原创 拓扑(有向图判断环)—— 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 560

原创 背包——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 475

原创 离散化+multiset —— HDU 4400

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

2017-04-29 19:50:55 439

原创 生成树计数——SPOJ HIGH

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

2017-04-29 16:32:08 401

原创 贪心——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 368

原创 树状数组 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 397

原创 容斥——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 292

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

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

2017-04-22 10:01:10 289

原创 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 359

原创 暴力——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 441

原创 贪心——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 376

原创 矩阵快速幂——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 369

原创 Tarjan求割点——HDU 4587

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

2017-04-16 11:06:12 455

原创 同余——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 814

原创 可持久化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 559

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

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

2017-04-09 10:40:29 432

原创 概率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 513

原创 拓扑排序——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 316

原创 二分——POJ 3579 Median

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

2017-04-04 21:02:08 397

原创 完全背包——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 348

原创 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 775 1

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

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

2017-04-04 00:19:57 625

原创 组合数学——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 308

原创 倍增二分——玲珑学院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 430

原创 DP——2008 APAC local onsites C Millionaire

题目链接: https://codejam.withgoogle.com/codejam/contest/32005/dashboard#s=p2题意:在一个赌博游戏中,初始有X元,总共玩M轮,每次你可以下一定赌注,有概率P赢:赌注翻倍;输:赌注就没了。求在M轮后总金额达到1000000以上的概率。(假设采取最优策略)分析:经分析,我们发现如果只有一轮的话,根据初始赌注的不同,最后达到目的的概

2017-03-29 22:47:03 793

原创 数位DP——POJ 3252 Round Number

题目链接 : http://poj.org/problem?id=3252题意: 求区间内 Round Number的数量,定义Round Number:转换为二进制数后0的个数大于等于1的个数的数分析: 直接当成二进制数位DP来做,需要注意的是要判断一下前导0。前缀就是保存末尾数字,前缀含有0的个数,前缀含有1的个数。AC代码/*******************************

2017-03-29 17:42:27 330

原创 数位DP—— GDUT 等凹数字

题目链接: http://gdutcode.sinaapp.com/problem.php?cid=1057&pid=6题意:求出区间内等凹数字的个数,等凹数字:定义一种数字称为等凹数字,即从高位到地位,每一位的数字先非递增再非递减,不能全部数字一样,且该数是一个回文数,即从左读到右与从右读到左是一样的,仅形成一个等凹峰。分析:解析一个等凹数字需要满足的条件:必须下降过,必须上升过,必须是回文。

2017-03-28 13:44:33 951

原创 数位DP——HDU 4352 XHXJ's LIS

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4352 题意:求出区间[L,R]内有多少个数字X,满足X上的所有位从左往右构成长度为K的严格递增子序列。

2017-03-27 23:49:17 384

原创 数位DP——Codeforces Beta Round #51 D. Beautiful numbers

题目链接: http://codeforces.com/problemset/problem/55/D分析: 定义Beautiful numbers为一个数x,x能整除它的十进制表示的每一位上的数字。求区间[L,R]内有多少个完美数字题解:这是一道标准的数位DP,将问题转化为求[1,x]内有多少个beautiful numbers。我们可以通过搜索计算出不同前缀下的数能包含多少个beautifu

2017-03-27 20:37:32 421

原创 记忆化搜搜——Code Jam 2009 Round 1C #C Bribe the Prisoners

题目链接: https://codejam.withgoogle.com/codejam/contest/189252/dashboard#s=p2题意:给出一个长度为P的监狱,每个位置一个人,现在要释放Q个人,没释放一个人,要给他左右两边的连续有人的位置的人贿赂一枚金币,求释放这Q个人最少需要花费多少金币分析:初看这题和哈弗吗路径很像,其实不是,因为每释放一个人,相当于少了一个单位的长度,

2017-03-26 10:34:02 505

原创 并查集——POJ 1182 食物链

题目链接:http://poj.org/problem?id=1182题意:给出N只动物,它们属于A,B,C三种类型,其中A吃B,B吃C,C吃A,接下来给出K句话描述它们的关系:一种是 1,x,y 表示x,y是属于一类,另一种 2,x,y 表示x吃y。某一句话为假,当且仅当,x或者y超出范围,或者 x等于y,或者这句话和前面的真话矛盾,求假话的数量分析:这里一共要维护两种关系:捕食关系和归属关系

2017-03-25 18:52:56 301

原创 二分——GDUT #C 进击的调查兵团

题目链接: http://gdutcode.sinaapp.com/problem.php?cid=1054&pid=2题意: 每次查询A数组的区间1和B数组的区间2的并的第K小,给出的数组都是递增排好的分析:如果没有后面那个条件,这道题就需要用到复杂的数据结构来搞了。不过既然是排好序的,我们就可以直接二分搜索。取L为两个区间的最小值,R为两个区间的最大值,那么在这个范围(L,R)内二分搜索第K

2017-03-22 11:58:44 336

二分图判断【染色法】

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

2019-03-25

空空如也

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

TA关注的人

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