题解atcoder agc 004

洛谷P1875佳佳的魔法药水题解

这是一道很好的最短路的题目 #### 难点1.如何建图\2.如何进行更新最短路\3.求最小方案 #### 建图输入中有药水的配置\A + B = C```1 2 0 4 5 1 3 6 2```这看上去是不是很像图论?\选用链式前向星\如下```cppint head[1010],cnt;void ......
题解 药水 魔法 P1875 1875

题解:【ABC298G】Strawberry War

题目链接 场上被 F 干碎了,没看见这个典题。原题差不多是这个吧 ......
题解 Strawberry 298G ABC 298

AtCoder Regular Contest 104 F Visibility Sequence

洛谷传送门 AtCoder 传送门 考虑连边 $(i,p_i)$(若 $p_i = -1$ 则不连边),可以发现形成了一篇内向树森林且这个森林存在一个 dfs 序为 $1,2,...,n$。 这棵森林有如下性质: $\forall v \in son_u,h_u > h_v$ $\forall v, ......
Visibility Sequence AtCoder Regular Contest

题解 CF1090D【Similar Arrays】

一道简单构造题。 如果 $m=\frac{n(n-1)}{2}$,此时任意两个数都要有偏序关系,但是又要求第二个数列有两个数相等,因此无解。 否则一定有解。不难想到构造两个数列使它们几乎完全相等。可以找到两个没有偏序关系的下标 $(i,j)$,在第一个数列中分别赋值为 $n-1,n$,在第二个数列中 ......
题解 Similar Arrays 1090D 1090

AtCoder Beginner Contest 298

A - Job Interview (abc298 a) 题目大意 给定包含o-x的字符串,问是否不包含 x且包含o。 解题思路 遍历一遍即可。 神奇的代码 ```cpp #include using namespace std; using LL = long long; int main(voi ......
Beginner AtCoder Contest 298

NOC 2022 初中组选择和编程题题解

NOC 2022 初中组选择题和编程题题解 注意:本文有几个问题: 部分题目我也不确定答案,而且我水平不行,有些题目我还真不会,大家就把我的答案当个参考吧。 目前有一大半的题目因为作者比较懒,暂时没写,空在那儿,可以下载原题自己做做。 1 初中组选拔赛 原题链接,提取码:efy6。 1.1 选择题部 ......
初中组 题解 初中 2022 NOC

线性规划相关题解集

P6631 [ZJOI2020] 序列 题解 注意到原题是个整数规划,记所有操作的集合为 $\mathcal{I}$,操作 $i$ 的次数为 $x_i$ 化成标准型如下: $$ \begin{align*} &\max\sum_{i\in\mathcal{I}}x_i\ s.t.\ & \sum_{ ......
题解 线性

AtCoder Beginner Contest 223(D,E,F)

AtCoder Beginner Contest 223(D,E,F) D(拓扑排序) D 大意就是有$n$个点,$m$个关系,其中关系是指$u$和$v$,在排序里面使得$u$的位置再$v$的位置的前面 要求找到一个排序满足上述条件的序列中字典序最小的那一个 这个使用拓扑排序,并加上优先队列即可 只 ......
Beginner AtCoder Contest 223

AtCoder Beginner Contest 293 补题记录 (E-G)

E 题意:给定 A, X, M, 计算 (A0 + A1 + A2 + ... + AX-1) mod M (1 <= A, M <= 109, 1 <= X <= 1012)。 根据等比数列求和公式,(A0 + A1 + A2 + ... + AX-1) mod M = ((AX - 1) / ( ......
Beginner AtCoder Contest 293 E-G

Codeforces Round 770 (Div. 2)题解

A 题目: 给定一个串,我们拥有他的一个反串,进行k次操作,每一次把当前的串加上反串加在后面,或者加在前面,问最后我们可以得到最多几种序列? 思路: 模拟一下会发现,当一个串是回文的,最终的结果一定是1。 如果最开始的串不是回文的,经过一次操作之后也会变为回文串。(所以k==0时输出1.k>0时输出 ......
题解 Codeforces Round 770 Div

[P4317 花神的数论题]题解

P4317 花神的数论题【数位DP】 题目描述 最开始其实没有什么想法 第一次遇见数位dp求相乘的题 想就按照常规做法来做,但不知道如何去处理* 于是写了一个错误的代码 //当前枚举到第id位,前面的1的个数为sum,是否达到上限limit ll dfs(int id,int sum,int lim ......
题解 论题 P4317 4317

AtCoder Regular Contest 104 D Multiset Mean

洛谷传送门 AtCoder 传送门 很平凡的一道计数啊。 考虑将所有数都减去 $x$,那么就要求选的数和为 $0$。 正负分开考虑,$0$ 可以任意选。需要多重背包求 $f_{i,j}$ 表示选 $1 \sim i$ 的数和为 $j$ 的方案数。前缀和优化是平凡的。 code // Problem: ......
Multiset AtCoder Regular Contest Mean

「解题报告」AGC001F Wide Swap

首先题目给的限制条件很奇怪,下标差 $K$ 而值域差 $1$。我们变成逆排列,然后就转换成了下标差 $1$,值域差 $K$ 了,每次操作就相当于交换相邻的两个差 $\ge K$ 的数。 假设新的逆排列为 $Q_i$。我们发现,假如存在两个数差 $<K$,那么它们的相对位置关系一定不变。那么我们现在有 ......
报告 001F Wide Swap AGC

CF1592F2 题解

题意 传送门 给定一个 $n$ 行 $m$ 列的目标矩阵,矩阵元素只有 W 或 B ,并且你有一个初始矩阵,元素全为 W 。 现在你可以矩阵实施以下操作: 使用一块钱,选定一个包含 $(1,1)$ 的子矩阵,把矩阵中的元素全部反转( W 变 B , B 变 W )。 使用三块钱,选定一个包含 $(n ......
题解 1592F 1592 CF F2

Luogu_P1613 跑路 题解

发现和最短路差不多,不过不能朴素的跑最短路。考虑对于每两个相隔 $2$ 的整数次幂的点建边,在这个新图上跑最短路就是答案。设 $f_{i,j,k}$ 表示从点 $i$ 跳 $2^k$ 步能否到点 $j$,转移方程就是一个普通的倍增。如果点 $i$ 和点 $j$ 可以一步到达,那么就在新图上建一条长度 ......
题解 Luogu_P Luogu 1613

ABC249F 题解

前言 题目传送门! 更好的阅读体验? 很好玩的贪心。 思路 如果第 $i$ 次操作为覆盖操作,那么 $1 \sim i-1$ 次操作都是无效的,原因显然。 这启示我们从后往前扫(前面的会被忽略,后面的不会啊!)。 在此基础上,就是分类讨论一下(假设当前的最大答案为 $sum$): 当前操作是覆盖操作 ......
题解 249F ABC 249

【题解】Tree MST

题面 给定一棵 $n$ 个节点的树,现有有一张完全图,两点 $x,y$ 之间的边长为 $w_x+w_y+dis_{x,y}$,其中 $dis$ 表示树上两点的距离。 求完全图的最小生成树。 $n \leq 2 \times 10^5$。 题解 ???神秘 借鉴支配对的思想,点分治后将树中点权替换为$ ......
题解 Tree MST

P9197 [JOI Open 2016] 摩天大楼 题解

算是一道比较好想的题 (?) 首先将 $A$ 数组排序,从小到大插入 $f$ 中,就可以脱掉绝对值符号。 设 $f_{i,j,s,t} $ 为插入前 $i$ 小的数,在 $f$ 数组中形成了 $j$ 段,对整个柿子的贡献为 $s$ ,且确定了 $t$ 个边界(即不能在左边界的左边或右边界的右边再插入 ......
摩天大楼 题解 大楼 P9197 9197

AGC002D Stamp Rally 多种做法 kruskal重构树/可持久化并查集/整体二分

D - Stamp Rally (atcoder.jp) 这题做法很多,我写的是可持久化并查集做法,但是裸的可持久化并查集是 $O(nlog^3n)$,能过但是很慢!看洛谷的题解有一位大佬写了一个很妙的并查集的写法,按秩合并,每一步合并时用vector记录一下这个被合并到的节点的size和当前的时间 ......
做法 多种 整体 kruskal Stamp

[ABC296Ex] Unite 题解

考虑状压 dp。 设 $f_{i,j,s}$ 表示当前正在决策坐标为 $(i,j)$ 的格子,且列状态为 $s$。其中列状态维护了当前轮廓线上的连通块,我们可以使用最小表示法来简单维护。 (为什么不用广义括号序列?因为其涉及到 $5$ 个可选值,由于 $m\le 7$,所以这两个都需要用到八进制,而 ......
题解 Unite ABC 296 Ex

[Educational Codeforces Round 118 (Rated for Div. 2)]题解

A 题意: 给定两个数,每一个数有两个属性,第一个属性是p1,第二个属性是p2.表示这个数有p2个后缀0.这个数本身等于p1后面加p2个0.问给你两个这种数,判断大小。 思路: 赛场上想到的:如果最终的长度不一样,可以直接根据长度判断。 如果相等,就把后缀0加上直接比较大小就可以(比较字典序的大小) ......
题解 Educational Codeforces Round Rated

AtCoder Regular Contest 110 E Shorten ABC

洛谷传送门 AtCoder 传送门 考虑把 $\text{A}$ 看成 $1$,$\text{B}$ 看成 $2$,$\text{C}$ 看成 $3$,那么一次操作相当于选择一个 $a_i \ne a_{i+1}$ 的 $i$,将 $a_i$ 和 $a_{i+1}$ 替换成一个数 $a_i \opl ......
AtCoder Regular Contest Shorten 110

2012-2013 ACM-ICPC, NEERC, Moscow Subregional Contest题解

题目链接:2012-2013 ACM-ICPC, NEERC, Moscow Subregional Contest C. Cinderella(贪心) 思路 答案为大于平均值的数的数量 代码 #include <bits/stdc++.h> using namespace std; using i ......
题解 Subregional ACM-ICPC Contest Moscow

题解 CF1764G Doremy's Perfect DS Class (Extra)

题解 CF1764G Doremy's Perfect DS Class (Extra) 题意 交互库有一个 $1\sim n$ 的排列 $p$,你每次可以想交互库给定三个整数 $l,r,k(1\le l\le r\le n,1\le k\le n)$,交互库会返回 $\lfloor p_l/k\r ......
题解 Perfect Doremy 1764G Class

一些自己做的算法题解

//得到支点下标 function partition(arr, low, high) { const tmp = arr[low]; while (low < high) { //high位置值大于tmp,high自减 while (low < high && arr[high] >= tmp) ......
题解 算法

「解题报告」AGC021F Trinity

组合意义天地灭。 观察题意,肯定是从 $A$ 入手。发现,$A$ 的作用其实就是限制每一行强制选 $A_i$ 的位置,且可以选 $A_i$ 往后的位置。那么我们从左往右考虑,每次确定若干个 $A_i$ 放这一列。这时候根据放的位置与之前确定的行的数量,是可以计算出当前这一列放的最大值与最小值的方案数 ......
Trinity 报告 021F AGC 021

CF1473D 题解

题目传送门 题目分析 线段树、前缀和、$\text{ST}$ 表题解都有了,我补一发猫树题解吧。 由于每次操作只能将大小改变成跟原来差 $1$,所以只需要知道这段操作中的最大值和最小值,最后所求的答案的范围就被卡住了。对于每一次操作,我们把操作序列拦腰斩断,那么分别求两边的范围,最后减去重复的部分即 ......
题解 1473D 1473 CF

CF1758D 题解

前言 题目传送门! 更好的阅读体验? 用一种非常麻烦的做法把自己写自闭了,和题解区不一样,但是方法困难很多。 思路 代码 属于混乱邪恶了,凑合着看看。 #include <iostream> #include <cstdio> #include <cmath> using namespace std ......
题解 1758D 1758 CF

「2019 集训队互测 Day 4」绝目编诗 题解

题目大意 给出一个 $n$ 个点 $m$ 条边的简单无向图,判断是否存在两个长度相同的简单环。 $1 \le n \le 10^4 , 1 \le m \le 10^6$。 思路 考虑暴力怎么做。 我们可以对于每个点,搜出包含这个点的环。 那么我们就有了一个玄学复杂度的暴力。考虑优化。 因为一个无向 ......
集训队 题解 2019 Day

题解:C Future

题目:给n个范围,第i个范围选pi,然后定义特征值k=p1+p2+...+pn。这次的开心度就是A(k%m)。m是给的一个数组A,长度为m。 要求: 就是个全排列组合的问题,找规律。 举个例子,有n个礼物,分别是(L1,R1) (L2, R2) (Ln, Rn) 每个区间取个数然后相加,所有出现的结 ......
题解 Future