自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 树和基环树上两点间最短距离问题

对于基环树讲,我们可以将环上的每个点都当作根节点来对其子树进行一次dfs做预处理(同普通树)并记录所属根节点,在询问时,如果两点属于同一根节点的子树,那么按照普通树的询问来处理,否则我们将环上若干个相邻的点进行编号为1……tot,那么我们就可以得到两个根之间有两个走法,第一个是dis = abs( id[ x ] - id[ y ]),第二个则是tot-dis,最后取两者最小值加上d[ x ] + d[ y ]就是最短距离了。共 q 行,每行表示一个询问的答案,即点 u 到点 v 的最短距离。

2024-04-21 21:04:00 195 1

原创 [USACO15DEC] Max Flow P

对于这道题我们有两种做法,先来讲比较简单易懂的树上差分做法,对于这种区间加并且离线询问的题目我们很容易想到差分,但是对于一个父节点有多个儿子,于是我们选择在两个儿子处进行加法,因为在它们从LCA处也需要安装路线,所以我们只在LCA打上-1的标记,然后在LCA的父节点处再打上-1的标记。每次增加一条路线,你需要计算并输出当前压力最大的牛棚的压力以及这样的牛棚的个数(即压力最大值和最大值的个数)。接下来 K 行每行两个整数 s 和 t,描述一条从 s 到 t 的运输牛奶的路线。第一行输入两个整数 N 和 K。

2024-04-21 20:53:31 392

原创 [USACO 2015 Feb Silver P3] Superbull

样例解释:让 3 队与 9 队进行比赛,并让 9 队晋级。最后,第 6 队和第 10 队比赛, 10 队获胜。FJ注意到一个不寻常的事情:在任何游戏中,两个团队的总分是两个团队ID的按位异或(XOR)。例如,如果第 12 队和第 20 队将参加比赛,则该游戏的得分为 24 分,因为01100 XOR 10100 = 11000。因为是一场淘汰赛,所以是进行了n-1轮,所以我们很容易想到这是一个最大生成树,所以我们可以暴力n^2建边+kruskal或者直接n^2prim,边权就是两支队伍的id异或值。

2024-04-14 22:44:48 586

原创 严格次小生成树

思路:先用kruskal跑出最小生成树,再枚举非树边并试着去加入,加入后,删掉权值严格小于这条非树边权值的树边中权值最大的树边,如果没有则跳过,最终的答案就是合法的答案中的最小值。接下来 M 行,每行三个整数 u, v, w 表示边的两个端点和权值。(1<=u,v<=N, 0<=w<=109, 数据保证严格次小生成树一定存在)第一行两个整数 N, M 分别表示点数和边数。(2<=N<=105, N<=M<=3*105)两个整数分别表示最小生成树的边权之和 以及 严格次小生成树的边权之和,用空格隔开。

2024-04-14 20:10:44 385

原创 Mobile phones ( IOI2001 )

思路:用二维前缀和做,所以可以用树状数组进行维护,时间复杂度大概为O(qlognlogn)op=2时求L<=x<=R&&B<=y<=T时所有[ x ][ y ]点上数字的总和。简单翻译一下:刚输入时op=0并给出n,结束时op=3。op=1时在[ x ][ y ]这个点加上A。

2024-01-20 22:56:07 1233

原创 最长上升子序列

比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8).总结了四种方法:枚举O(2^n) ,动态规划O(n^2) ,数组维护+二分O(nlogn) ,线段树O(nlogn)你的任务,就是对于给定的序列,求出最长上升子序列的长度。输入的第一行是序列的长度N。第二行给出序列中的N个整数。的时候,我们称这个序列是上升的。),我们可以得到一些上升的子序列(最长上升子序列的长度。

2024-01-20 22:34:34 625

原创 候选人追踪

给定一个包含K名候选人集合S={S1, S2, ... SK},小Hi想知道从投票开始(0时刻),到最后一张票投出的时刻(max{Ti}),期间有多少时间得票最多的前K名候选人恰好是S中的K名候选人。注意这里对前K名的要求是"严格"的,换句话说,S中的每一名候选人得票都要大于任何一名S之外的候选人。对于100%的数据, 1 ≤ N, K ≤ 314159 1 ≤ Ti ≤ 1000000 1 ≤ Ci, SK ≤ 314159。第二行包含2N个整数:T1, C1, T2, C2, ... TN, CN。

2024-01-20 21:53:55 303

原创 约瑟夫问题

N 个人站成一圈,顺时针编号 1 到 N。从 1 开始顺时针数到第 K 个人出圈,然后下一个人继续从 1 开始,数到第 K 个人出圈,以此类推,直至所有人出圈。请输出所有人的出圈顺序。输出一行,包含 N 个正整数,其中第 i 个数表示第 i 个出圈人的编号,整数之间用一个空格间隔。总结了三种方法:暴力O(m*n^2) , 链表O(nm) , 线段树O(nlogm)输入只有一行,包含两个正整数 N, K。

2024-01-20 18:38:04 422

原创 [USACO 2007 Dec Gold] Best Cow Line(数据加强)

在这场比赛中,每个参赛者必须让他的奶牛排成一列,然后带领这些奶牛从裁判面前依此走过。今年,竞赛委员会在接受报名时,采用了一种新的登记规则:取每头奶牛名字的首字母,按照它们在队伍中的次序排成一列。他的调整方式是这样的:每次,他从原队列的首端或尾端牵出一头奶牛,将她安排到新队列尾部。输出一个长度为 N 的字符串,表示可能的最小字典序队列。第二行包含一个长度为 N 的仅由大写字母(A-Z)组成的字符串,表示初始队列。现在请你帮 FJ 算出按照上面这种方法能排出的字典序最小的队列。因此他决定重排队列。

2024-01-20 18:13:46 353

原创 递增N元组

思路:很明显的dp问题,我们定义f[ i ][ j ]表示第i个数选择a[ i ][ j ]的合法方案数,那么可以得到answer=f[ n ][ i ] ( 1

2023-10-01 20:07:20 51

原创 c++表达式计算

表达式中的运算符包含 "+"、"-"、"*"、"/"、"("、")" ,其中 "/" 是整除,即 7/2=3,(-7)/2=-3。(和 C++中的整除运算规则相同)表达式中的数均为正整数,保证中间及最终计算结果在 -2147483648 ~ 2147483647 之间。例如 (1+2)*(3+4) 结果是 21。给定一个四则运算表达式,请你计算它的结果。一个字符串S,代表表达式。

2023-09-24 10:20:05 264 1

原创 CSP-J2020-3表达式

在这种逻辑表达式中,所有操作数都是变量,且它们的取值只能为 0 或 1,运算从左往右进行。为什么会超时呢,现在看一下数据范围:对于 100% 的数据,1≤∣s∣≤1×106, 1≤q≤1×105, 2≤n≤1×105。注意,每一个询问的修改都是临时的,即之前询问中的修改不会对后续的询问造成影响。小 C 想知道,给定一个逻辑表达式和其中每一个操作数的初始取值后,再取反某一个操作数的值时,原表达式的值为多少。对于 100% 的数据,1≤∣s∣≤1×106, 1≤q≤1×105, 2≤n≤1×105。

2023-08-30 22:13:03 126 1

原创 NOIP2014PJ-4子矩阵

本题任务:给定一个 n 行 m 列的正整数矩阵,请你从这个矩阵中选出一个 r 行 c 列的子矩阵,使得这个子矩阵的分值最小,并输出这个分值。例如,下面左图中选取第 2、4 行和第 2、4、5 列交叉位置的元素得到一个 2×3 的子矩阵如右图所示。接下来的 n 行,每行包含 m 个用空格隔开的整数,用来表示问题描述中那个 n 行 m 列的矩阵。相邻的元素:矩阵中的某个元素与其上下左右四个元素(如果存在的话)是相邻的。dp[ i ][ j ]: 前i列选j个且第i列必选的最小分数。算法:枚举行+dp(列)

2023-08-09 21:24:32 72 1

原创 鸡蛋的硬度(dp)

参赛者是来自世 界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法--从高度扔鸡蛋--来 测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a。3个鸡蛋怎么办,4个,5个,更多呢。如果采用其他策略,你可能无法测出鸡蛋的硬度(比如你第一次在第二层的地方扔,结果碎了,这时你不能确定硬度是0还是1),即在最坏情况下你需要扔无限次,所以第一组数据的答案是100。

2023-07-27 14:51:29 103 1

原创 最大子矩阵(dp)

输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。思路:参考最大和问题,做垂直的前缀和,对首尾行进行枚举,时间复杂度为o(n³)比如,如下4 * 4的矩阵。这个子矩阵的大小是15。输出最大子矩阵的大小。

2023-07-27 14:44:46 132 2

原创 矩形分割(二分查找)

数据加强也不怕

2023-05-07 16:43:10 226

原创 回文素数c++

一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。给定位数n,找出所有既是回文数又是素数的n位十进制数。(注:不考虑超过整型数范围的情况)。第二行按照从小到大的顺序输出所有满足条件的素数,两个数之间用一个空格区分。第一行输出满足条件的素数个数。位数n,其中1<=n<=9。

2023-04-19 22:25:26 1120

原创 c++汉诺塔蓝桥杯

第二行包含 a 个整数,相邻的整数之间使用一个空格分隔,表示第一根柱子上的盘子,盘子按从上到下(从小到大)的顺序给出。第三行包含 b 个整数,相邻的整数之间使用一个空格分隔,表示第二根柱子上的盘子,盘子按从上到下(从小到大)的顺序给出。第四行包含 c 个整数,相邻的整数之间使用一个空格分隔,表示第三根柱子上的盘子,盘子按从上到下(从小到大)的顺序给出。每次,可以将一个盘子从一根柱子上移动到另一根柱子上,这个盘子必须是柱子最上方的盘子,而。小蓝的目标是将所有的盘子移动到第三根柱子上。小蓝很喜欢玩汉诺塔游戏。

2023-04-17 20:12:02 111

原创 不同和的数目 - 简单版

给定N个正整数A1, A2, ... AN,从中挑出若干个数(至少一个最多N个),问这若干个数的和有多少种不同的可能。例如对于1, 2, 3能组成的和有1, 2, 3, 4, 5, 6一共6种可能。第二行包含N个正整数A1, A2, ... AN。第一行包含一个整数N。

2023-04-08 10:16:41 137

原创 c++数制转换

输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。a,b是十进制整数,2 =< a,b <= 16。2005~2006医学部计算概论期末考试。

2023-04-01 10:06:31 127

原创 神奇的口袋C++

有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……输出不同的选择物品的方式的数目。

2023-03-26 19:06:36 110

原创 Flip Game

总时间限制:1000ms内存限制:65536kB描述(没有翻译)bwbwwwwwbbwbbwwbbwbwbwwwwwwbwwwb输入输出样例输入bwwbbbwbbwwbbwww样例输出4来源代码(自认为很短):mp[sx][sy];i<4;i++){mp[x][y]=!mp[x][y];j>=0;j--){flip(0,j);cnt++;a/=2;i<4;i++){j<4;j++){

2023-03-22 17:08:52 223

原创 c++爬楼梯

输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级。树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。也可以第一次走两级,第二次走一级,一共3种方法。不同的走法数,每一行输入对应一行输出。

2023-03-22 17:04:39 461

原创 幸运n位数

幸运n位数

2023-03-19 16:19:26 63 1

空空如也

空空如也

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

TA关注的人

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