自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AC_Gibson的专栏

while(alive) ACing;

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

原创 HDU1698 Just a Hook 线段树成段更新

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 题目大意:有一个长度为n(100000)的钩子,没个单位长度的钩子有金,银,铜三者之一构成,价值分别为3,2,1,现在进行Q(100000)次操作,每次操作表示把一个区间[l,r]内的钩子变成一种颜色,问Q次操作之后钩子的总价值。 分析:我们用线段树来纪录每一个区间内的颜色,

2015-08-28 15:45:19 371

原创 HDU2852 KiKi's K-Number 线段树单点更新

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2852 题目大意:给定一个容器有3中操作:“0 x”表示插入元素x;“1 x”表示删除元素x(如果x不存在输出”No Elment!”);“2 x k”表示查询比x大的数中,第k个元素的值(同理,不存在该值输出“Not Find!”)。给你m个操作(m小于10^6),分别模拟每种操作。

2015-08-27 09:40:13 476

原创 HDU4006 The kth great number 优先队列

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006 题目大意:有n次操作,"I x"代表插入x,"Q"表示询问序列中第k大的数(k是已知的)。 分析:优先队列即可。我们把数字小的设为高优先级,然后依次插入每个数即可,维护一个长度为k的队列。如果队列中元素个数大于k个,则将队头的元素出列,这样,队头的元素始终是第k大的,询问时直

2015-08-26 13:30:57 503

原创 HDU1394 Minimum Inversion Number 逆序数- 线段树单点更新求

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意:给出一个长度为n的序列,序列中元素的值包含0到n-1,我们把第一个元素移到最后面,其他元素位置不变,得到一个新的序列,这样我们一个可以得到n个不同的序列,找出这n个序列中最小的逆序数。 分析:比HDU2689多了一步,我们在找出第一个序列的逆序数之后,如果把第一个元

2015-08-26 10:22:29 463

原创 POJ2886 Who Gets the Most Candies? 线段树单点更新+反素数

题目链接:http://poj.org/problem?id=2886 题目大意:n个小朋友站成一个圈做游戏,每个小朋友手中有一个非零数字num(整数代表从这点起顺时针数num个人,负数代表逆时针数num个人),游戏开始时第k个人出列,然后下一个出列的人为上一个出列人手中数字所指的人,以此类推,直到所有人都出列为止。F(p)为第p个出列的人得到的糖果数量,定义F(p)为p的约数的个数,找

2015-08-25 10:02:15 634

原创 POJ3264 Balanced Lineup 线段树||RMQ

题目链接:http://poj.org/problem?id=3264 题目大意:给出一个序列,Q次查询,每次查询找出该区间内最大值和最小值的差。 分析:线段树和RMQ都可以。 线段树实现代码如下(2412K,2188MS): #include #include #include using namespace std; const int maxn=5000

2015-08-24 09:45:21 447

原创 HDU5407 CRB and Candies 数论

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5407 题目大意:给出一个整数n,我们想知道LCM[ C(n,0),C(n,1),...,C(n,n) ]%mod的值。 分析:对于函数a(n)=LCM[ C(n,0),C(n,1),...,C(n,n) ]和函数b(n)=LCM[ 1,2,3,...,n ],我们有a(n)=b(n

2015-08-23 12:57:37 524

原创 HDU5417 Victor and Machine 模拟题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5417 题目大意:有一台机器,启动的瞬间会弹出一个小球,之后每过w秒弹出一个小球,但这个机器有个缺陷,每启动x秒之后会关闭(关闭的瞬间也可能会有小球弹出)y秒,之后再次重启。找出第n个小球弹出的时间。 分析:有小球弹出无非下列几种情况:(1)机器启动;(2)启动w秒;对于第一种情况,

2015-08-23 08:39:57 630

原创 POJ2337 Catenyms 欧拉路径

题目链接:http://poj.org/problem?id=2337 题目大意:给出n个单词,找出他们之间一条字典序最小的连接路径。两个单词能连接当且仅当前一个单词的尾字母等于后一个单词的首字母。 分析:单词接龙,POJ1386的升级,需要输出路径。我们可以先把这些单词排序,然后在进行建图,这样我们在dfs的时候就等于直接按字典序来搜索了。 实现代码如下: #in

2015-08-21 11:03:55 419

原创 POJ2230 Watchcow 欧拉回路路径

题目链接:http://poj.org/problem?id=2230 题目大意:相当于给出一个有向图,求出一条欧拉回路,并输出路径。 分析:题中说是每条路都正反走两边,其实就是相当于就是连接两个顶点的一个双向路径,每个方向的路径都走一遍。 实现代码如下: #include #include using namespace std; const int M=50

2015-08-19 17:22:35 482

原创 POJ2513 Colored Sticks 欧拉路径+Tire树

题目链接:http://poj.org/problem?id=2513 题目大意:有n条木棒,没条木棒两端各有一种颜色,木棒之间可以连接当且仅当连接端的颜色相同,让判断对于给出的若干木棒,能否全部连接起来。 分析:以每种颜色为顶点建图,要想所有木棒都连接起来,即找出该图的一条欧拉路径。对于每种颜色,我们需要一一对应一个数字,我用map写了一个,果然TLE了,毕竟数据量还是不小的

2015-08-19 14:25:19 403

原创 POJ1386 Play on Words 欧拉路径

题目链接:http://poj.org/problem?id=1386 题目大意:给你n个单词,判断把这些单词是否能全部连接起来。(当一个单词的首字母等于上个单词的尾字母时两个单词才能连接)。 分析:对于每一个单词,我们只需要纪录下它的首字母和尾字母即可,然后单词接龙就变为了我们熟知的欧拉路径问题了。一个有向图存在欧拉路径,当且仅当该图是连通的,且所有顶点的度数之和为0,或仅存

2015-08-19 08:56:28 881

原创 HDU5400 Arithmetic Sequence 数学题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5400 题目大意:定义(d1,d2)算术序列为:对于给定的序列b1,b2,...,bn,存在i使得bj+1=bj+d1( j∈[1,i) );bj+1=bj+d2(j∈[i,n)).现在给出d1,d2和一个序列a1,a2,...,an,找出有多少个区间[l,r]满足(d1,d2)算术序列。

2015-08-18 17:33:35 490

原创 FZU2129 子序列个数 DP

题目链接:http://acm.fzu.edu.cn/problem.php?pid=2129 题目大意:求一序列的不相同的子序列的个数。 分析:注意区分子序列和子串的区别:子序列可以不连续,子串必须连续。先说说本题吧。我们用dp[ i ]来纪录以 前i个字符组成的序列 的不同子序列的个数,很显然,对于dp[ i+1 ],我们把dp[ i+1 ]=dp[ i ]×2+1,

2015-08-18 15:31:42 581

原创 POJ1041 John's trip 欧拉回路路径查找

题目链接:http://poj.org/problem?id=1041 题目大意:一个城镇有n个二叉路口,这些路口由m条街道连接,某人想要从某个路口出发,经过所有的街道且每条街道只走一次,再回到出发点,让找出一个可行的路线,依次输出经过的街道编号,如果有多条路线,选择字典序最小的一条输出。 分析:经典的欧拉回路问题。因为是要输出街道编号,建图需要一些技巧。 实现代码如

2015-08-18 09:34:29 1288

原创 HDU3018 Ant Trip 欧拉路径

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 题目大意:n个蚂蚁村庄之间有m条道路,一群蚂蚁想要遍历所有的村庄,且每条道路只走一次,问至少需要把这群蚂蚁分成多少组才能实现目标。 分析:我们假设n个村庄之间有k个连通分量,对于每一个连通分量,如果存在欧拉路径,那么该分量需要一组蚂蚁就行;如果不存在欧拉路径,我们知道,要想遍

2015-08-17 10:04:51 614

原创 欧拉路AND欧拉回路

定义:对于无孤立节点图G,若存在一条路经过图中每一条边且只经过一次,该条路称为欧拉路。若该路径为一个圈,则称为欧拉回路     欧拉路的判定:       (1)一个无向图存在欧拉路径,当且仅当该图是连通的,且只存在零个或两个奇数度的顶点。       (2)一个有向图存在欧拉路径,当且仅当该图是连通的,且该图的所有顶点度数为0,或仅存在一个度数为1的顶点和一个度数为-1的顶点,其余点的度数

2015-08-15 21:06:10 564

原创 ACdream1077 LCM Challenge 数学题

题目链接:http://acdream.info/problem?pid=1077 题目大意:给你一个数n,在[1,n]内找出3个数(可以重复),使得这三个数的最小公倍数最大。 分析:要想使三个数的最小公倍数最大,那么这三个数肯定是互素的,试想一下,如果三个数为a,b,c,且他们不互素,我们不妨假设gcd(a,b)>1,那么在[1,a]内肯定存在这么一个数a'使gcd(a',b

2015-08-14 16:27:09 535

原创 ACdream1007 a+b 快速幂求和

题目链接:http://acdream.info/problem?pid=1007 题目大意:给出n个ai和和幂次k,计算∑ai^k mod 10000000007的值。 分析:比较简单的费马小定理应用,注意下ai的值可能是负数就行了,我们可以按k的奇偶来讨论:对于k是偶数,ai的正负对结果是没有影响的,k为奇数时,把ai小于0的情况看做是正数,算出ai^k之后用结果减去这个值

2015-08-14 13:41:43 868 1

原创 HDU5387 Clock 时钟模拟

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5387 题目大意:给出一个24小时制的时间,分别找出时针-分针,时针-秒针,分针-秒针之间的角度。 分析:在纸上算一下就行了。对于这三个角度,我们可以选12时作为参考点,然后分别找出时针,分针,秒针和参考点之间的角度,然后用这个角度相减就得到了两根指针之间的相对角度了。 实

2015-08-14 09:45:13 480

原创 HDU4109 Instrction Arrangement 拓扑排序求关键路径

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4109 题目大意:有n条指令和m条指令之间的依赖关系,对于每一组关系u v w表示指令v必须在指令u之后w执行,且执行需要w个时间单位,问你要执行n条指令最少需要消耗的时间(多条无依赖关系的指令可同时执行) 分析:裸的关键路径。 实现代码如下: #include #in

2015-08-13 12:08:52 725

原创 HDU5373 The shortest problem 数学水题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5373 题目大意:给你一个整数n和操作次数t,对于每次操作,我们把n的各个位上的数字加起来,把得到的数放到n的末尾形成一个新的整数n',例如n=123,t=3,我们有变换123=>1236=>12312=>1231215,最终得到的n'=1231215,现在我们要判断n'能否被11整除。

2015-08-13 09:24:39 418

原创 整除23以内的数的特殊性质

在ACM竞赛中我们有时会遇到整除取模的问题,对于整除问题,我们有下列性质: (1)1与0的特性:  1是任何整数的约数,即对于任何整数a,总有1|a.  0是任何非零整数的倍数,a≠0,a为整数,则a|0.  (2)若一个整数的末位是0、2、4、6或8,则这个数能被2整除。 (3)若一个整数的数字和能被3整除,则这个整数能被3整除。   (4) 若一个整数的末尾两位数能被4整除,则

2015-08-13 09:22:50 809

原创 HDU2647 Reward 拓扑排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题目大意:有n个人m对关系,每对关系表示a的工资要比b的高,最低工资为888,问你这n个人满足m对关系的最低总工资是多少。 分析:我们以这m对关系来建图,要使a的工资要比b的工资高,只需保证a到b的单向性即可。 实现代码如下: #include #include

2015-08-11 10:38:19 452

原创 HDU1392 Surround the Trees 简单凸包

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1392 题目大意:平面上有n个点代表n棵树,现在要把这些树用绳子围起来,求最少需要的绳子长度。 分析:简单求凸包问题。 实现代码如下: #include #include #include #include using namespace std; typ

2015-08-10 09:46:55 490

空空如也

空空如也

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

TA关注的人

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