- 博客(133)
- 收藏
- 关注
原创 数据结构内部排序分析+代码实现
1.直接插入排序算法思想:每趟将一个待排序的元素作为关键字,按照其关键字值的大小插入到已经排好的部分序列的适当位置上,直到插入完成。最好:O(n-1) 最坏: O(n * n)平均: O(n * n)void insertSort(int a[],int n){ int i,j; int temp; for(int i=2;i<=n;i++){ //下标从1开始,第一个元素有序,从第二个元素开始处理 temp=a[i]; j=i-1; while(j>=1&&
2021-08-25 16:32:52 267
原创 2018南京区域赛D题 (三分套三分套三分)
题目大意:给出 N(1≤N≤100) 个点的坐标 xi,yi,zi(−100000≤xi,yi,zi≤100000),求包围全部点的最小的球。解题思路:三分套三分的变形,此题为三维空间,则需要多出一维来三分z的值。Code:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std
2021-01-16 22:00:25 207
原创 Acwing 3167. 星星还是树 (模拟退火+三分)
题目链接:点此跳转题目大意:在二维平面上有 n 个点,第 i 个点的坐标为 (xi,yi)。请你找出一个点,使得该点到这 n 个点的距离之和最小。该点可以选择在平面中的任意位置,甚至与这 n 个点的位置重合。解题思路:一 丶模拟退火算法:随机选取一个点然后向4的方向进行搜索直到搜索范围接近于0二 丶三分(三分套三分) O(logn∗logn)O(logn∗logn)距离最小点在多边形内部先三分x维度,然后在三分x维的基础上三分y维度#include<cstring>#in
2021-01-16 21:52:35 466
原创 洛谷 P3384 【模板】轻重链剖分
题目链接:点此跳转题目大意:操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z操作2: 格式: 2 x y 表示求树从x到y结点最短路径上所有节点的值之和操作3: 格式: 3 x z 表示将以x为根节点的子树内所有节点值都加上z操作4: 格式: 4 x 表示求以x为根节点的子树内所有节点值之和解题思路:此题为树剖的模板题,我们先跑一边dfs序,把树形结构哈希到数组中,然后用线段树进行区间修改、查找的维护即可。Code:#include<bits/st
2020-12-17 19:17:22 128
原创 AcWing 171 送礼物 (双向dfs+ 剪枝 + 二分)
题目描述:达达帮翰翰给女生送礼物,翰翰一共准备了N个礼物,其中第i个礼物的重量是G[i]。达达的力气很大,他一次可以搬动重量之和不超过W的任意多个物品。达达希望一次搬掉尽量重的一些物品,请你告诉达达在他的力气范围内一次性能搬动的最大重量是多少。输入格式第一行两个整数,分别代表W和N。以后N行,每行一个正整数表示G[i]。输出格式仅一个整数,表示达达在他的力气范围内一次性能搬动的最大重量。数据范围1≤N≤46,1≤W,G[i]≤231−1解题思路:我们可以先选n/2个物品,让他们自由
2020-10-15 19:14:19 158
原创 CF600E Lomsat gelral (树上启发式合并模板)
题目链接:点此跳转题目大意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和。解题思路:这道是树启的模板题,我们先跑一遍dfs处理出轻重儿子,然后每次保留重儿子的贡献,消除轻儿子的贡献,这样时间复杂度可以降到log级别。Code:#include<iostream>#include<cstring>#include<queue>using namespace std;typedef long long ll;
2020-10-14 12:40:59 178
原创 中国石油大学秋季组队训练赛 Equidistant (树上多源BFS)
题目链接:点此跳转题目大意:给定一颗n个结点的树和m个树上的节点,问是否存在一个节点到m个点的距离相等,一条边距离为1,存在的话输出YES和此节点,反之输出NO。解题思路:因为树上两点的距离为1,bfs每层只能走1,同时要到m个点的距离相等,我们可能想到的是:枚举每个点bfs看能不能更新成功,但是因为n的范围是2e5,所以会t,因此我们可以在m个点多源bfs,记录分别能到的点,然后判定即可。 (一开始一直想的是树上两点的距离,直接往lca上莽了,然后憋了一个多小时,看了题解才知道是BFS,当场脑溢血)
2020-10-11 09:46:45 1121 3
原创 中国石油大学秋季组队训练赛15场 F: Hang Gliding (模拟+线段树)
题目链接:点此跳转题目描述:The 2020 hang gliding world championships are coming to Florida next spring! (You may think it is odd to hold in Florida a sport that requires mountains, but it turns out that hang gliders can be towed to altitude by other aircraft.) The
2020-10-10 10:44:18 371 1
原创 [SCOI2009]生日快乐 dfs
题目链接:点此跳转题目描述:给一块矩形蛋糕,要求切成等面积的n个矩形,且长宽比的最大值最小。解题思路:因为 n 的取值范围是 n<=10 ,所以很容易想到 dfs递归或者是二进制枚举,因为涉及到浮点数,我们这里使用的是dfs,枚举切的每一刀切的位置即可,如果是从宽x开始切的话,这一块为 x / n * i ,另一块就是 x / n * (n-i)Code:#include<iostream>#include<cstring>#include<algorithm
2020-10-07 12:24:04 118
原创 牛客国庆集训派对Day6 最短路 (最小生成树 + lca + bfs)
题目链接:点此跳转题目大意:给一个连通图,每次询问两点间最短路。每条边的长度都是1。第一行两个整数n和m,表示图的点数和边数(1≤ n≤ 100000, 1≤ m≤ n+100)。解题思路:因为这道题边的范围比较特别,1≤m≤n+100。我们先假设m恰好是n-1即图为一棵树,那么我们可以通过最近公共祖先求得两点的最近距离为dep[a]+dep[b]-2*dep[lca(a,b)]。现在又多出来100条边,我们要怎么处理呢?答案是:bfs 直接对这些边的一个端点开始暴力搜索最短路即可。Code:
2020-10-05 19:35:47 1005 3
原创 牛客网 Forsaken喜欢数论 (欧拉筛变形)
题目链接:点此跳转题目大意:求出1到n每个数的最小质因子的和,f(i)没有质因子的话为0;解题思路:1到n的最小质因子和,我们可以联想到素数筛(欧拉筛/质数筛),只需要在筛法筛素数的时候维护每个数的最小质因子即可,即bool函数 vis 记录最小质数,初始化后,从1到n累加一次即可Code:#include<iostream>#include<cstring>#include<algorithm>using namespace std;typedef l
2020-10-05 09:09:13 333 1
原创 牛客OI赛制测试赛3 毒瘤xor(前缀和+贪心)
题目链接:点此跳转题目描述:解题思路:异或1取反,异或0不变,那么对于本题如果原来的数这一位是1,那我们肯定希望它异或一个0;如果原来是0,肯定希望异或1。那么我们只需要求出[l,r]这个区间里面的数在每一位是1多还是0多,1多那么x的这一位就是0,0多x的这一位就是1,然后开一个前缀和数组统计一下每一位1的个数即可。Code:#include<iostream>#include<cstring>#include<algorithm>using nam
2020-10-04 20:44:59 170
原创 NOIP历年真题练习-提高组 借教室 (线段树模板题)
题目链接:点此跳转题目大意:面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj, sj, tj,表示某租借者需要从第sj天到第tj天租借教室(包括第sj天和第tj天),每天需要租借dj个教室。我们假定,租借者对教室的大小、地点没有要求。即对于每份订单,我们只需要每天提供dj个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。借教室的原则是先到先得,也就是说我们要按
2020-10-04 18:15:59 203
原创 牛客网 小A买彩票 (dp)
题目链接:点此跳转题目大意:小A最近开始沉迷买彩票,并且希望能够通过买彩票发家致富。已知购买一张彩票需要3元,而彩票中奖的金额分别为1,2,3,4元,并且比较独特的是这个彩票中奖的各种金额都是等可能的。现在小A连续购买了n张彩票,他希望你能够告诉他至少能够不亏本的概率是多少。输入描述:一行一个整数N,为小A购买的彩票数量一行一个整数N,为小A购买的彩票数量输出描述:输出一个最简分数a/b,表示小A不亏本的概率。若概率为1,则输出1/1,概率为0,则输出0/1。输出一个最简分数a/b,表示小A不
2020-10-04 10:23:44 480
原创 牛客网 队伍配置 (动态规划+01背包变形)
题目链接:点此跳转题目描述:萌学姐在玩大型手游《futa go》,他现在准备进入作战环节,所以他准备安排自己的队伍。队伍配置里,可供玩家选择的作战人物被称作“从者”,玩家可以对每个“从者”可以装备至多1件的“概念礼装”,玩家具有一个cost上限值。详细定义如下:1、 每个从者和概念礼装都具有攻击值ATK。2、 每个从者和概念礼装都会占据一定的cost值。3、 每个从者和概念礼装只能上场一次,不能重复使用。4、 概念礼装只能装备在从者上,不能单独存在。5、 选择的
2020-10-04 09:13:10 597
原创 1082. 数字游戏 (数位DP)
题目链接:点此跳转题目大意:科协里最近很流行数字游戏。某人命名了一种不降数,这种数字必须满足从左到右各位数字呈非下降关系,如 123,446。现在大家决定玩一个游戏,指定一个整数闭区间 [a,b],问这个区间内有多少个不降数。输入格式输入包含多组测试数据。每组数据占一行,包含两个整数 a 和 b。输出格式每行给出一组测试数据的答案,即 [a,b] 之间有多少不降数。数据范围1≤ a ≤ b ≤231−1解题思路:f[i][j] 数组代表着最高位是j并且一共有i位不降数的集合f[i
2020-10-03 19:20:31 1013
原创 Acwing 1081 度的数量 (数位dp)
题目链接:点此跳转题目大意:求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=24+2018=24+2120=24+22输入格式第一行包含两个整数 X 和 Y,接下来两行包含整数 K 和 B。输出格式只包含一个整数,表示满足条件的数的个数。数据范围1≤X≤Y≤231−1,1≤K≤20,2≤B≤10解题思路:把num转换成b次幂的数,然后让b次
2020-10-03 10:52:11 227
原创 AcWing 894. 拆分-Nim游戏 (博弈+记忆化搜索)
题目链接:点此跳转给定n堆石子,两位玩家轮流操作,每次操作可以取走其中的一堆石子,然后放入两堆规模更小的石子(新堆规模可以为0,且两个新堆的石子总数可以大于取走的那堆石子数),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数n。第二行包含n个整数,其中第i个整数表示第i堆石子的数量ai。输出格式如果先手方必胜,则输出“Yes”。否则,输出“No”。解题思路:运用SG函数递归求解,枚举每次操作后形成的石子局面 插入到mex集合中,最后枚举i求解m
2020-09-27 10:51:57 196
原创 CF859C Pie Rules(伪博弈+dp)
题目连接:跳转到网站题目大意:有 n 个物品,每个物品有不同的价值,物品按顺序分给两个人,有一块令牌,每回合拥有令牌的人拥有物品的分配权,但是该回合未获得物品的那个人会在下回合获得令牌,开始令牌在Bob手里,两个人都采取最优的策略,问最后各能获得的最大价值是多少。解题思路:因为数据范围给的n<=50,(要是给1e3的话 就比较好看出是个dp了)就是开一个dp[i]记录到第i个为止,当前持有令牌的人所得到的最大权值,从n逆序遍历:如果当前持有令牌的人不要这个物品,那么dp[i]=dp[i+1] (
2020-09-25 10:55:18 231
原创 Calendar Game (博弈+记忆化dp)
Calendar Game题目大意:Adam 和 Eve 玩游戏,在 1900 年的 1 月 1 号到 2001 年的 11 月 4 号之间随机选一个日期,两人轮流增加日期, Adam 先手。规定只能往此日期的下一天移动或者下个月的这一天移动(如果下个月没有这一天,则不能移动)。最终谁先移动到 2001 年的 11 月 4 号,谁就获胜。现给定日期,判断 Adam 是否有取胜策略。解题思路:记忆化搜索,对于每个日期,如果下两个状态有一个非必胜态,那么这个状态是必胜态,如果后继状态都是必胜态,那么该状态
2020-09-24 10:01:45 333
原创 AcWing 889. 满足条件的01序列 (组合计数 / 卡特兰数)
满足条件的01序列 给定n个0和n个1,它们将按照某种顺序排成长度为2n的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中0的个数都不少于1的个数的序列有多少个。输出的答案对1e9+7取模。输出格式共一行,包含整数n。输出格式共一行,包含一个整数,表示答案。数据范围1≤n≤1e5解题思路:可以把01串问题转换成坐标系问题,0的话代表x轴 , 1 代表y轴 ,我们一共有 n 个1 ,n个0 所以一定会走到 (n,n)这个点 所以全部的组合方式是:C(2n,n) 但是题目有额外的要.
2020-09-18 17:49:50 368
原创 AcWing 887. 求组合数 III (卢卡斯定理: a b longlong 范围 % 质数p )
求组合数给定n组询问,每组询问给定三个整数a,b,p,其中p是质数,请你输出C b a mod p的值。输入格式第一行包含整数n。接下来n行,每行包含一组a,b,p。输出格式共n行,每行输出一个询问的解。数据范围1≤n≤20,1≤b≤a≤1e18,1≤p≤105,解题思路:卢卡斯定理的模板题 , a和b的取值到了1e18 用递推还有逆元的方式就不太行了,这里用到了:卢卡斯定理: C ( b , a ) % p = C( b % p , a % p ) * C( b / p ,
2020-09-18 14:50:05 174
原创 AcWing 831. KMP字符串 (kmp模板)
KMP字符串给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串S。输出格式共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空格隔开。数据范围1≤N≤1051≤M≤106说明:next[i]=j 为 :p串的 p[ i —.
2020-09-14 21:12:40 243
原创 AcWing 841. 字符串哈希 (字符串哈希模板)
字符串哈希给定一个长度为n的字符串,再给定m个询问,每个询问包含四个整数l1,r1,l2,r2,请你判断[l1,r1]和[l2,r2]这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数n和m,表示字符串长度和询问次数。第二行包含一个长度为n的字符串,字符串中只包含大小写英文字母和数字。接下来m行,每行包含四个整数l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字符串的位置从1开始编号。输出格式对于每个询问输出一个结果,如果两个字
2020-09-14 18:35:27 168
原创 AcWing 835. Trie字符串统计 (字典树模板题)
Trie字符串统计维护一个字符串集合,支持两种操作:“I x”向集合中插入一个字符串x;“Q x”询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包含一个操作指令,指令为”I x”或”Q x”中的一种。输出格式对于每个询问指令”Q x”,都要输出一个整数作为结果,表示x在集合中出现的次数。每个结果占一行。数据范围1≤N≤2∗104解题思路:很显然这是一个字典树的模板题
2020-09-13 10:48:39 145
原创 中国石油大学2020年秋季组队训练赛第六场 H The Biggest Triangle (空间几何)
H The Biggest Triangle题目大意:给出n条直线(以两个点的形式给出),求这些直线交点形成的三角形的最大周长解题思路:n<=100 直接枚举3条直线,然后要注意两个直线没有交点的情况(平行),直接continue即可。Code:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;const int
2020-09-12 11:22:12 194
原创 牛客练习赛23 D.托米的咒语 (序列自动机 next_permutation 全排列函数)
托米的咒语 题目大意:托米没有完成上一个任务,准备施展黑魔法推倒 1317黑魔法咒语被描述为一个 长为 n 的,仅包含小写英文字母 ‘a’…‘i’ 的字符串,在托米所在的星球,魔法造成的每次有效伤害都是来自他的一个子序列,对于每一个 ‘a’… ‘i’ 的排列(共 9! 种),若作为咒语的子序列出现, 就会造成 1 的伤害而咒语的总伤害为所有 ‘a’… ‘i’ 的排列造成的伤害值之和,托米能打出多少点的伤害,是否能击败 1317 呢?输入描述:一行输入一个字符串 s输出描述:一行输出一个数,表
2020-09-12 11:14:31 167
原创 牛客网 德玛西亚万岁 状压DP
德玛西亚万岁链接:https://ac.nowcoder.com/acm/problem/15034来源:牛客网德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标记为1的土地才能容纳一个英雄。德玛西亚的英雄
2020-09-12 10:18:09 323
转载 ACM训练史上最详细计划(大神养成记)
https://blog.csdn.net/qq_40688707/article/details/80602064看完人家的博客,发现任重道远。。。一位高手对我的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序
2020-09-10 09:01:25 823 1
原创 POJ 2337 Catenyms(有向欧拉图:输出欧拉路径)
Catenyms题目大意:给出N个单词,现在要一组单词序列。该序列包含了所有N个单词,且该序列中的前一个单词的最后一个字母与后一个单词的第一个字母相同。如果存在多个这种首尾相连的序列,就输出字典序最小的那个即可。解题思路:题意很明确,就是让输出一个字符串的欧拉路径(欧拉路径(欧拉通路)每条边都通过且仅通过一次)欧拉回路图G是连通的,无孤立点。无向图奇点数为0;有向图每个点的入度必须等于出度。欧拉路径图G是连通的,无孤立点。无向图奇点数为0或2,并且这两个奇点其中一个为起点另外一个为终点。
2020-09-09 11:17:44 152
原创 POJ 1811 Prime Test(大素数判定Miller-Rabin+素因子分解Pollard-rho)
Prime Test题目大意:给出一个正整数n,判断其是否为素数,如果是则输出Prime,否则输出n的最小素因子解题思路:因为 2<=n<2^54 ,n的取值太大了,所以判素数要用Miller-Rabin素数判定,如果不是素数则用Pollard-rho算法对n素因子分解找出最小素因子。Code:#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>
2020-09-09 09:51:22 141
原创 HDOJ:4139 Big Division (分解素因子)
Big Division题目大意:输入两行数,分别以其乘积作为分母和分子,输出化约分后的答案。解题思路:fac数组记录分子和分母质因子出现的次数,如果是分子的话 +1 ,分母的话 -1 ,最后如果fac[i]>0 ,说明分子较大,ans*= pow(i1.0,fac[i])即可,分母的话 ans= pow(i*1.0, - fac[i]);Code:#include<iostream>#include<cmath>#include<cstring>us
2020-09-09 09:42:20 201
原创 POJ 1141 Brackets Sequence (DP+打印路径)
Brackets Sequence题目大意:定义合法的括号序列如下:1 空序列是一个合法的序列2 如果S是合法的序列,则(S)和[S]也是合法的序列3 如果A和B是合法的序列,则AB也是合法的序列例如:下面的都是合法的括号序列(), [], (()), ([]), ()[], ()[()]下面的都是非法的括号序列(, [, ), )(, ([)], ([(]给定一个由’(’, ‘)’, ‘[’, 和 ‘]’ 组成的序列,找出以该序列为子序列的最短合法序列。解题思
2020-09-08 17:58:10 112
转载 【博弈论】博弈论入门笔记(四类基础博弈结论+SG函数)
1.巴什博奕(Bash Game):只有一堆n个物品,两个人轮流轮流从中取物,每次最少取一个,最多取m个,最后取光的人获胜。(谁拿了最后一个谁赢)结论:1.if(n%(m+1) != 0) ,则先手必赢2.if(n%(m+1) == 0),则后手必赢也就是给对手留下m+1个物品,这样的话,对手则处于必败态。2.威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。结论:1.(int)((bk
2020-09-08 16:46:09 691
原创 AcWing 898. 数字三角形 (dp入门)
数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数n,表示数字三角形的层数。接下来n行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。输出格式输出一个整数,表示最大的路径数字和。数据范围1≤n≤500,−1
2020-09-07 22:20:30 117
原创 AcWing 874. 筛法求欧拉函数 (数论/线性筛/欧拉函数)
筛法求欧拉函数给定一个正整数n,求1~n中每个数的欧拉函数之和。输入格式共一行,包含一个整数n。输出格式共一行,包含一个整数,表示1~n中每个数的欧拉函数之和。数据范围1≤n≤106输入样例:6输出样例:12解题思路:用到了线性筛的算法,因为一个数如果是质数的话,它的欧拉函数值就为i-1;因为(1~~i-1)都与他互质,非质数的情况下,当i*primes[j]==0 时,欧拉函数为 phi[i * primes[j]]=phi[i] * primes[j],因为欧拉函数只与有多少种质
2020-09-03 14:51:30 261
原创 AcWing 871. 约数之和 (式除法/因式分解)
约数之和给定n个正整数ai,请你输出这些数的乘积的约数之和,答案对109+7取模。输入格式第一行包含整数n。接下来n行,每行包含一个整数ai。输出格式输出一个整数,表示所给正整数的乘积的约数之和,答案需对109+7取模。数据范围1≤n≤100,1≤ai≤2∗1e9解题思路:约数之和等于各个质因子从零到幂指数之和的乘积;Code:#include<iostream>#include<unordered_map>using namespace std;ty
2020-09-03 13:22:55 173
原创 AcWing 870. 约数个数 (式除法/因式分解)
约数个数给定n个正整数ai,请你输出这些数的乘积的约数个数,答案对109+7取模。输入格式第一行包含整数n。接下来n行,每行包含一个整数ai。输出格式输出一个整数,表示所给正整数的乘积的约数个数,答案需对109+7取模。数据范围1≤n≤100,1≤ai≤2∗10^9解题思路:约数个数等于各个质因子的幂指数+1 的乘积,然后利用这个定理,先把各个数分解质因子,用hash表存储幂指数,最后乘起来即可。Code:#include<iostream>#include<un
2020-09-01 16:32:15 255
原创 AcWing 848. 有向图的拓扑序列 (拓扑排序模板)
有向图的拓扑排序给定一个n个点m条边的有向图,点的编号是1到n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。输入格式第一行包含两个整数n和m接下来m行,每行包含两个整数x和y,表示存在一条从点x到点y的有向边(x, y)。输出格式共一行,如果存在拓扑序列,则输出拓扑序列。否则输出-1。数据范围1≤n,m≤1e5拓扑排序:判
2020-09-01 12:15:07 352
原创 动态规划 背包九讲 背包问题求具体方案
背包问题求具体方案有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 字典序最小的方案。这里的字典序是指:所选物品的编号所构成的序列。物品的编号范围是 1…N。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一行,包含若干个用空格隔
2020-09-01 11:11:25 241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人