07 2023 档案
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 ("商") ;
AT4160 [ARC099A] Minimization 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT4160) ### 思路 对于这道题,读入的 数组最终肯定会变成 。 读入的是 ,最小值是 。 数组最终肯定会
AT3732 [ARC088B] Wide Flip题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT3732) ### 思路 要求的是 的最大长度, 无需考虑翻转次数。 对于第 个字符来说,假设它不等于前 个字符,前 $i -
AT2299 [ARC068B] Card Eater 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT2299) ___ ### 思路 这道题我们可以开一个桶, 统计一共有多少个不同的数。 如果个数是偶数的话, 最后的答案要 。 比如样例 ```cpp 5 1 2 1 3 7 ``` 不同的数有 $
AT3882 [ARC090B] People on a Line 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/solution/AT3882) ___ ### 思路 这道题很简单,就是纯 Dfs。 先建图,表示 在 的左边,距离为 , 在 的右边,距离为 。 再开一个
AT4733 [ABC132E] Hopscotch Addict 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT4733) ___ ### 思路 分层图跑最短路。 ___ 题目中说每次只能走 步, 我们可以把一条边拆成三条边, 拆成 到 , 到 , 到
AT4848 [ABC138D] Ki 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT4848) ___ ### 思路 这道题,如果一边输入一边 Dfs,肯定会超时的。 那么,我们注意到题目中说的一句话: **每次操作将 的子树中所有点的计数器增加 。** 那么可以离线
SP904 IMAGE - Image Perimeters题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/SP904) ___ ### 思路 我们可以进行两遍 Dfs,第一遍 Dfs,把这个点与它连通的图形打标记,第二遍 Dfs,统计图形的周长。 怎样统计周长??? 如果到了边界,就统计四个方向是否走过,如果没走过
AT4299 [ABC128C] Switches题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT4299) ___ ### 思路 灯有两种形式:一种是开,一种是关,我们自然而然的想到了二进制:用 代表开,用 代表关。这样我们就可以用 `bool` 类型来存下一个灯的状态。 由于这道题数
AT1716 袋とボール题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT1716) ___ ### 思路: + 若 袋有一个数等于 ,那么答案就包含着 袋中的两个数; + 若 袋有一个数等于 ,那么答案就包含着 袋中的两个数; 当然,
AT4724 [ABC128D] equeue 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT4724) ___ ### 思路 这一题可以看成从左边取出 个宝石,从右边取出 个宝石,最后从手中取出 颗宝石。 但是从手中取出的 颗宝石不一定是手中最小的
AT3637 Concatenated Palindrome 题解
摘要:### [题目传送门](https://www.luogu.com.cn/problem/AT3637) ___ ### 思路 因为拼接后的字符串满足对称,所以这道题其实就是要求 的字符串是否回文。 本题中字符串 的长度很短,所以可以直接暴力,时间复杂度为 $O(n
CF958B1 maximum Control (easy) 题解
摘要:# 题意 个点, 条边,求只与 个点连通的点的数量。 # 思路 定义一个桶数组 ,表示第 个点连通的点的数量,一边输入一边统计,最后遍历一遍,统计答案。 ### 代码如下: ```cpp #include using namespace std; i
AT_agc014_b [AGC014B] Unplanned Queries 题解
摘要:# 思路 一道结论题。 当有任意一个点有奇数个度时,那么必然存在一条边从这个点出发只被加过奇数次,不符合题意,故只要有一个点出现了奇数次,直接输出 `NO` 即可。 当所有点都是偶数次的时候,一条链肯定是满足题目的要求的,直接输出 `YES` 即可。 # 代码如下 ```cpp #include #
P8909 [RC-06] Multiples 题解
摘要:# 思路 因为 在 均匀随机生成,所以可以考虑枚举 的倍数,用 记录每个数被枚举的次数。 # 代码如下 ```cpp #include // #define int long long #define rep(i, l, r) for(
树状数组 3 :区间修改,区间查询
摘要:树状数组模板(3) 题意要求:给定一个序列,支持区间修改和区间查询。 设 (差分),那么容易得到: 这个公式 所以,只需要维护 数组就可以实现区间修改了。 那么问题来了,如果这样,那么如
[ABC185F] Range Xor Query 题解
摘要:## 思路 这道题,线段树模版题。 - 操作 :将 替换为 (单点修改) - 操作 :输出 (区间异或和)。 于是这道题只需要维护一个支
Flat Subsequence 题解
摘要:## 思路 一道线段树优化 dp 题。 设 表示以第 个数字结尾的最长选数列长度,则 ,其中 $j using namespace std; #define int long long #define rep(i, l, r)
PRIMPERM - Prime Permutations
摘要:如果用暴力筛因子的方法,在 下肯定是要超时的,所以用了时间和空间都较优的埃氏筛法来预处理出 的质数。 对于每一个 ,先提取出 的每一位,放到一个数组里。求出数组的全排列,(使用函数 `next_permutation
CF365B The Fibonacci Segment 题解
摘要:### 思路 思路蛮简单,因为“好的”必须是要连续的,所以可以直接暴力枚举一遍序列。如果当前数满足条件就计数器累加,不满足条件就取 ,然后计数器就重置为 即可,注意,长度为 的数列肯定是“好的”,直接输出 即可。 ```cpp #include usin
AT_sumitb2019_e Colorful Hats 2 题解
摘要:### 思路 一道数学智力题。 因为 的范围是 ,所以我们考虑 解决。 统计现在总共有多少个红,蓝,绿的帽子,再判断有多少种颜色的帽子个数是和输入的数相等的,表示当前有多少种方案,最后累乘一下即可。 ### 代码如下 ```cpp #include using na
CF221B Little Elephant and Numbers 题解
摘要:### 思路 按题意模拟即可。 在 至 之间寻找 的因数,如果 是 的因数,那么 一定也是 的因数,再判断 和 是否与 含有共同数字。如果有,则方案数加一。 注意:如果 和 是
CF222D Olympiad 题解
摘要:### 思路 首先,因为小 的得分是无上限的,所以很容易得知最好的名次是第一名。 然后我们可以想到贪心策略,因为最大排名其实就等同于最差成绩,所以达成最差成绩就是让成绩高的人在符合情况的条件下最多。 ### 代码如下 ```cpp #include using namespace std;