自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

算法小猪的博客

如果这世上有奇迹,那只是努力的另一个名字

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

原创 寻找独一无二的数 【异或】

题目描述现给你一组数,要求你找出其中只出现过一次的那个数。题目保证只有一个数字出现过一次,并且除了只出现一次的那个数字外,其余的数字均出现了偶数次。输入输入包含多组测试样例。每组样例第一行为一个正整数n(1<=n<=1000000,并且n为奇数),表示数字的个数。接下来的一行为n个正整数,所有的数都小于2^31。当n=0时,输入结束。输出输出只出现过一次的那个数字,每组结果占一行。样例输入51 1 3 2 231 2 10样例输出32.

2020-07-30 21:19:27 760

原创 炫耀手机

2128: 炫耀手机题目描述小F终于买到了心仪的手机,当然是华为的新款啦。小F有5个好朋友,她把新买的手机拿给朋友们看。手机就在她们手中传递了。小F先把手机给某个朋友,每个朋友欣赏完手机后就把手机传给另外一个人欣赏。当然已经看过手机的人还可以继续接过来欣赏。结果经过n次传递后,手机又回到小F手中(中间过程手机也可能回到过小F手中)。你能知道传递的过程中有多少种传递方式吗?输入多组测...

2020-07-30 21:19:13 1150

转载 2.4.4 Bessie Come Home (comehome) USACO(最短路)

题目描述2.4.4 Bessie Come Home (comehome)(comehome.pas/c/cpp) 现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。 每个牧场...

2020-07-30 21:18:57 564

原创 数组中插入一个数

数组中插入一个数题目描述给定有序数组(从小到大),再给你一个数,要求插入该数到数组中并保持顺序输入多组测试,每组第一行输入一个整数n,然后是n个有序的整数 第二行输入1个整数m和1个整数K输出将整数m插入到原数组中保持顺序是升序,然后输出2行 第一行是插入以后的数组 第二行是插入以后的数组中下标值是K的数 n m k不超过20样例输入3 1 2 53 1...

2020-07-29 21:26:57 7843

原创 1484: order 几何数学

题目描述小军正在一块无穷大的网格地面上玩耍,他站在A 位置小军准备了n 个指令a[i]对于每个指令, 小军都会执行如下操作1:往当前方向移动a[i] 的距离2:往右转90 度,重复a[i] 次小军决定执行这n 个指令T 次,假设执行完后停留在了B 位置,请问A 与B 的曼哈顿距离是多少输入第一行输入两个整数n, T第二行输入n 个整数ai1 <= T <= 1...

2020-07-29 21:26:47 577

原创 Knight Moves

题目描述原题来自:POJ 1915编写一个程序,计算一个骑士从棋盘上的一个格子到另一个格子所需的最小步数。骑士一步可以移动到的位置由下图给出。输入第一行给出骑士的数量n。在接下来的3n行中,每3行描述了一个骑士。其中,第一行一个整数L表示棋盘的大小,整个棋盘大小为L×L; 第二行和第三行分别包含一对整数(x,y),表示骑士的起始点和终点。假设对于每一个骑士,起...

2020-07-29 21:26:36 4875

原创 【深基15.习9】验证栈序列 洛谷P4387

题目描述给出两个序列 pushed 和 poped 两个序列,其取值从 1 到n(n≤100000)。已知入栈序列是 pushed,如果出栈序列有可能是 poped,则输出Yes,否则输出No。为了防止骗分,每个测试点有多组数据。输入格式第一行一个整数q,询问次数。接下来q 个询问,对于每个询问:第一行一个整数n表示序列长度;第二行n个整数表示入栈序列;...

2020-07-29 21:26:13 1384 1

原创 i++和++i的区别

写在前面记得一次写题时将++i写成了i++,怎么也调试不对QAQ,事后也不明白,现在水发一篇总结( ̄y▽, ̄)╭一、赋值顺序i++在运行时是这样执行的:先赋值,再自加用代码表示为a = i++; ------------> a = i; i = i + 1;++i在运行时是这样执行的:先自加,再赋值用代码表示为:a = ++i ...

2020-07-29 21:25:46 1626

原创 纪念品-2019CSP-J

纪念品题目描述小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品 的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易无限次:任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品; 卖出持有的任意一个纪念品,以当日价格换回金币。每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪...

2020-07-29 21:24:35 1304

原创 堆结构【总结】

一、堆的定义堆结构是一种数组对象,它可以被视为一棵完全二叉树,如下图:二、堆的性质设数组A的长度为len,二叉树的结点个数为size,size≤len,则A[i]存储二叉树中编号为i的结点值(1≤i≤size),而A[size]以后的元素并不属于相应的堆,树的根为A[1],并且利用完全二叉树的性质,我们很容易求第i个结点的父结点、左孩子结点、右孩子结点的下标了,分别为:i/2、2...

2020-07-29 21:24:22 6535

原创 异或的性质、用途、习题

写在前面异或概念用在这里不提及了,若不懂的话可自行了解一、异或的性质异或是一种基于二进制的位运算,用 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。(这点很重要)性质交换律 可任意交换运算因子的位置,结果不变 2、结合律(即(a^b)^c == a^(b^c)) 3、对于任何数...

2020-07-29 21:23:56 3986

原创 素数的最短距离 【模拟】

题目描述输入一个数,输出离它最近的素数.如果该数本身是素数,则输出其本身;若有两个距离相等,则输出小于它的那个素数。输入测试数据有N(N<=1000)组,接下来为N行,每行包括一个整数M(0<M<=1000)。输出输出有N行,每行为离对应M最近的一个素数。输出结果的范围与M的取值范围相同样例输入Copy2225样例输出Copy235解题思路使用算法:模拟算法算法步骤:1.枚举n-i(s)和n+i(t) ps...

2020-07-29 21:23:32 826

原创 学姐的桌面 【模拟】

学姐的桌面时间限制 :1.000sec内存限制 :128 MB题目描述学姐在加入集训队之后,学习了使用ubuntu系统来做题,但是没有了360电脑管家,学姐再也没办法看到她的飞速电脑开机到底虐了全国多少人。作为一个电脑高手,学姐花了几分钟黑到了360的数据库拿到了全国360用户的开机时间,现在学姐想自己算算到底打败了百分之多少的人?输入输入有多组数据。首先给出数据组数T(T≤10),下面T组数据,每组开头为n(1≤n≤100000),360的用户数,和t,学姐的开机时间分值,接...

2020-07-29 21:23:15 353 1

原创 博弈论之SG函数

引子在许多地方曾经流行这样一个小游戏:摆出N堆硬币,第i堆硬币有Ai个。两名玩家轮流行动,每次可以任选一堆,从中取走最后一件物品者获胜。两人都采用最优策略,问先手能否必胜。问题归纳这种游戏:NIM博弈游戏中的状态:局面整局游戏第一个行动的:先手整局游戏第二个行动的:后手某一局面下采取任何行动都会输:必败若在某一局面下存在某种行动,使对手面临必败,则优先采取该行动:最优策略。同时,这样的局面被称为必胜定理NIM博弈先手必胜,当且仅当A1 xor A2 xor … xor An !=0证明

2020-07-29 21:23:07 353

原创 牛客IOI周赛16-普及组-解题报告

问题A-求导牛牛今天题目描述学习了求导,对函数f(x) 求导记作 f(x)'输入描述:给出一个数 n输出描述:输出求 x^n 求 n - 1 次导后 x 前的系数。(答案对109+710^9+7109+7 取余)输入5输出120备注:对于 %50 的数据满足 n≤15对于 %100 的数据满足 n≤10^5...

2020-07-29 21:22:34 368

原创 流感会结束吗 【图论+模拟】

题目描述 信奥班中一共有 n 个学生。这 n 个学生里一共有 m 对朋友关系。在流感发作期,每个健康学生都要看望当天他生病的朋友(如果有的话),并在第二天被传染上疾病(除非他在免疫期内);每个生病的学生在第二天都会痊愈,并在这一天具有免疫性。从第三天起,看望生病的朋友将再次使他染上流感。初始时(第一天),只有一个学生患有流感。试问多少天后流感会自动结束。输入第一行输入两个正整数 n 和 m。接下来 m 行每行两个正整数 x,y,表示编号为 x 的学生和编号为 y 的学生是一对朋友。...

2020-07-29 21:21:50 731

原创 信奥队过河【dp+前缀和优化】

题目描述叶老师带着他的N(1 <= N <= 2,500)个学生去参加省赛,他们要过一条河,但他们所有的渡河工具,仅仅是一个木筏。由于学生不会划船,在整个渡河过程中,叶老师必须始终在木筏上。在这个基础上,木筏上的学生数目每增加1,叶老师把木筏划到对岸就得花更多的时间。当叶老师一个人坐在木筏上,他把木筏划到对岸需要M(1 <= M <= 1000)分钟。当木筏搭载的学生数目从i-1增加到i时,叶老师得多花M_i(1 <= M_i <= 1000)分钟才能把木筏划过河(

2020-07-29 21:21:39 366

原创 士兵杀敌(二)【线段树】

题目描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示指令的条数。(1<M<100000)随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=

2020-07-29 21:21:27 392 1

原创 羊羊智力运动会

题目描述羊历3131年,青青草原上,羊羊族群十分繁荣昌盛,羊羊们在这里幸福地生活着。直到灰太狼带着妻子红太狼搬到对岸的森林,羊羊们才真正在现实中见到书上记载的狼。 灰太狼每天想尽办法要跨越铁栅栏抓羊,但他没想到的是,他的对手是全羊族里最聪明的喜羊羊,而且喜羊羊的背后还有智慧超群、又擅长发明的村长慢羊羊;大智若愚,馋嘴爱睡的懒羊羊;力大无比,勇敢无畏的沸羊羊;心地善良、气质非凡的美羊羊;以及温柔可爱,做事负责的暖羊羊。 善良勇敢的小羊们,凭借着智慧和勇气,一次次识破灰太狼的阴谋诡计。为了更好地对付狼族,羊

2020-07-29 21:21:19 419

原创 珠心算测验 【暴力】

题目描述灰太狼上次吃亏后去了狼族带了很多狼来羊村挑战。喜羊羊决定跟狼族来一次挑战赛,以赢取羊村的安全。为了保证胜利,喜羊羊希望自己队伍里的人至少有2种以上技能。每个羊生下来就会有一种技能,而且不会消失,这种技能我们用一个数来表示,每个羊的数字会各不相同。但喜羊羊不知道哪个数是有技能的。不过如果一只羊他的数正好是另外2个羊的数的和的话,他就掌握这2个羊的技能(如果某个羊的技术数是其他三个羊的数的和,未必掌握这3个羊的技能,更多羊同理)。现在喜羊羊知道这些羊的技能数,你能知道他可以带多少队伍去参加挑战赛?

2020-07-29 21:21:05 326

原创 算法竞赛进阶指南——兔子与兔子【哈希】

题目描述很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母),然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。输入第一行一个 DNA 字符串 S。接下来一个数字 m,表示 m 次询问。接下来 m 行,每行四个数字 l1, r1, l2, r2,分别表示此

2020-07-29 21:20:55 340

原创 切开蛋糕【dp+贪心】

题目描述出于某些方面的需求,懒羊羊要把一块N×M的蛋糕切成一个个1×1的小蛋糕。对于一块蛋糕,我们只能从某条横线或者某条竖线(要在方格线上),而且这蛋糕是不均匀的,从不同的线切割下去要花不同的代价。而且,对于一块蛋糕,切割一次以后就被分割成两块,而且不能把这两块蛋糕拼在一起然后一刀切成四块,只能两块分别再进行一次切割。现在,给出从不同的线切割所要花的代价,求把整块蛋糕分割成1×1块小方块所需要耗费的最小代价。输入输入文件第一行包括N和M,表示长N宽M的矩阵。第二行包括N-1个非负整数,分别表示沿

2020-07-29 21:20:37 905

原创 树与图的遍历【总结】

铺垫树与图最常见的存储方式就是邻接表。树可以看作是具有N−1N-1N−1条边的无向图,他们的边都存储在一个邻接表中,邻接表以headheadhead数组为表头,使用ververver和edgeedgeedge数组分别存储边的终点和权值,使用nextnextnext数组模拟链表中的指针。树与图的深度优先遍历深度优先遍历,就是就是在某一个节点xxx有多条分支时,任选一条边走下去,进行递归,直到回溯到xxx,再考虑走另一条边,根据上面提到的存储方式,我们可以采用下面的代码,调用dfs(1)dfs(1)dfs

2020-07-29 21:20:26 889

原创 懒羊羊求援【优先队列】

题目描述狼族来进攻羊村了。喜羊羊开始布置防御。但为了更好地抵制住进攻,他们需要一个人去其他羊村求援。这个光荣而艰巨的任务就交给了懒羊羊。路途好遥远,懒羊羊必须吃足够的草才能跑。他吃一两草能跑一公里路。但饿了就跑不动了。不过懒羊羊肚子大着,有多少青草他都能吃。但懒羊羊吃草很花时间,所以希望尽量少吃几次。路上有N个卖草的地方,你帮忙算下懒羊羊吃几次可以到达终点。输入第一行有一个 N ,表示路上有 N 个卖草的地方;(1<=N<=10000)(1<=N<=10000)(1<=N

2020-07-25 22:06:37 364

原创 棋盘【NOIP2017】

棋盘有一个m×mm×mm×m的棋盘,棋盘上每一个格子可能是红色、黄色或没有任何颜色的。你现在要从棋盘的最左上角走到棋盘的最右下角。任何一个时刻,你所站在的位置必须是有颜色的(不能是无色的), 你只能向上、 下、左、 右四个方向前进。当你从一个格子走向另一个格子时,如果两个格子的颜色相同,那你不需要花费金币;如果不同,则你需要花费 1 个金币。另外, 你可以花费 2个金币施展魔法让下一个无色格子暂时变为你指定的颜色。但这个魔法不能连续使用, 而且这个魔法的持续时间很短,也就是说,如果你使用了这个魔法,走

2020-07-25 21:42:28 1415

原创 搬书【dp】

题目描述有三堆书,分别有i,j,k本,已知每堆书从下到上各本书的重量,每次搬书只能从任意一堆的最上面取,请你设计一个方案,使得花费的力气最大。每次取书体力消耗都会加大,这里用体力系数表示,取第一本书时,体力系数为1 ,第二本时为2,依次类推,而每次体力消耗值为体力系数和书的重量之积。图例最累的取书方式为:31+92+23+104=67【输入格式】第一行为3个数,分别为i,j,k第二行到第四行分别为每堆从下到上每本书的重量【输出格式】输出最累方式的体力消耗总值【输入样例】3 2 42 3

2020-07-24 21:58:07 272

原创 国王【状压dp】

题目描述原题来自:SGU 223在n×nn×nn×n 的棋盘上放 kkk 个国王,国王可攻击相邻的 888个格子,求使它们无法互相攻击的方案总数。输入只有一行,包含两个整数 nnn和 kkk。输出每组数据一行为方案总数,若不能够放置则输出 00。样例输入【样例输入1】3 2【样例输入2】4 4样例输出【样例输出1】16【样例输出2】79数据范围与提示对于全部数据,1≤n≤10,0≤k≤n21≤n≤10,0≤k≤n^21≤n≤10,0≤k≤n2。题解:技巧:一般状压的题

2020-07-24 21:41:15 517

原创 单调栈【总结】

一、单调栈是个啥??顾名思义,单调单调,不就是数据有序的栈吗?所以单调栈分为两种:1.单调递增栈2.单调递减栈让我们归纳下:栈内的元素,按照某种方式排序下(单调递增或者单调递减), 如果新入栈的元素破坏了单调(有序)性,就弹出栈内元素,直到满足单调(有序)性。(这里所说的顺序是出栈顺序)而且单调栈可以很方便地求出某个数的左边或者右边第一个比它大或者小的元素,总时间复杂度O(N)O(N)O(N)。(这令人心动的复杂度)二、如何维护单调栈??(以单调递增栈为例)进栈操作:每次入栈前先检验栈顶元

2020-07-23 22:41:08 320

原创 送礼物【最短路】

题目描述Farmer John有B头奶牛(1≤B≤25,000)(1≤B≤25,000)(1≤B≤25,000),有N(2∗B≤N≤50,000)N(2*B≤N≤50,000)N(2∗B≤N≤50,000)个农场,编号1..N,有M(N-1≤M≤100,000)条双向边,第i条边连接农场RiR_iRi​和SiS_iSi​ (1≤Ri≤N;1≤Si≤N)(1≤R_i≤N;1≤S_i≤N)(1≤Ri​≤N;1≤Si​≤N),该边长度是Li(1≤Li≤2,000)L_i(1≤L_i≤2,000)Li​(1≤

2020-07-23 21:58:01 250

原创 吃糖【二分】

题目描述Bessie有N(1≤N≤50,000)颗糖果,编号1..N,但她不打算马上吃光,而是计算在接下来的D(1≤D≤50,000)天按糖果编号从小到大逐天吃,当然,Bessie以一天连续吃多颗糖果,也可以不吃,但不能跳着糖果来吃,要按糖果顺序吃。吃了糖果i,Bessie’s的能量值会增加H_i(1≤H_i≤1,000,000)。Bessie都是在白天吃糖果,然后晚上睡觉,第二天醒来,她的能量值会变成前一天的能量值的一半(向下取整)。Bessie’s的能量值会累加。请你决定第i颗糖果应该是第几天吃,才

2020-07-23 21:39:45 399

原创 糖果【贪心】

【问题描述】有N(1≤N <100,000)N(1≤N~<100,000)N(1≤N <100,000)种不同类型的糖果,每种糖果数量无限多。第i种糖果每颗的价格是Pi(1≤Pi≤1018),有Ci(1≤Ci≤1018)P_i(1≤P_i≤10^{18}),有C_i (1≤C_i≤10^{18)}Pi​(1≤Pi​≤1018),有Ci​(1≤Ci​≤1018)头牛想吃这种糖果。FarmerJohnFarmer JohnFarmerJohn拥有金钱BBB元(1≤B≤1

2020-07-23 21:14:50 654

原创 狼来了 【dfs】【树】

题目描述天空是那么蓝,空气是那么清新,草原是那么辽阔。羊村的小羊正在玩游戏。他们用一个套环把2个小羊连在一起,组成了一个N个节点的无根树,各节点编号为1…N。正在玩得非常起劲的时候,狼来了!喜羊羊得知信息后马上赶到游戏现场,但时间紧迫,他只能打开其中一个羊的套环并把他带到安全区。但为了让其他连着套环的小羊行动方便,尽快的逃避狼的追逐,现在要求你删除其中的一个点(即喜羊羊带走的羊),使分割开的连通块中节点个数(即羊的个数)都不超过原来的一半多。输入第一行:一个整数N。后面有N-1行:每行两个整数 X

2020-07-18 16:43:05 152

原创 数论基础——欧拉函数

欧拉函数1~N中与N互质的数的个数被称为欧拉函数,记为φ(N)φ(N)φ(N)φ(N)=N∗p1−1p1∗p2−1p2∗...pm−1pmN*\frac{p_1-1}{p_1}*\frac{p_2-1}{p_2}*...\frac{p_m-1}{p_m}N∗p1​p1​−1​∗p2​p2​−1​∗...pm​pm​−1​证明:设ppp是NNN的质因子,1−N1-N1−N中ppp的倍数有p,2p,3p,...,Np∗pp,2p,3p,...,\frac{N}{p}*pp,2p,3p,...,pN​∗p,

2020-07-16 22:54:48 294

原创 密码【扩展欧几里得】

题目描述有一个密码箱,000到n−1n-1n−1中的某些整数是它的密码。且满足:如果a和b都是它的密码,那么(a+b)(a+b)%n(a+b)也是它的密码(a,b可以相等,%表示整除取余数),某人试了kkk次密码,前k−1k-1k−1次都失败了,最后一次成功了。问:该密码箱最多有多少不同的密码。输入第一行两个整数分别表示n,k(1≤k≤250000,k≤n≤10141≤k≤250000,k≤n≤10^{14}1≤k≤250000,k≤n≤1014)。第二行为k个用空格隔开的非负整数,表示每次试的密码

2020-07-15 22:59:33 367

原创 阶乘分解 【欧拉素数筛】

题目描述给定整数N(1≤N≤106),试把阶乘N!分解质因数,按照算术基本定理的形式输出分解结果中的pi和ci即可。给定整数 N(1≤N≤10^6),试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 p_i 和 c_i 即可。给定整数N(1≤N≤106),试把阶乘N!分解质因数,按照算术基本定理的形式输出分解结果中的pi​和ci​即可。输入一个整数N。一个整数N。一个整数N。输出N!分解质因数后的结果,共若干行,每行一对pi,ci,表示含有pi、ci项。按照pi从小到大的顺序输出

2020-07-15 22:21:13 321

原创 Sequence 【二叉堆】

题目描述给定M个长度为n的序列,从每个序列中任取一个数求和,可以构成NM个和,求其中最小的N个和。N<=2000,M<=100。输入第一行是整数T,它显示测试用例的数量,然后是T个测试用例。每种情况的第一行都包含两个整数m,n。以下m行分别表示m序列。序列中没有整数大于10000。输出对于每个测试用例,按升序打印具有最小n个和的行,并用空格隔开。样例输入12 31 2 32 2 3样例输出3 3 4解题思路:1.我们可以先从简单情况考虑:当M=2时,就是从2个序列

2020-07-14 23:21:34 217

原创 字典树模板

初始化(memset)一棵空字典树仅包含根节点,所以该点字符指针均指向空。代码:int trie[N][26],tot=1;//26个字母 char str[N];插入(insert)当需要插入一个字符串S时,我们让一个指针P指向根节点。然后依次扫描S中的每个字符c:1.若P的c字符指针指向一个已经存在的节点Q,让P=Q.2.若P的c字符指针指向空,则新建节点Q,让P的c字符指针指向Q,令P=Q.当S中的字符扫描完毕时,在当前节点P上标记他是一个字符串的结尾。代码:void inse

2020-07-13 23:13:22 217

原创 前缀统计【字典树】

题目描述给定N个字符串S1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1∼SN中有多少个字符串是T的前缀。输入字符串的总长度不超过106,仅包含小写字母。输入第一行两个整数N,M。接下来N行每行一个字符串Si。接下来M行每行一个字符串表示询问。输出对于每个询问,输出一个整数表示答案样例输入3 2abbcabcabcefg样例输出20题解:基础字典树把这N个字符串先插入字典树,字典树的每个节点上存储该节点是多少个字符串的末尾节点。(因为这里要重复插入

2020-07-13 22:51:22 429

原创 并查集模板

并查集并查集是个数据结构,围绕着一个就是根节点展开,若两点的根节点相同那么就肯定在一棵树内,所以我们只需要维护一个点的父亲节点就好了,然后每次询问都查找根节点是否相同。但若树退化成链的话,我们就需要判断两点和根节点的关系,保留当前点的根节点关系就好了,这样的优化方式我们叫做路径压缩。1.普通并查集模板初始化:void mem(int n) { for (int i=0;i<=n;i++) { father[i]=i; R[i]=1;//秩优

2020-07-12 16:00:41 2993

原创 二分模板

整数二分模板while(x<=y)//<=或<根据来定,如果从0开始则<,从1开始则<={ mid=(x+y)/2; if(check(mid)==1)//check函数用来检查答案 { x=mid+1;//注意 ans=mid; } else y=mid-1;//注意}实数二分模板double l=...,r=...;while(r-l

2020-07-10 22:19:07 158 1

空空如也

空空如也

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

TA关注的人

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