题解atcoder agc 004
题解 [ARC165A] Sum equals LCM
前天的晚上打这道题,和同学一起想出了思路,开心。 题意描述 给你一个数 \(N\),问你存不存在一个数列 \(A_1,A_2,\ldots,A_n(2 \le n)\) ,使得 \(\sum_{i=1}^n A_i=N\) 并且 \(\operatorname{lcm}(A_1,A_2,\ldots ......
AtCoder Regular Contest 165
啥都不会。自闭了。 A 显然填充 \(1\) 不会影响 \(\text{lcm}\)。 枚举 \(n\) 的互质且 \(\text{lcm} = n\) 的因数,看和是否 \(\le n\) 即可。 B 注意到答案的字典序肯定大于等于原排列。 如果存在 \(\ge k\) 的上升子段就直接输出原排列 ......
AtCoder Beginner Contest 320
A - Leyland Number a, b = map(int, input().split(' ')) print( a ** b + b ** a ) B - Longest Palindrome s = input() n = len(s) res = 0 for l in range(1 ......
P3188 [HNOI2007] 梦幻岛宝珠-题解
20230918 P3188 [HNOI2007] 梦幻岛宝珠 Statement 01背包, \(n \le 100\),但是容量 \(m \le 2^{30}\)。 物体的体积可以写成 \(a \times 2^b(a \le 10,b \le 30)\) Solution 发现 \(W\) 太 ......
Azamon Web Services 题解
Azamon Web Services 看到目前题解都是 \(O(n^2)\) 的复杂度,来一发 \(O(nlogn)\) 的贪心题解。 思路很简单,先求经过至多一次的交换后,最小的字符串 \(S\)。再和 \(T\) 比较,如果小于就输出,否则无解。 问题转化成了两个子问题: 求经过至多一次的交换 ......
CF762C Two strings 题解
洛谷传送门 CF 传送门 题意 给你两个字符串 \(a\) 和 \(b\),你可以在 \(b\) 中删去尽量短的子段,使得 \(b\) 是 \(a\) 的子序列。求出最后的 \(b\)。 思路 真是奇了怪了,这种题洛谷题解里竟然没有双指针的做法? 首先考虑判断一个字符串 \(b\) 是否是另一个字符 ......
Alice and Hairdresser题解
Alice and Hairdresser 第一眼线段树,第二眼好像可以直接用数组模拟。 当一根头发长于 $l$,它再长多长其实都一样,所以不用开 long long。 如果一根新的头发长到比 $l$ 长,那可以分成以下几种情况: 如果它左侧和右侧只有一个元素大于 $l$ ,那答案不变。 如果左侧和 ......
罪人挽歌 题解
罪人挽歌 题解 简化题意: 给定 \(n\) 个二元组,第 \(i\) 个二元组的值为 \((a, b)\),保证任意两个二元组都不相同。 求是否存在一个二元组的排列,使得这些二元组满足对于任意 \(1 \leq i < n\),有 \(A_i = A_{i+1}\) 或 \(B_i = B_{i+ ......
「题解」BZOJ 3305 Catalan 数
\(f_{i,j}=f_{i-1,j-1}+f_{i-1,j+1}(j+1)\) 看成生成函数就有 \(F_n=xF_{i-1}+F_{i-1}'\),思路是凑微分,想凑出一个 \(G_i\) 是和 \(F_i\) 有关的,然后 \(G_i\) 有比较简单的形式。 这里就 \(G_n=F_n\tim ......
[题解]Pa?sWorD(2023ICPC网络预选赛第一场I题)
I Pa?sWorD 下次不要认为2e8可以莽过去了 思路 计数DP + 状压(其实也可以不压) + 前缀和优化(倒着写是差分) dp[i][j][k]表示第i位填j,状态为k的方案数 k这一维用于状态压缩,表示 数字、大写、小写 是否出现 前缀和优化:在处理?的时候,暴力会有62X62X8的单次复 ......
题解 P6821 [PA2012] Tanie linie
本来想写 wqs 二分来着,然后推不出 dp 方程,摆烂了。 题目描述 给定含 \(n\) 个数的序列,求至多 \(k\) 个不相交子段的和的最大值。 具体思路 由于选 \(k\) 堆连续的数,因此一堆连续的符号相同的数,只有可能是同时被选或者同时不被选。 因此我们先对原序列预处理一遍,将相同符号的 ......
Death DBMS题解(AC自动机)
题目传送门 CF1437G 好题 观察这道题,发现有关字串的题目,一般来说,这种题都要构建\(AC\)自动机,所以考虑构建。 构建之后,原来的所有 \(fail\) 是一个树形结构。 解法 \(1\): 考虑从询问入手,那么对于每一个询问,等价于就是查询每一个 \(Q_i\) 包含的后缀的最大值,再 ......
题解 LOJ2549【[JSOI2018] 战争】
problem 给你两个平面凸多边形 \(A,B\),\(Q\) 次询问,每次询问是一个向量 \(\vec v\),回答 \(A\) 与 \(B + \vec v\) 是否有交。\(n,Q \leq 10^5\)。 solution 观察闵可夫斯基和(Minkowsky sum)的定义,若将这个运算 ......
[ARC119F] AtCoder Express 3
题目链接 观察样例 1 的解释,发现切换类型的方法是比较单一的 这种就是直接走一段换一段,我们可以人为钦定换乘时最多走一步,因为相邻的同色也可以视作走车站 这种情况复杂一些,需要往回走一段,但是依然可以发现往回走也至多一步,因为如果走了两步说明往回走了一步到达的车站依然同色,那么走的车站必然不会是后 ......
【杂题乱写】AtCoder-ARC113
AtCoder-ARC113A A*B*C 枚举 \(A,B\),那么 \(C\in [1,\left\lfloor\frac{K}{AB}\right\rfloor]\),时间复杂度是 \(O(K\log K)\)。 提交记录:Submission - AtCoder AtCoder-ARC113 ......
CF70D Professor's task 题解 & 动态凸包板子
CF70D Professor's task 题解 前言 此篇题解用的是 \(Andrew\),不想看这种做法的可以绕道。 题意 动态凸包板子题。 维护动态凸包。两种操作,加一个点或查询一个点是否在凸包内。 题解 首先你得会静态二维凸包。 维护二维凸包的方法挺多的,比如什么 \(Andrew\) 算 ......
Atcoder abc の 初体験
[ABC320F] Fuel Round Trip 若只考虑单程的,设一个 \(dp_{i,j}\) 表示走到第 \(i\) 个加油站剩下的油为 \(j\) 的最小花费。 但是还需要考虑回来可能也要加油,所以综合考虑,设 \(dp_{i,j,k}\) 表示到第 \(i\) 个加油站去的途中有 \(j ......
[ABC320E] Somen Nagashi题解
2023-09-16 题目 题目传送门 翻译 翻译 难度&重要性(1~10):4 题目来源 AtCoder 题目算法 优先队列 解题思路 水题一道。 需要两个优先队列: 因为每一次是队首的人拿到面条,即队列中编号最小的拿面条,就用一个优先队列用来维护当前队列中的编号最小的人。 由于每一次拿了面条后再 ......
【题解】AtCoder-ABC320
AtCoder-ABC320A Leyland Number 依题意计算。 提交记录:Submission - AtCoder AtCoder-ABC320B Longest Palindrome 直接 \(O(n^2)\) 枚举,\(O(n)\) 判断。 提交记录:Submission - AtC ......
[ABC320F] Fuel Round Trip 题解
题意 在坐标轴上给定 \(N\) 个点,坐标依次为 \(X_1, X_2, \cdots, X_N\),你需要从原点前往 \(X_N\) 并折返,其中在第 \(1\) 个到第 \(N - 1\) 个点上有加油站,其中第 \(i\) 个加油站可以花费 \(P_i\) 购买 \(F_i\) 升汽油,汽油 ......
AtCoder Beginner Contest 320
A - Leyland Number (abc320 A) 题目大意 给定\(a,b\),输出 \(a^b + b^a\)。 解题思路 因为数不超过\(10\),可以直接用 pow计算然后转成\(int\)。不会有精度损失。 神奇的代码 #include <bits/stdc++.h> using ......
合并果子题解-C++ STL priority_queue容器的使用
说明:本博文关于priority_queue容器的说明来源于www.cnblogs.com/fusiwei/p/11823053.html 本人是刚刚接触算法竞赛的萌新,如果有大佬发现了错误,还望指出(真的有人会看本蒟蒻的博文吗) 这是我的第一篇博文,更多是作为测试 以后会将博客作为笔记记录学习的体 ......
atcoder313C
313C 题目概述:给定序列A,可以任选两个数,使其中一个数加1,另一个数减1.可以通过任意次操作,问需要至少多少次操作,才能使A中最大数和最小数差值不超过1。 解题思路:将该题进行抽象转化:1.我们需要将A序列转化为B序列,sumB=sumA。 操作次数为:\(\frac{\sum\limits_ ......
AtCoder Beginner Contest 126 D (图论、LCA性质、DFS、思维、*1200)
D - Even Relation 给你一棵树 (结点个数为 $ n(n \le 10^5) $, 现在需要将树上所有结点染成白色或黑色, 打印一种可行的方案(将 $ i $ 号点染成白色则输出 0, 否则, 输出 1), 满足:同一种颜色的点之间的距离是偶数。 思路: ......
CF1542E1 Abnormal Permutation Pairs (easy version) 题解
CF1542E1 Abnormal Permutation Pairs (easy version) 题解 不会 Hard version 对于第一个限制字典序,我们可以考虑枚举前 \(i\) 位相同,然后考虑后 \(n-i\) 位。我们只需要保证 \(p_{i+1} < q_{i+1}\) 即可。 ......
CF1852B Imbalanced Arrays 题解
CF1852B Imbalanced Arrays 题解 Links 洛谷 Codeforces Description 对于一个给定的长度为 \(n\) 的数组 \(A\),定义一个长度为 \(n\) 的数组 \(B\) 是不平衡的当且仅当以下全部条件满足: \(-n \leq B_{i} \le ......
LeetCode-Java题解 209. Minimum Size Subarray Sum
题目地址:209. Minimum Size Subarray Sum 解题思路: 看到这道题,心里本身是有双指针这个概念的,但是不知道怎么用,脑子里第一反应就是暴力解法,双for一把梭,然后时间就超时了...看了题解才知道滑动窗口这个解法,不禁直呼妙啊!感觉和双指针非常类似,其核心点在于避免了暴力 ......
题解 UVA1566 John
题目描述 两个人轮流取石子,每人每次可以 \([1,a_i]\) 个石子,最后取完石子的人为负。问最终谁会赢。 具体思路 若堆数为 \(1\) 且该堆数量为 \(1\),先手必败。 若堆数不为 \(1\) 且每堆数量都为 \(1\),若有奇数堆,先手比败,否则,先手必胜。 若堆数不为 \(1\),转 ......
洛谷题解 | P5660 数字游戏
目录 题目描述 输入格式 输出格式 输入输出样例 说明/提示 题目简化 题目思路 AC代码 题目描述 小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 1。 注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101 ......