A - Spoiler (abc344 A) 题目大意 给定一个字符串,包含两个|,将|和两个|之间的字符消去。 解题思路 按照题意模拟即可。 Python比较简洁。 神奇的代码 s = input().split('|') s = s[0] + s[2] print(s) B - Delimite ...
嗯,这就是小学难度,起码我学这些东西的时候我是个小学生 线性求逆元 这个玩意要分两块讲,\(p\) 是模数。 线性求 \(1 \sim N\) 的逆元 对于一个 \(i\): \[\text{设} a = \lfloor \frac{p}{i} \rfloor, \ b = p \bmod i, \ ...
title: categories: 算法题解 description: tags: - atcoder - 思维 - 线段树 - DP - 字符串hash - 状压DP cover: /img/chino/vec/chino44.jpg katex: true date: 2024-03-07 1 ...
树、森林 树的存储结构 双亲表示法 双亲表示法的存储结构 #define MAX_TREE_SIZE 100 typedef struct { int data; int parent; }PTNode; typedef struct { PTNode nodes[MAX_TREE_SIZE]; i ...
题意 给你 \(N\) 个由小写字母组成的字符串 \(S_1, S_2, \ldots, S_N\),找出一个母串使得它包含所有这些字符串作为它的子串,最小化该母串的长度并输出。 \(1 \leq N \leq 20\),\(\sum |S_i| \leq 2 \times 10 ^ 5\) (没错 ...
树的基本概念 树的定义 树是由\(n(n \geq 0)\)个节点组成的有限集。当\(n = 0\)时,称为空树。 任意一棵非空树应满足以下两点: (1)有且仅有一个特定的称为根的节点; (2)当\(n > 1\)时,其余节点可分为\(m(m>0)\)个互不相交的有限集\(T_1, T_2, \do ...
977 有序数组的平方 冒泡排序 暴力冒泡排序实现 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { int size = nums.size(); int tmp; for (int i = 0; i < ...
1. 数组 数组定义 数组(Array)是有序的元素序列。属于线性结构(有且仅有一个前驱、有且仅有一个后继)。 数组特点 数组的关键在于在内存中的物理地址对应的是一段连续的内存。这意味着如果想要在任意位置删除/新增一个元素,那么该位置往后的所有元素,都需要往前挪/往后挪一个位置。假设数组的长度是 n ...
A - Yay! (abc342 A) 题目大意 给定一个字符串,两个字符,其中一个只出现一次,找出它的下标。 解题思路 看第一个字符出现次数,如果是\(1\)则就是它,否则就是不是它的字符。 神奇的代码 #include <bits/stdc++.h> using namespace std; u ...
原题链接:COGS 775 题目描述: “南山之首曰鹊山。其首曰招摇之山,临于西海之上,多桂,多金玉。有草焉,其状如韭而青华,其名曰祝余,食之不饥……又东三百里,曰堂庭之山,多棪木,多白猿,多水玉,多黄金。又东三百八十里,曰猨翼之山,其中多怪兽,水多怪鱼,多白玉,多蝮虫,多怪蛇,名怪木,不可以上。… ...
近期某手游出了个活动,经确认发现本质为十滴水游戏。 简单说一下规则,棋盘大小通常为6x6,在游戏开始时,棋盘随机有若干水珠,其大小范围为1-4。点击棋盘内的一格,会消耗玩家持有的1个小水滴,同时使得该单元格的水珠大小+1。如果水珠大小超过4,则水珠发生爆炸并消失,同时向四个方向各发射1个小水滴。小水 ...
2024年二月信息集训是数学专题,请来了101的高考前十名lsy学长来给我们介绍OI中的数学,主要包括了数论专题,博弈论与容斥。 ...
《数据结构与算法之美》读书笔记 写在前面 这本书的大部分内容比较浅显,因此只挑DSAA课程上没有涉及或没有深入讨论的点总结 第二章 数组相关 提高传统数组插入/删除数据效率的方法: 如果插入的数据不要求有序,可以直接把某位的原数据替换成新数据,然后把原数据放到数组末尾,避免大面积的数据移动。 删除时 ...
A - Print 341 (abc341 A) 题目大意 给定\(n\),输出 \(n\)个 \(0\)和 \(n+1\)个 \(1\)交替的字符串。 解题思路 \(101010...\)循环输出即可。 神奇的代码 n = input() s = "10" * int(n) + "1" print ...
写在前面 今天是农历大年初三,祝大家新年快乐! 尽管新旧交替只是一个瞬间,在大家互祝新年快乐的瞬间,在时钟倒计时数到零的瞬间,在烟花在黑色幕布绽放的瞬间,在心底默默许下愿望的瞬间……跨入新的一年,并不意味了一切都会朝着更美好,也没有什么会从天而降,我们赋予了它这份意义,让它自然裹挟着新的爱与希望而来 ...
1.博弈论 Wallet Exchange 爱丽丝和鲍勃很无聊,于是他们决定用自己的钱包玩一个游戏。爱丽丝的钱包里有 a 枚硬币,而鲍勃的钱包里有 b 枚硬币。 双方轮流玩,由爱丽丝先走棋。在每个回合中,玩家将按顺序执行以下步骤: 选择与对手交换钱包,或保留现有钱包。 从玩家当前钱包中取出 1 个硬 ...
单调队列 239. 滑动窗口最大值 int *maxSlidingWindow(int *nums, int numsSize, int k, int *returnSize) { *returnSize = numsSize - k + 1; int *res = (int *) malloc(s ...
A - Arithmetic Progression (abc340 A) 题目大意 给定等差数列的首项、末项、公差。 输出这个等差数列。 解题思路 从首相依次累加公差到末项即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using L ...
滑动窗口 209. 长度最小的子数组 int min(int a, int b) { return a > b ? b : a; } int minSubArrayLen(int target, int *nums, int numsSize) { int res = 0x7fffffff; for ...
构建前缀信息 303. 区域和检索 - 数组不可变 构建前缀和数组,快速计算子数组区间和 class NumArray { public int[] prefixSum; public NumArray(int[] nums) { prefixSum = new int[nums.length + ...