题解usaco 23023 dec
T401305 平面划分(easy) 题解
Link T401305 平面划分(easy) Solution 平面上 \(n\) 条直线所划分处的区域最大个数 \(L_n\) 是多少 我们考虑假设已经有\(n-1\) 条直线,我们需要画一条直线,这条直线最多和 \(n-1\) 条直线相交产生 \(n\) 个新的区域 所以我们得到了 \[\be ......
[ABC328D] Take ABC 题解
链接 如果只是扫一遍肯定是不行的,所以我们使用一个栈,遇到 C 就判断栈顶的两个元素是不是分别为 B 和 A。这样就能做出来这道题了。 代码 #include<bits/stdc++.h> using namespace std; string s; char stk[200010]; int ma ......
【树链剖分】P3401 洛谷树 题解
P3401 考虑先将路径权值进行转化,因为很难对路径直接进行统计。考虑如何表示出这条路径的权值。记 \(s_i = \oplus_{j \in \text{path}(1, i)} w_j\),其中 \(\text{path}(i, j)\) 表示 \(i\) 到 \(j\) 的路径上的边集。则 \ ......
P9620 歌姬 题解
感觉题解做法都好神秘。 来一个容易理解,通俗易懂的树剖解法。 思路 容易发现原问题等价于维护一个虚树。 每一次询问虚树的根的所有儿子的最大值。 要求链修。 容易发现仅仅动态维护根是好做的。 我们用一个 \(\text{set}\)。 每次维护 \(\text{dfs}\) 的最小值和最大值。 对于这 ......
【题解】Atcoder snuke21_e Tournament
传送门:https://atcoder.jp/contests/snuke21/tasks/snuke21_e?lang=en 题意: 求所有 $n$ $(n \leq 100000)$ 个点的竞赛图中强连通分量个数之和。 思路: 竞赛图的好性质:对竞赛图 $SCC$ 缩点之后,所有点有一个拓扑序, ......
【线段树优化 dp】AT_dp_w Intervals 题解
AT_dp_w 先不看数据范围,考虑 dp。 令 \(f_i\) 表示前 \(i\) 个字符且强制第 \(i\) 个字符为 \(1\) 的最大分数。 则 \(f_i = \max(f_{j - 1} +\sum\limits_{r_k\ge i\ge l_k\ge j}a_k)\)。 这个是一份 \ ......
【区间 dp】UVA1331 最大面积最小的三角剖分 Minimax Triangulation 题解
UVA1331 区间 dp。 有一个很经典的问题:给定一个凸多边形,求它的最优三角剖分,对每个三角形规定一个权函数 \(f(i,j,k)\),求所有剖分方案中最大的权值。 发现这个东西不好直接入手。但是这个东西与矩阵最优链乘是相似的。考虑区间 dp。因为随意的转移是难以维护的,维护区间信息就等于强制 ......
CF1898 D Absolute Beauty 题解
Link CF1898 D Absolute Beauty Question 给出两个长度都为 \(n\) 的数组 \(a,b\) ,我们可以任意选择两个数 \(i,j\) 交换 \(b_i\) 和 \(b_j\) 一次,或者不换 求 \(\sum\limits_{i=1}^n |a_i-b_i|\ ......
[题解]CF1899D Yarik and Musical Notes
思路 暴力化简公式题。 假定 \(b_{i}^{b_j} = b_{j}^{b_{i}}\) 成立,那么有: \[2^{a_i \times 2^{a_j}} = 2^{a_j \times 2^{a_i}}\\ a_i \times 2^{a_j} = a_j \times 2^{a_i}\\ \ ......
【题解】JLOI2016 - 成绩比较
【题解】JLOI2016 - 成绩比较 https://loj.ac/p/2026 是我会的题,所以感觉难度不如 noip T3T4。 设 \(f_{i,j}\) 表示考虑到前 \(i\) 门课,有 \(j\) 人被 B 碾压。 转移,设这轮中有 \(k\) 个原本被碾压的人不再被碾压,则相当于从 ......
CF1898 C Colorful Grid 题解
Link CF1898 C Colorful Grid Question 给出一个 \(N\times M\) 的网格图 给每一条边染色(R/B),需要存在一条长度为 \(K\) 的路径从 \((1,1)\) 到 \((N,M)\),路径允许重复通过一个节点。 Solution 非常有意思的一道题 ......
CF1898 B Milena and Admirer 题解
Link CF1898 B Milena and Admirer Question 给出一个长度为 \(n\) 的序列 \(a\) ,我们可以做一种操作使得 \(a\) 非降,操作是: 对于一个 \(a_i\) 选择一个整数 \(0 \le x \le a_i\) ,用两个数 \(x,(a_i-x) ......
CF1899 G Unusual Entertainment 题解
Link CF1899 G Unusual Entertainment Question 给出一个排列 \(p_i\) 和一棵树,给出 \(Q\) 组询问,每组询问 \([L,R,x]\) 表示求 \(p_L \sim p_R\) 上是否存在 \(p_i\) 在 \(x\) 的字数上。 Soluti ......
noip2023 题解(民间数据)
P9868 [NOIP2023] 词典(民间) 直接把每个串 \(w_i\) 都从大到小/从小到大排一下,记作 \(a_i,b_i\)。如果 \(b_i\) 小于除了 \(i\) 之外的所有 \(a_i\),说明可以,否则不行。求一个前后缀最大值即可。复杂度 \(\mathcal{O}(26n+nm ......
P9713 「QFOI R1」抱抱 题解
P9713 「QFOI R1」抱抱 题解 Sol 前置知识:长方体体积公式:\(V = abh\)。 我们知道,切割掉 \(x \le k\) 的部分就是把 \(a\) 减去 \(k\),切割掉 \(y \le k\) 的部分就是把 \(b\) 减去 \(k\),切割掉 \(z \le k\) 的部 ......
NEFU OJ Problem 1496 绿巨人吃绿苹果 题解
Problem:H Time Limit:1000ms Memory Limit:65535K Description 从前有一个绿巨人,他有个习惯是每餐只吃n个绿苹果。他有一棵神树,无限大,每一层都有且仅有k个枝杈,这k个枝杈上正好分别有1,2,3...,k个苹果。为了锻炼身体,他在同一层仅仅能选 ......
[ABC328C] Consecutive 题解
Hello World 链接 这道题是一个很明显的前缀和,我们把 $sum_i$ 表示为前 $i$ 个字符有多少个有重复,查询的时候就用 $sum_{r-1}-sum_{l-1}$ 就行了。 代码 #include<bits/stdc++.h> using namespace std; string ......
[ABC326C] Peak 题解
题目链接 题目思路 这个问题要求找到一个半开区间,使得在这个区间内包含尽可能多的礼物。首先,我们需要将输入的礼物坐标按照从小到大的顺序进行排序。然后,我们可以使用双指针的方法来寻找最佳的区间。 代码 以下是代码解释: #include<bits/stdc++.h> using namespace s ......
CF222A Shooshuns and Sequence 题解
分析 这题是一个很水的题,就是对一个序列有 $2$ 种操作方法,一种是对第 $K$ 个数以前的数的第一个进行删除,另一个则是在整个序列后添加这第 $K$ 个数,使得整个序列为同一个数字,显然,后者是无效操作,则只需要判断第 $K$ 个数以后有无与第 $K$ 个不同的数,有则无解,反之有解。若有解,然 ......
CF601B Lipshitz Sequence 题解
给你一个序列 \(v_{1 \dots n}\),定义 \(f(v)\) 为 \(v\) 中斜率最大值(\(\lvert v \rvert = 1\) 则 \(f(v)=0\)),有 \(q\) 组询问,每次给定 \(1 \le l \lt r \le n\),求 \(a_{l \dots r}\) ......
NEFU OJ Problem 1489 青蛙赶路 题解【动态规划DP】
Problem:G Time Limit:2000ms Memory Limit:65535K Description 有一只青蛙,每秒选择走1米或跳m米,青蛙体力不足,所以不能连续两秒都在跳。 青蛙将移动到[l,r]之间,它想知道有多少种不同的方式来实现其目标。 两种方式是不同的,当且仅当它们移动 ......
ICPC2023深圳部分题解(A,D,E,F,G,K,L)
目录正题A 一道好题题目大意解题思路D 机器人兄弟题目大意解题思路E 二合一题目大意解题思路F 见面礼题目大意解题思路G 相似基因序列问题题目大意解题思路K 四国军棋题目大意解题思路L Mary 有颗有根树题目大意解题思路 正题 好像还没上gym所以放不了题目链接,深圳这场的题目我觉得都很好所以写个 ......
NEFU OJ Problem1485 贪吃蛇大作战 题解
Problem:F Time Limit:1000ms Memory Limit:65535K 题目 Description 贪吃蛇大家一定都玩过吧,现在宋哥也要玩这个游戏,最初的时候贪吃蛇从屏幕的左下角出发,但是有一个非常不幸的事情,就是宋哥的游戏机的左键和下键坏掉了,这意味着什么?没错!他只能操 ......
洛谷 P9869 [NOIP 2023] 三值逻辑 题解
https://www.luogu.com.cn/problem/P9869?contestId=145259 看到要给变量赋初始值,还是 T, F, U 之类的,容易想到 2-SAT。 设 \(1 \sim n + m\) 的点表示 \(x_1, x_2, \dots, x_{n + m}\) 为 ......
P9782 题解
题意 给定两个字符,分别是两个 \(26\) 进制数,\(A\) 到 \(Z\) 分别表示 \(0\) 到 \(25\)。求这两个字符的和。答案同样用这种 \(26\) 进制表示。不包含前导 \(0\)。 思路 先转化成 \(10\) 进制,再转化成 \(26\) 进制即可。 而因为只有一位所以就不 ......
P9779 题解
思路 因为不一定是只有一个答案,也就是多选题。所以就转化成了在 \(n\) 个里面选若干个。 而每种个数必须都试一次。所以答案为: \[\sum_{i=1}^{i \le n} C_n^i \]\(C_n^m\) 表示在 \(n\) 个里面选 \(m\) 个方案数,即组合问题。 众所周知, \[2^ ......
SP3889 Closest Number题解
题意简述 有两个 \(n\) 位十进制数 \(a\),\(b\)。要将数字 \(b\) 的每一位重新排列后,使得得到的数字一个在大于等于 \(a\) 的情况下更接近 \(a\),另一个在小于 \(a\) 的情况下更接近 \(a\)。 求这两个数,如果找不到就输出 0。 思路 以大于等于 \(a\) ......
AT_gigacode_2019_b 题解
本题考查基本语法。 思路 用 while 来枚举每一组数据,用 if 判断是否合法。 在判断时需要使用逻辑运算符 &&,它的意思是左右两个要求如果同时成立,则会返回 true,否则返回 false。 \(a \ge x\),\(b \ge y\),\(a + b \ge z\)。 这三个条件都要同时 ......
SP3881 题解
前置知识 最短路。 思路 这就是一道很简单的最短路板子,太良心了,用堆优化的 Dijkstra 就能过。相信大家都会这个,我就不介绍了。 AC CODE #include<bits/stdc++.h> using namespace std; int dis[100005],n,m,s,t,vis[ ......