自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

算法学习印迹@老冯

人生 = 格局 + 算法

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

转载 CodeForces入门

codeforces的正确打开方式https://www.cnblogs.com/muzu/p/7616746.html1.背景可能很多人都久闻codeforces网站的大名,却苦于各种各样的区域性问题或玄学问题,没能真正地体验到cf所带来的极致魅力而网络上关于这方面的博文太少了(至少我没找到过),于是就写了这样的一篇博文2.关于codeforces...

2019-05-18 10:06:31 8697

原创 [输入优化] 如何快速读取大数据量输入参数

算法编程的第一步,必然是输入各种必要的数据参数,通常使用scanf,cin,getchar(),fread等读取输入数据,当数据量不大,几行,几十行时,以上各种方法没有明显的区别,但是,当数据量为:千万数量级的时候,区别大吗?下面分别讨论:(1)使用scanf();int a[10000001];for (int i=1;i<=10000000;i++) scanf(...

2018-08-21 23:26:49 942

原创 逆序对(朴素,树状数组)

【解题思路】计算过程等同于使用冒泡排序法,将输入的数据序列进行排序的算法,因此,此问题有另外一个名字:【计算冒泡排序次数】如果 不考虑数据规模及超时,直接进行排序,每移动一次就累加一次,最后输出累计的移动次数便是正解。【方法1:朴素算法】const int MAXI = 100002;int cnt[MAXI];int num[MAXI];int n,i,j,a...

2018-08-18 11:11:12 672

原创 同盟的同盟(并查集)

问题3-2 乐星村里有N个人。为了方便,我们把每个人用1到N号标记。第一次,因为这些人互相不认识,所以他们有“敌对关系”。但是他们总不能活在“敌对关系”中。所以这个村里面的人就一个一个结成了“同盟关系”。必然当某个A和B结成同盟关系的话,自然的A的同盟和B的同盟会相互结成同盟关系。随着这样的关系渐渐增多,构成了复杂结构的同盟关系。为了确定谁是谁的同盟,请编写查找关系的程序。为了能容易的了解同盟...

2018-03-30 16:59:59 376

原创 解决问题(DP)

问题8-3对就业没有兴趣的郑来没有意识到提升实力的必要性,一直逃避解决问题。但是听了aa的培训之后,郑来有了一个梦想,就是进入aa工作!郑来为了进入aa,需要按顺序准确地解出P(1 ≤ P ≤ 300)个问题才可以。但是由于疏于解题已经很长时间,郑来靠自己一道问题都解不出来。因此郑来请了每天都努力解题的昌洙来帮忙。之前昌洙的实力和郑来差不多,但是经过每天努力的练习,现在昌洙不论接到了怎样的问题,...

2018-03-30 16:50:39 310

原创 搜索图(DFS+BFS)

问题_PRO_10_1搜索图的方法存在多种,深度优先探索(DFS;Depth First Search)和广度优先搜索(BFS; Breadth First Search)是代表性的搜发方法,请编写深度优先搜索和广度优先搜索的程序。此问题中所谓的广度优先搜索可以认为是使用cue,以一次只搜索一个点的方式进行。并且给定的图是包含起点的一个连接图(connected graph)。 输入第一行给出...

2018-03-16 17:00:36 320

原创 NQUEEN(By 位运算)

问题:NQUEENN_Queen问题很有名,是在N*N的国际象棋棋盘上N个Queen无法互相攻击的问题。给出N时,请求出放置Queen的方法数。 输入第一行给出自然数N。(1 ≤ N ≤ 12)输出在第一行输出 N个Queen无法互相攻击的而放置的方法数。 案例输入4案例输出2

2018-03-16 09:18:53 398

原创 爬阶梯

问题最多能爬 2个阶梯时,请想一下爬上阶梯有几种方法。如下图片是n为4的情况案例。1 - 2 - 3 - 41 - 2 - 41 - 3 - 42 - 3 - 42 - 4总共有5中情况。那样的话,当阶梯数为n个时, 存在几种情况。因为答案会很大,所以请输出答案除于1,000,000,007的余数。输入输入的第一行给出阶梯的个数(1≤N≤1,000,000,000)。输出请输出爬N个阶梯的情况...

2018-03-16 09:10:36 471

原创 N_Queen

问题:NQUEENN_Queen问题很有名,是在N*N的国际象棋棋盘上N个Queen无法互相攻击的问题。给出N时,请求出放置Queen的方法数。 输入第一行给出自然数N。(1 ≤ N ≤ 12)输出在第一行输出 N个Queen无法互相攻击的而放置的方法数。 案例输入4案例输出2                   #include <stdio.h> int N;int a[15]...

2018-03-16 09:04:23 393

原创 区间求和

问题 给出长度为N的数列。数列的初始值是1, 2, 3, …, N。但是这个数列频繁地发生变更,要求出这期间某个连续部分的和。假设N是5的情况。初始为1, 2, 3, 4, 5。在这个情况下,把第3个数字变更为9,第4个数变更为10的话,就会变成1, 2, 9, 10, 5。此时,如果要求第2个数到第5个数的和的话,输出26就可以了。然后,在这个状态下,将第1个数字变更为-5,第三个数变更为5...

2018-03-15 16:34:02 1713

原创 打气球

问题 大房间里飘着N个气球。气球从左到右排成一列。珍苏喜欢用箭训练打猎。珍苏从左到右射箭。高度是随意选择的。箭是在选择的高度H上,往面向气球的方向从左到右移动。箭面向气球的瞬间,气球会爆炸,然后消失。然后箭继续往右移动时,高度会降低1。所以在高度H上移动的箭,打破气球后,高度会成为H-1。我们的目标是打破所有气球时,尽量使用最少的箭。输入 第一行,会给出整数N(1 ≤ N ≤ 1 000 00...

2018-03-15 16:27:25 1589

原创 整理行李

问题 一排货箱里面放入了不同重量的货物,每一个货箱里面有一个货物。目前想按照如下一样的方式整理货箱,就是位于最前面的货箱放着最轻的货物,然后按照重量的顺序整理,最终位于最后面的货箱放着最重的货物。移动货物的时候,需要变换两个货物的位置,这时,消耗的力量为两个货物的重量之和。当给出货箱的个数及按顺序给出货箱里面放入的货物重量时,请编写可以求得整理货箱时所需要的最少力量的程序。比如说, 有重量为 ...

2018-03-15 16:22:01 261

原创 剪纸除法

问题PRO_7_4 除如下一样有多个正方形格子构成的正方形模样的纸张,每个正方形涂着0或1。按照固定的规则对给出的纸张进行裁剪。想制作多种大小的涂着0或1的正方形模样彩纸。 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 ...

2018-03-15 16:16:09 394

原创 商人访问

问题PRO_4_8沙漠中有N (1≤N≤100,000)个城市,各城市的编号为1到N。如果连接两个城市的路有N-1条,任意两个城市之间只存在一条可以移动的路径,某人过一条路准确的需要一天时间,因在除了路以外的地方无法买到水是所以不能这样移动。 一个商人打算从第1个城市开始到第N个城市按照顺序进行访问,做生意。请计算并输出此商人第1个城市开始到第N个城市按照顺序进行访问时需要几天。输入第一行给出...

2018-03-15 15:48:05 255

原创 参加宴会

问题宿舍有N个房间,每个房间住一个员工。为了方便给每个员工从1到N进行编号。有一天决定在X号员工的房间开宴会,各个员工从各自的房间出发到X号员工的房间后,等宴会结束后再回自己的房间。此时,移动的路径要按照最短路径进行移动。但问题是连接各房间的M条路是单行道,因此到达那个房间的路径和从那个房间返回的路径只能不同。 给出各条路的信息时,我们来计算去参加宴会然后返回时所用时间最长的员工的所需时间。输...

2018-03-15 15:43:29 391

原创 宝物岛(图)

问题姜熙收到了恶魔的海洋中隐藏着有无数宝物的宝物岛的情报,但是恶魔的海洋内海流特别复杂,姜熙想要获取宝物并找到返回的路太困难因此向各位求救。让我们来计算姜熙在恶魔的海洋中可找到宝物的最短时间。 恶魔的海洋中有从1号到N号的N个岛,连接各岛的海流有M个,海流只流向一个方向,也可能存在多个连接两对的海流。姜熙现在在1号岛,打算去到宝物岛后重新返回到1号岛,逃离恶魔的海洋。 输入在第一行分别给出岛的...

2018-03-15 15:41:27 362

原创 奶牛party

问题 Picnic 牛打算去郊游!各区域的K(1≤K≤100)只牛在N(1≤N≤1000)个牧草地中的某个牧草地上吃草。我们把这些牧草地命名为牧草地1,2,⋯,N。这些牧草地连接成M(1≤M≤10000)个单向的路。 (每个路的出发地和到达地都不一样。)牛们在郊游过程中,希望在同样的牧草地上集合。但是有些牛不可能到达所有的牧草地(因为是单向道路)。请帮助牛们计算它们能在几个牧草地全部集合。...

2018-03-15 01:05:27 186

原创 计算辈分(并查集)

问题 计算辈分 我们国家有个独特的文化,就是把家族或亲戚之间的关系用辈分的单位来表示。这样的辈分会按照如下方式计算。 基本上把父母和子女之间定义为 1辈,这样计算人之间的辈分。比如说,我和爸爸,爸爸和爷爷都是1辈,我和爷爷成为2辈,爸爸兄弟和爷爷是1辈,我和爸爸兄弟成为3辈。当给出多个人的父母子女之间的关系时,请编写能计算提供的两个人辈分的程序。输入第一行给出所有人数 N。每个人的号码各个...

2018-03-15 00:56:14 4102

原创 Worm hole(图)

问题 Worm hole  在探索他的农场时,乔恩发现了几个惊人的黑洞。黑洞是从当前的农场通往其他农场的奇怪的单向通道,可以把时光倒流到比你进去的时间之前。乔恩的农场构成为N个农场和M个双向通道,W个黑洞。还有为了方便,我们在农场上贴了农场1, 农场2, … ,农场 N的名称。乔恩突然好奇从当前位置出发旅行后,重新回到当前位置时,是否会时光倒流。请帮助乔恩编写是否能做时光倒流的旅行的程序。...

2018-03-15 00:54:52 837

原创 Picnic(图)

问题 Picnic 牛打算去郊游!各区域的K(1≤K≤100)只牛在N(1≤N≤1000)个牧草地中的某个牧草地上吃草。我们把这些牧草地命名为牧草地1,2,⋯,N。这些牧草地连接成M(1≤M≤10000)个单向的路。 (每个路的出发地和到达地都不一样。)牛们在郊游过程中,希望在同样的牧草地上集合。但是有些牛不可能到达所有的牧草地(因为是单向道路)。请帮助牛们计算它们能在几个牧草地全部集合。...

2018-03-15 00:52:41 401

原创 连接棋子(DP)

问题 连接棋子 N个棋子放到了x轴坐标1, 2, ..., n上。N是偶数。其中n/2个是黑色棋子,剩下的n/2个是白色棋子。连接一个黑色棋子和白色棋子弄成一双时,会有n/2个双。连接一双棋子时,会从左边的棋子开始出发垂直往上走,然后水平往右走,接着重新垂直往下走,开拓到达右边棋子的路。长成这样的 n个路不能相互重叠,也不能相互交叉。为了能让所有路的距离之和弄成最小,请编写开拓n个路的程序。 这...

2018-03-15 00:49:49 454

原创 和分解(DP)

问题 和分解 当加0到 N的K个整数时,请编写和为N时的情况有多少种的程序。 (加法的顺序变换时,看作不同的情况(1+2和 2+1时为不同的情况。),还有一个数可以使用多次)输入第一行给出,两个整数N(1≤N≤200), K(1≤K≤200)。输出第一行输出,答案除以1,000,000,000的余数。输入案例20 2输出案例21 #include <stdio.h>#define M...

2018-03-15 00:47:27 457

原创 最长递增子数列(LIS)

问题 最长递增子数列(LIS) 子数列(Subsequence)指的是某个数列上保持本身的顺序,只选择其中一部分项来构成的数列。比如说有[1,3,2,4]构成的数列,其中 [1,3,4], [1,2,4]等会成为子数列,但[1,2,3]不能成为子数列。 最长递增子数列(Longest IncreasingSubsequence)指的是某个数列的子数列中,各项比之前项递增的子数列。比如说给出的数...

2018-03-14 17:52:53 890

原创 相临BIT数(DP)

问题 相邻的bit个数 当前有0和1构成的数列S。S的第一个数是a1, 最后的数是an。S的相邻bit数可以按如下方式求得:a1a2 + a2a3 + a3a4 + ...利用这个公式可以求得数列S中相邻的1的个数。比如说011111101的相邻bit个数为5,11110110是4, 1010101是0。当给出数列S的长度N和K时,请求一下长度为 N的数列中,相邻的bit个数为K的数列S。输入...

2018-03-14 17:50:04 509

原创 捡两次废纸(DP)

问题 捡两次废纸 当前有M * N格子构成的城市。这城市各处都有垃圾。范贤捡废纸是从最左上角的格子(1, 1)出发移动到最右下角的 (M, N) ,这时需要走最短的路径。即,只能移动到相邻的向右或向下的格子。在这里要进一步重新从 (M, N)移动到 (1, 1)再次捡废纸。这时也要走最短的路径。即,只能移动到相邻的向左或向上的格子。需要注意的是捡完一次废纸就再没有废纸了。这时,请输出范贤能收集...

2018-03-14 17:46:51 408

原创 Amoeba细菌繁殖

问题 Amoeba 农部区域正在研究新发现的阿米巴虫。繁殖力很强的阿米巴虫有如下一样的特征。它做无性生殖。出生之后的第 a天会成为成体。成为成体的那天开始每天都会造出一只新的个体。它成为成体后立马会造出第一个个体,之后每天造出新的个体。新的个体也一样,出生之后第a天开始成为成体,然后造出新的个体。到了出生之后的第 b天开始,不能再造出新的个体了。出生之后的第 a天开始到 b天的前一天可以造出新...

2018-03-14 17:43:38 642

原创 拓扑排列(DAG)

问题 拓扑排列 DAG(Directed Acyclic Graph,有向无环图)是以有向边构成的图中,没有循环的图。通过DAG必能做拓扑排列。当给出DAG时, 请编写做拓扑排列的程序。输入第一行空格划分给出图的顶点个数 V, 边的个数 E。 (1≤V≤50,000,1≤E≤100,000) 第二行开始通过E行,空格划分给出每个边的信息 x,y。这个意味着存在从 x出发到达 y的有向边。 (1...

2018-03-14 17:40:07 594

原创 俄罗斯套娃(LCS)

俄罗斯套娃 问题 东贤喜欢玩偶,为了东贤我们送一下俄罗斯套娃。俄罗斯套娃是俄罗斯的一个传统人偶,可以在人偶里面放入人偶。人偶排成单行站着。每个人偶大小不一,如果前面的人偶的大小比后面的人偶小的话,可以把前面的人偶放入到后面的人偶里面。比如说,如果按顺序排着大小为(1, 5, 2, 3, 7)的 5个人偶的话,可以把大小为1的人偶放入到大小为 5的人偶里面, 再把这个人偶放入到大小为7的人偶里面...

2018-03-14 17:36:41 1640

原创 点与多多边形的关系

问题点的位置二维平面上会给出以N个点构成的多边形。当平面上面给出点 P1, P2时,请编写出判断点 P1, P2是否在多边形外部,或者是在内部的程序。点 P1, P2 不会在多边形的边上面。输入第一行给出构成多边形的个数(1≦N≦100,000),第二行开始给出将输入的N个点的整数坐标(-10^9 ≦ x, y ≦ 10^9)。多边形的坐标按顺时针方向或逆时针方向给出。最后两行给出点 P1, P2...

2018-03-14 17:33:28 1353

原创 回文算法2(Manacher)

问题某个字符串$S$的部分字符串(Substring)是指,从字符串$S$中提取连续的部分而构成的字符串。即,$S=$"abcd"字符串存在"abcd","abc", "bcd", "ab", "bc","cd", "a", "b", "c", "d"。同样,Palindrome是指顺读和倒

2018-03-14 13:34:03 147

原创 回文算法1(一般实现)

问题某个字符串$S$的部分字符串(Substring)是指,从字符串$S$中提取连续的部分而构成的字符串。即,$S=$"abcd"字符串存在"abcd","abc", "bcd", "ab", "bc","cd", "a", "b", "c", "d"。同样,Palindrome是指顺读和倒

2018-03-14 13:30:27 454

原创 fjhtest

fjhtest

2008-11-28 22:49:01 107

空空如也

空空如也

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

TA关注的人

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