摘要:
# [《从 C++98 到 C++20,寻觅甜甜的语法糖们》](https://www.luogu.com.cn/blog/AccRobin/grammar-candies#) # 这篇文章对《从 C++98 到 C++20,寻觅甜甜的语法糖们》稍有改动 - find(bg,ed,val) - 返回 阅读全文
摘要:
# $ 自编 2048 小游戏$ ```cpp //2048小游戏原创 #include #include #include #pragma GCC optimize(2) #pragma GCC optimize(3) inline int max1 (int x, int y) { return 阅读全文
摘要:
# $ 自编 2048 朝代版 $ ```cpp #include #include #include #pragma GCC optimize(2) #pragma GCC optimize(3) void chaodai (int n) { if (n == 2) printf ("商") ; 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT4160) ### 思路 对于这道题,读入的 $a$ 数组最终肯定会变成 $1$。 $\because$ 读入的是 $1 \sim n$,最小值是 $1$。 $\therefore$ $a$ 数组最终肯定会 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT3732) ### 思路 $\because$ 要求的是 $k$ 的最大长度, $\therefore$ 无需考虑翻转次数。 对于第 $i$ 个字符来说,假设它不等于前 $i - 1$ 个字符,前 $i - 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT2299) ___ ### 思路 这道题我们可以开一个桶, 统计一共有多少个不同的数。 如果个数是偶数的话, 最后的答案要 $-1$。 比如样例 ```cpp 5 1 2 1 3 7 ``` 不同的数有 $ 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/solution/AT3882) ___ ### 思路 这道题很简单,就是纯 Dfs。 先建图,表示 $l$ 在 $r$ 的左边,距离为 $d$,$r$ 在 $l$ 的右边,距离为 $-d$。 再开一个 $f$ 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT4733) ___ ### 思路 分层图跑最短路。 ___ $∵$ 题目中说每次只能走 $3$ 步, $∴$ 我们可以把一条边拆成三条边, 拆成 $1$ 到 $2$,$2$ 到 $3$,$3$ 到 $2$ 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT4848) ___ ### 思路 这道题,如果一边输入一边 Dfs,肯定会超时的。 那么,我们注意到题目中说的一句话: **每次操作将 $p_i$ 的子树中所有点的计数器增加 $x_i$。** 那么可以离线 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/SP904) ___ ### 思路 我们可以进行两遍 Dfs,第一遍 Dfs,把这个点与它连通的图形打标记,第二遍 Dfs,统计图形的周长。 怎样统计周长??? 如果到了边界,就统计四个方向是否走过,如果没走过 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT4299) ___ ### 思路 灯有两种形式:一种是开,一种是关,我们自然而然的想到了二进制:用 $1$ 代表开,用 $0$ 代表关。这样我们就可以用 `bool` 类型来存下一个灯的状态。 由于这道题数 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT1716) ___ ### 思路: + 若 $A$ 袋有一个数等于 $C$,那么答案就包含着 $B$ 袋中的两个数; + 若 $B$ 袋有一个数等于 $C$,那么答案就包含着 $A$ 袋中的两个数; 当然, 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT4724) ___ ### 思路 这一题可以看成从左边取出 $l$ 个宝石,从右边取出 $r$ 个宝石,最后从手中取出 $k-l-r$ 颗宝石。 但是从手中取出的 $k-l-r$ 颗宝石不一定是手中最小的 阅读全文
摘要:
### [题目传送门](https://www.luogu.com.cn/problem/AT3637) ___ ### 思路 因为拼接后的字符串满足对称,所以这道题其实就是要求 $i \sim len$ 的字符串是否回文。 本题中字符串 $S$ 的长度很短,所以可以直接暴力,时间复杂度为 $O(n 阅读全文
摘要:
# 题意 $N$ 个点, $N - 1$ 条边,求只与 $1$ 个点连通的点的数量。 # 思路 定义一个桶数组 $a_i$,表示第 $i$ 个点连通的点的数量,一边输入一边统计,最后遍历一遍,统计答案。 ### 代码如下: ```cpp #include using namespace std; i 阅读全文
摘要:
# 思路 一道结论题。 当有任意一个点有奇数个度时,那么必然存在一条边从这个点出发只被加过奇数次,不符合题意,故只要有一个点出现了奇数次,直接输出 `NO` 即可。 当所有点都是偶数次的时候,一条链肯定是满足题目的要求的,直接输出 `YES` 即可。 # 代码如下 ```cpp #include # 阅读全文
摘要:
# 思路 因为 $a_i$ 在 $1 \sim 10^9$ 均匀随机生成,所以可以考虑枚举 $a_i$ 的倍数,用 $map$ 记录每个数被枚举的次数。 # 代码如下 ```cpp #include // #define int long long #define rep(i, l, r) for( 阅读全文
摘要:
树状数组模板(3) 题意要求:给定一个序列,支持区间修改和区间查询。 设 $tree_i=a_i-a_{i-1}$(差分),那么容易得到:$tree_1+tree_2+...+tree_i=a_i$ 这个公式 所以,只需要维护 $tree$ 数组就可以实现区间修改了。 那么问题来了,如果这样,那么如 阅读全文
摘要:
## 思路 这道题,线段树模版题。 - 操作 $1$:将 $A_X$ 替换为 $A_X \oplus Y$(单点修改) - 操作 $2$:输出 $A_{X}\oplus A_{X+1}\oplus A_{X+2}\oplus\dots\oplus A_Y$(区间异或和)。 于是这道题只需要维护一个支 阅读全文
摘要:
## 思路 一道线段树优化 dp 题。 设 $dp_i$ 表示以第 $i$ 个数字结尾的最长选数列长度,则 $dp_i=\max(dp_i, dp_j)+1$,其中 $j using namespace std; #define int long long #define rep(i, l, r) 阅读全文