acwing abc dfs 97

AT_abc324_e [ABC324E] Joint Two Strings 题解

题目大意 给你 \(n\) 个字符串 \(s\),和一个字符串 \(t\)。 问你,有多少组是 \(s_j\) 拼在 \(s_i\) 后面所组成的新字符串中,\(t\) 是其子序列。 思路 分析:\(5 \times 10^5\) 的数据肯定需要 \(O(n)\) 或 \(O(n \log n)\) ......
题解 324 Strings AT_abc Joint

[ABC327D] Good Tuple Problem 题解

分析: 这一道题很容易发现可以用并查集来维护 (不知道为什么其他人都用了图论),\(a_i\) 与其对应的 \(b_i\) 代表着 \(a_i\) 这个集合里不能存在着 \(b_i\)。 根据只有存在两个集合,所以我们会发现,若 \(x\) 与 \(y\) 不在一个集合且 \(x\) 与 \(z\) ......
题解 Problem Tuple 327D Good

对acwing193的解释

首先是估价函数的解释 由于\(x\)较大,所以\(x\)一直平方是最快的能到达\(p\)及以上的方法,所以这个估价函数比实际代价小(或等) 再看\(gcd\)这个剪枝 把八种情况列出,如果\(x\)和\(y\)都是\(gcd=d\)的倍数,那么加减或翻倍之后的新的\(x\)和\(y\)一定也是\(d ......
acwing 193

[ABC321G] Electric Circuit 状压DP

用到了好多技巧的状压DP 我们先统计总数然后除以m的阶乘就可以了 设f[i]表示状态为i的集合造成的贡献数(也就是状态为i的集合 不与集合外的点联通 且 这个集合联通块数是1 的情况数) 不与集合外的点联通的话只用考虑结合i之间连边,集合外那些点之间两边就可以啦 这个集合联通块数是1 就比较难处理了 ......
Electric Circuit 321G ABC 321

dfs-单词匹配2

题目描述 在一个字符矩阵中,可把横向或竖向连续相邻的字符、按顺序组成一个单词,例如下图所示的 XE、ACX、STJIIE 给定一个字符矩阵 charMatrix 和目标单词列表 words,请计算这个字符矩阵可以组成多少个 words 中的单词,并返回这个数量: 矩阵中每个格子的字符,对于同一个单词 ......
单词 dfs

abc290g O(TD)算法

前言 似乎洛谷上的题解和AT官方都给的 \(O(TD^2)\) 算法? 这里给出乱搞搞出的一种 \(O(TD)\) 算法。 题解 首先发现 \(D\) 虽然没给出固定上界,但显然不超过 \(log_2 10^{18}=60\)。 再接下来可以发现删边等价于先选一颗子树,再删掉这颗子树内部的子树。 先 ......
算法 290g abc 290 TD

dfs思想方式

dfs 深度优先搜索:一条路走到黑 基本模型: Returntype dfs(参数) { 判断边界(返回) 扩展状态 dfs下一步 返回} dfs + 记忆返回值 = 记忆化搜索 class Solution { public: int minPathCost(vector<vector<int>> ......
思想 方式 dfs

acwing 第 130 场周赛  (前缀和,dfs,对不同边的处理)

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<climits> using namespace std; typedef long long LL; const int N = 5 ......
前缀 acwing 130 160 dfs

loj144&145 dfs序+树状数组/线段树

[https://loj.ac/p/144](loj144) [https://loj.ac/p/145](loj145) 两题非常相似,一题的权值修改是在点上的,一题的权值修改是在整棵子树上的。 首先我们要了解dfs序,并记录每个节点的子树大小sz,对于一个节点,在dfs序上sz长的区间全都是他的 ......
线段 数组 loj 144 amp

[ABC328D] Take ABC 题解

链接 如果只是扫一遍肯定是不行的,所以我们使用一个栈,遇到 C 就判断栈顶的两个元素是不是分别为 B 和 A。这样就能做出来这道题了。 代码 #include<bits/stdc++.h> using namespace std; string s; char stk[200010]; int ma ......
题解 ABC 328D Take 328

AtCoder Beginner Contest(abc) 326

B - 326-like Numbers 难度: ⭐ 题目大意 如果一个三位数的百位和十位的乘积等于个位, 那么这个数就是合法的; 问大于等于n的最小的合法的数是多少; 解题思路 因为数据范围很小, 所以可以直接暴力; 神秘代码 #include<bits/stdc++.h> #define int ......
Beginner AtCoder Contest 326 abc

AcWing 算法基础课week 1 总结(万字长文)

AcWing 算法基础课week 1 总结 总结点 1:快速排序(分治思想) 题1:从小到大排序 主体思路:定义一个数x属于数组s,利用双指针,将数组分为大于等于x和小于等于x的两部分,然后递归处理。(具体步骤如下) 1. 如上图所示,我们定义一个数组s用来储存n个数据,然后定义两个指针i j,分别 ......
长文 基础课 算法 基础 AcWing

AcWing 768. 忽略大小写比较字符串大小

题目链接: #include <iostream> using namespace std; string get(string s) { string res; for (auto c : s) res += tolower(c); return res; } int main() { strin ......
大小 字符串 字符 AcWing 768

AtCoder Beginner Contest 329 (ABC329)

A. Spread 不说了,代码。 B. Next 不说了,代码。 C. Count xxx Description 给定一个长度为 \(N\) 的字符串 \(S\),求 \(S\) 中非空连续,并且包含重复字符的连续子串长度。 例如 $S = $ aaabaa,则它满足上述条件子串为 a,aa,a ......
329 Beginner AtCoder Contest ABC

DFS 序

最近接触到一些 DFS 序的题,它可以用来解决一些关于子树的问题。 DFS 序本质就是一棵树在深度优先搜索时访问节点的顺序。比如有下面一棵树,其 DFS 序就是 $1 \; 2 \; 4 \; 7 \; 8 \; 5 \; 3 \; 6 \; 9$。 DFS 序有一个很重要的性质,以节点 $u$ 为 ......
DFS

[ABC329E]Stamp

为了方便,我们记 \(T\) 为印章。 不可能出现上图的情况(或者说无效),区间都必须是左右端点严格递增的。 发现新增一个区间,无非就是放在上面/下面两种情况。 考虑用 \(f[i][j]\) 表示前 \(i\) 个字母全部匹配,且第 \(i\) 个字母恰好在最右侧的模式串的第 \(j\) 个位置是 ......
Stamp 329E ABC 329

[ABC328C] Consecutive 题解

Hello World 链接 这道题是一个很明显的前缀和,我们把 $sum_i$ 表示为前 $i$ 个字符有多少个有重复,查询的时候就用 $sum_{r-1}-sum_{l-1}$ 就行了。 代码 #include<bits/stdc++.h> using namespace std; string ......
题解 Consecutive 328C ABC 328

[ABC326C] Peak 题解

题目链接 题目思路 这个问题要求找到一个半开区间,使得在这个区间内包含尽可能多的礼物。首先,我们需要将输入的礼物坐标按照从小到大的顺序进行排序。然后,我们可以使用双指针的方法来寻找最佳的区间。 代码 以下是代码解释: #include<bits/stdc++.h> using namespace s ......
题解 326C Peak ABC 326

Acwing.第130场周赛

Acwing.第130场周赛 比赛链接 A.最大数和最小数 题目链接 思路: 简单模拟,使用max()和min()函数就可以了 代码: #include<bits/stdc++.h> using namespace std; void solve(){ int a,b,c; cin>>a>>b>>c ......
Acwing 130

AtCoder Beginner Contest(abc) 329

B - Next 难度: ⭐ 题目大意 给定n个数, 输出其去重后的次大值; 解题思路 暴力就行; 神秘代码 #include<bits/stdc++.h> #define int long long #define IOS ios::sync_with_stdio(false), cin.tie( ......
Beginner AtCoder Contest 329 abc

深度优先搜索(DFS)

深度优先搜索(DFS) 我们以二叉树的遍历为例子。 先序遍历 遍历过程 访问根节点 先序遍历其左子树 先序遍历其右子树 中序序遍历 遍历过程 中序遍历其左子树 访问根节点 中序遍历其右子树 后序遍历 遍历过程 后序遍历其左子树 后序遍历其右子树 访问根节点 我们使用数组来模拟二叉数,使用代码实现如下 ......
深度 DFS

[ABC326D] ABC Puzzle 题解

题目链接 解法分析 这个问题是一个经典的排列谜题,通过回溯算法来穷举所有可能的字符排列,然后验证是否满足行和列约束。这个解决方案可以用于解决类似的谜题,其中需要满足一定的排列条件。通过仔细考虑约束条件,可以加快解决问题的速度,减少不必要的计算。 更详细的我写在代码里了。 代码 #include <b ......
题解 ABC Puzzle 326D 326

AtCoder Beginner Contest(abc) 296

B - Chessboard 难度: ⭐ 题目大意 给定一个8*8的字符矩阵, 其中只有一个' * ', 输出它的坐标; 其坐标的列用字母表示, 行用数字表示, 具体看样例解释; 解题思路 签到题不多嗦了; 神秘代码 #include<bits/stdc++.h> #define int long ......
Beginner AtCoder Contest 296 abc

AtCoder Beginner Contest(abc) 325

B - World Meeting 难度: ⭐ 题目大意 一家公司在全球多地都有分公司; 现在总公司想选择一个时间点让所有公司都来开会; 但是每个公司的上班时间是 9:00-18:00; 给定每个公司的人数和相对于总公司的时差, 会议持续一个小时, 请问总公司最多能让多少人参加会议 解题思路 因为数 ......
Beginner AtCoder Contest 325 abc

AcWing 1017. 怪盗基德的滑翔翼——最长上升子序列

最长上升子序列 1、\(O(n^{2})\) 简单DP做法 \[dp[i]=\max_{h[j] < h[i]} [dp[j] + 1] \]#include<bits/stdc++.h> using namespace std; const int N = 105; int h[N]; int d ......
序列 AcWing 1017

acwing276机器任务的证明

假设我们已经给每一个任务分配了一种模式了 那么相同模式的任务排在一起的时候肯定重启次数最小 对涉及到的模式,我们还原回二分图上 就是在二分图上尽量选择少的节点(一种模式代表一次重启次数,因为相同模式都是放在一起的),使每一个任务都可以被安排 就可以转换为最小点覆盖问题 ......
机器 任务 acwing 276

[ABC259Ex] Yet Another Path Counting

\(\text{Links}\) [ABC259Ex] Yet Another Path Counting Luogu Blog 题外话 淀粉质题单做不动了怎么办?来做一道根号题振奋一下精神吧/se! 我要饿死了,我要吃饭,以后在学校还是不要不吃早饭了/kk 题意 给一个 \(n\times n\) ......
Counting Another Path ABC 259

【题解 ABC180F】 Unbranched

[ABC180F] Unbranched 题面翻译 求 \(N\) 个点,\(M\) 条边且满足以下条件的图的数量: 图中无自环; 每个点度数最多为 \(2\); 连通块大小的最大值恰好为 \(L\)。 答案对 \(10^9+7\) 取模。 \(2\le N\le300\),\(1\le M,L\l ......
题解 Unbranched 180F ABC 180

[ABC288D] Range Add Query

先考虑将原序列差分一下,事实上,我们对于这类每次可以操作一个区间减去固定值的时候,我们一般都需要差分,因为差分后,我们的操作实际上相当于 **在差分序列上修改两个点**,这个时候的问题是好考虑的。 这时候问题转化为,我们每次可以选择两个距离恰好为 $k + 1$ 的点,将 $l$ 加上 $w$,将 ......
Range Query 288D ABC 288

AtCoder Beginner Contest(abc) 324

B - 3-smooth Numbers 难度: ⭐ 题目大意 给定一个数字n, 问是否可以找到两个数x和y, 使得 n = 2x3y; 解题思路 因为n的范围最大到1e18, 所以只需要暴力找x和y即可; 神秘代码 #include<bits/stdc++.h> #define int long ......
Beginner AtCoder Contest 324 abc