首页 > TAG信息列表 > 题解
CF241E Flights 题解
CF241E 简要题意 \(n\) 个点,\(m\) 条有向边,每条边初始边权是 \(1\),让将一些边的边权变为 \(2\),使所有从点 \(1\) 到 \(n\) 的路径长度相等。 分析 首先发现如果一条边不在 \(1\) 到 \(n\) 的任意一条路径上,可以给它任意赋边权,因此只需考虑在 \(1\) 到 \(n\) 路径上的边。设 \(1\)ARC100 部分题解
C: 转化一下就是取中间部位,绝对值之和最小 // by Balloons #include <cstdio> #include <vector> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #define mpr make_pair #define debug() cerr<<"Madoka"题解【P5004 专心OI - 跳房子】
本题的找规律题解到此为止。 为防止新人受到误导,不再接受新的此类题解。 以前的保留不会删除,但请不要再提交。 题目传送门。 矩阵加速模板题吧。给一个正经的不用找规律的做法。 考虑设 \(F_n\) 表示前 \(n\) 个格子的答案,\(f_n\) 表示最后降落在 \(n\) 的方案数,显然有 \(F_n=F_{[Luogu]SP2128题解
[Luogu]SP2128 KROW 题意 共有 \(t\) 个 \(n \times m\) 的由 .、x、o 组成的字符矩阵。设矩阵中连续 \(k\) 格为 x 小 A 加一分,连续 \(k\) 格为 o 小 B 加一分。 正文 最坏时间复杂度:\(\mathcal{O}(tnmk)\) 算法:暴力 此题我第一眼看就知道很水(尽管我调试了半天)。 遍历矩阵,对于每CF1450E Capitalism 题解
首先发现这个 \(|a_i-a_j|=1\) 的形式比较接近差分约束,稍微转化一下就是:\(-1\le a_i-a_j\le 1\) 且 \(a_i\neq a_j\)。于是你会发现 \(a_i\neq a_j\) 不是差分约束的条件。 换个角度。容易发现一条边相连的两个点一定奇偶性不同。考虑原图中若存在奇环,那么显然这是自相矛盾的。所CF868F Yet Another Minimization Problem 题解
CF8658F 题意 一个长度为 \(n\) 的序列,要分为 \(m\) 段,每段代价为段内相同数的对数,求总代价的最小值。 分析 设 \(cal(i,j)\) 表示段 \([i,j]\) 内的相同的数的对数,\(dp_i\) 表示当前最后一段以 \(i\) 为末端的最小总代价,则有转移方程: \[dp_i=\min\limits_{j=1}^{i-1}\{dp_j+cal(i[NOI2016] 优秀的拆分 题解
[NOI2016] 优秀的拆分 题解 link 题意 \(T\) 组询问,每组一个字符串 \(s\) 求 \(s\) 所有字串分成 \(AABB\) 的方案数之和。 \(A,B\) 为非空串。 题解 设 \(f_i\) 为一 \(i\) 结尾的 \(AA\) 串数量,\(g_i\) 为一 \(i\) 结尾的 \(AA\) 穿数量。 \(ans=\sum f_{i}\times g_{i+1}\) 考[NOI2015] 品酒大会 题解
[NOI2015] 品酒大会 题解 link 题目大意 给定一个长度为 \(n\) 的字符串 \(s\) ,和第 \(i\) 个位置的权值 \(a_i\) 对于每一个 \(r\in [0,n)\) ,求满足 \(\text{lcp}(i,j)\ge r\) 的 \((i,j)\) 的对数 以及所有的 \((i,j)\) 中, \(a_i\times a_j\) 的最大值 \(n\le 3\times 10^5\) 题Goodbye 2018 A~F 题解
比赛链接:https://codeforc.es/contest/1091。 A 黄色的最多有 \(\min(y,b-1,r-2)\) 个,然后直接输出答案。 代码:https://pastebin.ubuntu.com/p/dqJnf89gdn/。 B 其实答案就是所有向量相加后横纵坐标分别除以 \(n\)。 注意开 long long。 代码:https://pastebin.ubuntu.com/p/SpJbD5一百五十天一千题(DAY 1)
一百五十天一千题 (DAY 1) 目前总题数: 0 目前CF分数: 1325 T1: (ABC 268)C - Chinese Restaurant // 题解 const int N = 1e6 + 10; /* 模拟即可 但是纯暴力是N^2的 会TLE 考虑到要把 A[I] 移动到 p=I-1 需要操作 a[i] - p % N 或者 (a[i]-p+1)%N 或者 (a[i]-p-1)%N; 用一个东西储「题解」洛谷 P8511 [Ynoi Easy Round 2021] TEST_68
简要题意:给定带点权树,对每个点求出其子树补中选出两个数异或得到的最大值。 考虑整个树中的最优解是 \(a_x\oplus a_y\),那么除了 \(x\) 和 \(y\) 到根的链上这些点以外,其他的所有点答案都是 \(a_x\oplus a_y\). 这样只需要考虑如何求出一条到根的链的答案。 考虑这样一条链,在 dfs「题解」洛谷 P8512 [Ynoi Easy Round 2021] TEST_152
有三个维度,序列维,操作维,询问维。 尝试扫描线,枚举一下扫哪个维能做。 或者考虑序列维上有颜色段均摊的性质。 这样不难想到在操作维上从小到大扫描线,或者说对询问维的 \(r\) 作扫描线,用 set 维护序列维上的连续段。 现在将询问 \((l,r)\) 挂在了 \(r\) 上,扫描线扫到 \(r\) 时,要询问Atcoder Grand Contest 010 题解
A 题意 给 \(n\) 个数的集合,每次可以合并奇偶性相同的 \(x,y\),问最后能不能合并至只剩一个数。 \(n\le 2e5\)。 观察 奇偶分类。 分析 偶数直接合并成 1 个,奇数 + 奇数合并为 \(\lfloor\dfrac{t}{2}\rfloor\) 个偶数,剩余 \(t\bmod 2\) 个奇数。\(t\) 为集合中奇数的个数。如果有P8539 「Wdoi-2」来自地上的支援 题解
思路 根据题意,如果每次询问选中的为第 \(x\) 个数,那么前 \(x-1\) 次操作一定不会选中第 \(x\) 个数。(感觉在说废话。) 同样,因为第 \(x\) 个数必须被选中 \(k\) 次,根据题意,不难发现这 \(k\) 次选中一定是从第 \(x\) 次操作到 \(x+k-1\) 次操作被选中。因为如果某个数在某次操作时没P4655 [CEOI2017] Building Bridges 题解
P4655 分析 发现如果在 \(i,j\) 之间建桥,那么 \((i,j)\) 内的所有柱子都是无用的,代价还需加上 \((i,j)\) 内的所有拆除代价。设 \(dp_i\) 为从 \(1\) 走到 \(i\) 的最小代价,于是转移方程就呼之欲出了: \[dp_i=\min\limits_{j=1}^{i-1}\{dp_j+(h_i-h_j)^2+s_{i-1}-s_j\} \],其中 \(s_题解 洛谷CF633D Fibonacci-ish
注意:这是博客文章的随笔同步版本,原版本(也是原创)请观望https://www.cnblogs.com/ryan1015/articles/16686452.html CF633D Fibonacci-ish 博客食用 这是蒟蒻的第一篇题解 题意: Yash最近迷上了 fibonacci数列,他定义了一种数列叫 fibonacccccci 数列: 这个数列包含至少 \(2\) 个元素LGP6305题解
笑死,细节问题直接把自己送走了,100pts->0pts。 个人认为是模拟赛最简单的一道题 可能是因为我倒开 如果 \(a\) 中元素互不相同很好做,排序然后变成 \(i\) 应该去到 \(p_i\) 的位置,直接连接 \((i,p_i)\) 然后输出每个环即可。 但是可能出现不相同的元素。 考虑对于排序后的序列,一段区洛谷 P2590 [ZJOI2008]树的统计 题解
树链剖分板子,两次 DFS 预处理之后用线段树维护,问题转化为单点修改,区间查询(求和、最大值),对于询问路径跳到 LCA 上再查询即可。 //P2590 [ZJOI2008]树的统计 #pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; const int MAXN=500005; int siz[MAXN],faP8506 标题计数 题解
题目传送门 这道题是十分简单的送分题 要是在CSP-S考到该多好,当然是肯定不可能的 看题目描述我们可以知道 当是以一个#和一个空格开头且后面跟有其他字符时即为一级标题 而且在#前无论有多少个空格都无所谓 比如 # abcd # abcd # abcd # a#b3#c#d # # abcd 都是一级标题不是题解 合集
1480E 题目给了一个"32",似乎是在疯狂暗示二进制构造 考虑把所有点从1到n一字排开,1和n必须选,2~n-1选不选都行 胡乱编一下就能过。 1217F 假装强制在线但并不是。 考虑线段树分治就行了,当前点进行什么操作看lastans就行。 1530F 21*21的方阵,每个位置有一个概率是1,求凑出来b洛谷 CF508A Pasha and Pixels 题解
题目传送门 CF传送门 话说这道题咋这么多坑! 具体思路 把全部位置第一次染成黑色的轮次是第几轮,时间复杂度为 \(\varTheta(k)\) ,接着从点 \(1,1\) 一直到点 \(n-1,m-1\) 全部都判断一遍 ,时间复杂度为 \(\varTheta(nm)\) ,总时间复杂度为 \(\varTheta(nm+k)\) 又因为 \(n,m\le 10^3\)UVA11584 划分成回文串 Partitioning by Palindromes
题面 这道题一开始想用简单的区间DP #include<stdio.h> #include<iostream> #include<cstdlib> #include<string.h> #include<algorithm> using namespace std; int T; char s[2000]; int dp[1010][1010]; int palind(int l,int r)//回文判断函数 { wh题解 P2971【[USACO10HOL]Cow Politics G】
似乎是一个很简洁的新做法。 显然 \(k\) 个点集互不干扰,可以分开处理。 对于每个点集,首先取出两个点 \(u,v\) 作为最远的两个点(为表述方便下文称为直径),然后考虑向点集中加入点 \(w\) 的过程。我们计算出 \(d_1=\operatorname{dis}(u,v),d_2=\operatorname{dis}(u,w),d_3=\operatorHDU 5266 pog loves szh III 题解
错误示范:倍增+暴力 开始看到这题时限 6s 本来想着来一发暴力区间倍增 LCA,后来发现是多测之后自然凉凉,准保 T 飞。 然而没有 T,acc 上 RE(ReCoders),HDU WA。 正解:树剖+线段树 维护区间你想到了什么?当然是线段树啊! 分别考虑线段树的 build 和 query 操作。 build:递归,然后 pushup 维护CF3D Least Cost Bracket Sequence 题解
CF3D 题意 一个括号序列,其中有几位为 ?,将第 \(i\) 个 ? 修改为 ( 的代价是 \(a_i\),修改为 ) 的代价是 \(b_i\),问将所有 ? 修改后使得序列匹配的最小代价。 分析 贪心。发现一个匹配的括号序列的每一个前缀的左括号数一定不小于右括号数,因此先把问号都替换成右括号,对于每一位判断一