- 博客(18)
- 收藏
- 关注
原创 [ABC147E] Balanced Path
然后我们在定义一个 c[i][j] 表示 a[i][j]−b[i][j]。第二种,从 i,j−1 走过来,则此时同上,可以得到转移方程为 dp[i][j][k]∣=dp[i][j−1][k−c[i][j]]∣dp[i][j−1][k−c[i][j]]。第一种,从i−1,j 走过来,则此时可以得到转移方程为 dp[i][j][k]∣=dp[i−1][j][k−c[i][j]]∣dp[i−1][j][k+c[i][j]]。第i行第j个格子上面写有两个数字 A[i][j] 和 B[i][j]。
2024-03-18 19:50:53 423
原创 [ABC150C] Count Order
总而言之,你有两个长为N的排列,他们在全排列中都有一席之地,你需要输出他们在。123和321谁排第一呢?出题人不想管了,所以决定让你abs一下。方法很多,数据范围很小,我是直接2遍dfs 直接判断。全排列和字典序应该不用再介绍了。输出一个非负整数表示他们排名的差值。第二行一个长为N的排列表示排列A。第三行一个长为N的排列表示排列B。数据保证2
2024-03-18 19:20:30 418
原创 D.异或和的和 [ABC147D] Xor Sum 4
给你N个数字,求ΣAi XOR Aj(i<j)对10^9+7的余数。根据异或的性质,我们可以求出所有数据两两异或后每一位的数,最后转成十进制数。我们所有数据都从二进制表示的最后一位倒着计算每一位异或后的结果。可知数据为long long 类型,容易超时,故暴力肯定超时。保证2<=N<=3*10^5,0<=Ai<2^60。这行代码负责记录倒数第i位上 1和0 的个数x和y;其中 1ll为 long long 类型的1;负责计算该位上的结果 1还是0;这是一个简单的异或和的和的问题。输出一个整数表示你的答案。
2024-03-18 19:05:56 523
原创 2024牛客寒假算法基础集训营2--Tokitsukaze and Eliminate
第 111 次操作选择颜色 111,可以消除最右边的 222 个宝石,当前剩余宝石为 [2,2,1,2,2,1,1,2,2][2,2,1,2,2,1,1,2,2][2,2,1,2,2,1,1,2,2];初始宝石为 [2,2,1,2,2,1,1,2,2,1,2][2,2,1,2,2,1,1,2,2,1,2][2,2,1,2,2,1,1,2,2,1,2];初始宝石为 [4,1,5,5,2,2,5,2,4,2][4,1,5,5,2,2,5,2,4,2][4,1,5,5,2,2,5,2,4,2];
2024-02-06 13:51:45 421
原创 【每日一题】—— M. MEX Repetition
1.找出那个原数组MEX,由于输入的ai都是属于(1,n)所以我们定义2个数组进行存放,一个存放数据,一个把以数据为下边的赋值为1,最后遍历并找出为值为0的下标的即为MEX;可以发现这个长度为n数组在进行n+1次操作后不发生改变,所以n+1为周期。即k=k%(n+1)只需把找到的MEX添加到数组最后,数组成环循环每N个即为一次每次操作的答案。
2023-12-18 21:12:26 463 1
原创 【每日一题】—— C. Yarik and Array(Codeforces Round 909 Div. 3)
同最大连续子序列差不多的做法,只不过要求前一项和当前的奇偶性不同,且至少要选一项。1.奇偶性交替的时候进行累加,如果累加和
2023-12-18 20:53:46 588 1
原创 Chip and Ribbon
有一条带子被分成 n 个单元格,从左到右编号为 1 到 n。在第一轮中,Monocarp 将芯片放入色带的 第一单元格。Monocarp的目标是在某些回合中使第一个单元格中等于整数 c1 , 第二个单元格中等于整数 c2 ....第n个单元格中等于整数 cn。将芯片移动到下一个单元格(例如,如果芯片在 i 单元格,则将其移动到 i+1单元格)。那么必须要执行操作 2 ,执行操作 2 的次数是 ,a[i]-a[i-1];选择任意一个 x单元格,将芯片传送到该单元格。可以选择芯片当前所在的单元格。
2023-12-11 21:55:48 430
原创 03-树1 树的同构 浙江大学 陈越
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。
2023-09-25 15:39:00 149 1
原创 04-树7 二叉搜索树的操作集 浙江大学 陈越
其中BinTree函数Insert将X插入二叉搜索树BST并返回结果树的根结点指针;函数Delete将X从二叉搜索树BST中删除,并返回结果树的根结点指针;如果X不在树中,则打印一行Not Found并返回原树的根结点指针;函数Find在二叉搜索树BST中找到X,返回该结点的指针;如果找不到则返回空指针;函数FindMin返回二叉搜索树BST中最小元结点的指针;函数FindMax返回二叉搜索树BST中最大元结点的指针。
2023-09-23 10:42:00 115 1
原创 01-复杂度1 最大子列和问题 浙江大学
给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。太简单不过,双重循环,内层循环求出以某一项为起始数据的全部子列的最大值,外层循环,把内层循环的最大值进行比较,找出全部的最大值。
2023-09-22 10:33:14 271 1
原创 02-线性结构1 两个有序链表序列的合并
其中List/* 存储结点数据 *//* 指向下一个结点的指针 *//* 定义单链表类型 */L1和L2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Merge要将L1和L2合并为一个非递减的整数序列。应直接使用原序列中的结点,返回归并后的带头结点的链表头指针。
2023-09-21 12:18:06 245 2
原创 03-树1 树的同构 浙江大学 陈越
我们对输入的数据下标0,1,2,3,.....对应A ,B, C ,D...我们定义空节点为-1,也就是我们的宏定义define Null -1,也就是A的左儿子为-1,C,D的左右儿子都为-1,有儿子的位置为儿子的序号。如果孩子结点为空,则在相应位置上给出“-”。的,a为根节点,本质上可以观察到我们的表格里面出了出现了-1(空节点)外,只出现了1, 2,3,但是我们是0,1,2,3,故0所代表的字母即为根节点。1.全为空,直接为真,2一空一不空,为假,返回0,3都不空,但是根节点元素不对,为假。
2023-08-14 11:19:27 129
原创 02-线性结构4 Pop Sequence分数 25
int top;} Stack;这段代码定义了一个结构体Stack,它表示一个堆栈数据结构。: 表示堆栈的容量,即能够容纳的最大元素数量。: 一个整型数组,用来存储堆栈的元素。int top: 表示堆栈的顶部元素的索引。initStack。
2023-08-12 10:50:18 102 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人