题解atcoder agc 004

AtCoder Beginner Contest 325

A - Takahashi san #include <bits/stdc++.h> using namespace std; #define ll long long using vi = vector<int>; int main(){ ios::sync_with_stdio(false); ......
Beginner AtCoder Contest 325

洛谷 P1931 题解

三倍经验 P1931 UVA436 SP9340 题意 给你 \(n(n \le 30)\) 种货币及 \(m\) 种汇率,问是否出现套利的情况。 怎么没给 \(m\) 的范围啊 思路 首先把汇率抽象成一张图。容易发现,若一个单位的某种货币经过一个环获得了大于一的代价,说明出现了套利。具体来说,考虑 ......
题解 P1931 1931

CF1542E2 Abnormal Permutation Pairs (hard version) 题解

怎么会有这么离谱的题目啊。 【模板】前缀和优化 dp。 思路 考虑一个基本的东西。 由于要求字典序的限制。 我们可以枚举最长公共前缀计算。 考虑如何求长度为 \(i\) 的排列有 \(j\) 个逆序对的数量。 设 \(dp_{i,j}\)。 \[dp_{i,j}=\sum_{k=0}^{i-1}dp ......
题解 Permutation Abnormal version 1542E

AT_gigacode_2019_b 题解

本题考查基本语法。 思路 用 while 来枚举每一组数据,用 if 判断是否合法。 在判断时需要使用逻辑运算符 &&,它的意思是左右两个要求如果同时成立,则会返回 true,否则返回 false。 \(a \ge x\),\(b \ge y\),\(a + b \ge z\)。 这三个条件都要同时 ......
题解 AT_gigacode gigacode 2019 AT

[题解] CF1051F The Shortest Statement

The Shortest Statement 给一张 \(n\) 个点 \(m\) 条边的无向连通图,保证 \(m - n \le 20\),\(q\) 次询问求两个点间的最短路。 \(n, m, q \le 10^5\)。 由于边数只比点数多 20,所以如果我们建出这张图的一棵生成树,那么非树边至 ......
题解 Statement Shortest 1051F 1051

P3045 题解

小清新数据结构题。 令已经确定被购买的奶牛的集合为 \(S\)。 注意到必然存在一个最优解使得集合 \(S\) 中 \(P_i-C_i\) 前 \(k\) 大的奶牛使用了优惠券。 证明: 令使用优惠券的集合为 \(S'\),显然有 \(|S'|=k\),则花费为: \[\sum_{i\in S\we ......
题解 P3045 3045

「NOIP2014」解方程 题解

思路 首先我们可以观察到 \(n\) 和 \(m\) 与\(a_i\) 相比小的很多,所以我们可以考虑直接暴力求解 但是 \(a_i\) 太大了,所以如果需要直接计算的话需要全程使用高精度算法。 因为高精度算法代码量有大速度又慢我们可依考虑将 \(a_i\) 转化为一个极大的指数取模的结果,因为只有 ......
题解 方程 NOIP 2014

Q7.4.1.2. 奇怪的方格涂色 题解

原题链接 首先想到暴力网络流:考虑最小割,\(S\) 表示染黑色,\(T\) 表示染白色。 每个格子 \(i\),连 \((S,i,b_i)\),\((i,T,w_i)\)。怎么处理“奇怪的方格”?连 \((i,i^\prime,p_i)\) 和 \((i^\prime,j,+\infty)\)。表 ......
题解 方格 Q7

AT_abc230_f [ABC230F] Predilection 题解

prelogue 各位在比赛的时候一定要坚信自己的式子,然后去考虑自己的实现是不是挂了。本人在今天模拟赛的时候质疑自己的式子然后不看实现 100 -> 0。 analysis 考虑对这个给定数组进行前缀和,然后就将问题转化成为了求这个前缀和数组的子序列的个数。对于求子序列,我们很轻松可以写出来这个式 ......
题解 Predilection 230 AT_abc 230F

Codeforces Round 809 (Div. 2) D1. Chopping Carrots (Easy Version) 题解

题意 Codeforces Round 809 (Div. 2) D1. Chopping Carrots (Easy Version) 给两个整数\(n, k\), 一个数组 \(a\), 要求构造一个同样长度的数组 \(p\), 使得 \(\max\limits_{1 \le i \le n}\ ......
题解 Codeforces Chopping Carrots Version

[USACO23FEB] Equal Sum Subarrays G 题解

[USACO23FEB] Equal Sum Subarrays G 题解 题目链接 \(O(n^5)\) 暴力 显然,如果修改 \(a_i\) 的值,只会影响包含 \(a_i\) 的区间的区间和。于是对于每个 \(a_i\),可以将所有区间分成两类,即包含 \(a_i\) 的区间和不包含 \(a_ ......
题解 Subarrays USACO Equal FEB

AGC041D-Problem Scores 题解

题目链接 luogu atcoder 分析 令 \(k=\left \lfloor \frac{n}{2} \right \rfloor\) 对于第三个条件,只需要满足 \(\sum_{i=1}^{k+1}a[i]<\sum_{i=n-k+1}^{n}a[i]\) 即可 有一个 \(trick\): ......
题解 D-Problem Problem Scores AGC

[题解] CF1748E Yet Another Array Counting Problem

Yet Another Array Counting Problem 给你一个长度为 \(n\) 的序列和一个数 \(m\),求有多少个长度为 \(n\) 的序列 \(b\) 满足: \(\forall i \in [1, n], b_i \in [1, m]\)。 对于每个区间 \([l, r]\ ......
题解 Counting Another Problem 1748E

[题解] P4435 [COCI2017-2018#2] ​​Garaža

P4435 [COCI2017-2018#2] Garaža 给你一个长度为 \(n\) 的序列 \(a\),单点改,查询区间 \(\gcd\) 不为 1 的子区间个数。 \(n, Q \le 10^5, a_i \le 10^9\)。 先看单次全局查询怎么做。考虑一个分治,每次我们要计算跨过分治中 ......
题解 P4435 4435 2017 2018

【题解】P4768 [NOI2018] 归程 / Kruskal 重构树

补补以前懒得总结的零碎东西。 kruskal 重构树 使用条件:求无向图中两点之间所有路径的最大边权的最小值 构造: 依 kruskal 得到最小生成树 从小到大考虑生成树中的边 \((u, v)\) 对于 \((u, v)\),新建一个结点,作为重构树中 \(u, v\) 的父结点 该结点的点权为 ......
归程 题解 Kruskal P4768 4768

SPOJ1805 HISTOGRA - Largest Rectangle in a Histogram 题解

Link SPOJ1805 HISTOGRA - Largest Rectangle in a Histogram Question 在一条水平线上有 \(n\) 个高为 \(a_i\) 的矩形,求包含于这些矩形的最大子矩形面积。 Solution 我们定义 \(L_i\) 表示有 \(a_i\) ......
题解 Histogram Rectangle HISTOGRA Largest

题解 AT_codefestival_2016_final_f【Road of the King】

注意到当前移动到的位置并不重要,重要的是经过的点数和 \(1\) 所在强连通分量大小,因此把它们放进状态里:设 \(f_{i,j,k}\) 表示进行 \(i\) 次移动,经过了 \(j\) 个不同的点,此时 \(1\) 所在的强连通分量大小为 \(k\) 的方案数。 考察下一次移动到的点的情况: 没 ......

【题解 P4211】 LCA

[LNOI2014] LCA 题目描述 给出一个 \(n\) 个节点的有根树(编号为 \(0\) 到 \(n-1\),根节点为 \(0\) )。 一个点的深度定义为这个节点到根的距离 \(+1\)。 设 \(dep[i]\) 表示点 \(i\) 的深度,\(\operatorname{LCA}(i, ......
题解 P4211 4211 LCA

AtCoder Beginner Contest 323

A - Weak Beats #include <bits/stdc++.h> using namespace std; using pii = pair<int, int>; using vi = vector<int>; int main() { ios::sync_with_stdio(fal ......
Beginner AtCoder Contest 323

[十二省联考 2019] 异或粽子 题解

只能说相当套路的一道题目。 对于区间异或和,我们不妨先做一遍区间前缀异或和,记作 \(sum_i\),表示 \(a_1\sim a_i\) 的异或和,那么区间 \([l,r]\) 的异或和即可转化为 $sum_r \bigoplus sum_{l-1} $,那么我们呢只需对 \(n+1\) 个数字进 ......
题解 粽子 2019

UVA11282 题解

题意简述 Kelly 寄出去 \(n\) 封邀请函,但她希望只有小于等于 \(m\) 个人收到他们自己的邀请函(即有至少 \(n-m\) 个人收到了别人的邀请函)。 思路形成 容易发现,这道题是一个典型的错排题,我们只需要分别求出 \(n-m\) 个元素到 \(n\) 个元素的错排即可。 接下来为错 ......
题解 11282 UVA

[题解] P4755 Beautiful Pair

P4755 Beautiful Pair 给你一个长度为 \(n\) 的序列 \(a\),求有多少个区间 \([l, r]\) 满足 \(a_l \cdot a_r \le \max_{i = l}^r a_i\)。 \(n \le 10^5, a_i \le 10^9\)。 首先按最大值位置分治。 ......
题解 Beautiful P4755 4755 Pair

【题解】CF1891E - Brukhovich and Exams

【题解】CF1891E - Brukhovich and Exams https://www.luogu.com.cn/problem/CF1891E 我们考虑把区间分段:若两个相邻的数不互素,中间分开;若两个相邻的数中有且仅有一个 \(1\),中间分开。那么我们得到了两种区间:全 \(1\) 区间 ......
题解 Brukhovich 1891E Exams 1891

【题解 P4062 & P8313】 Yazid 的新生舞会&Izbori

[COCI2021-2022#4] Izbori 题目描述 Malnar 先生正在竞选县长,这个县一共有 \(n\) 栋房屋,每栋房屋里都住着一位居民。Malnar 先生知道,选举的赢家不一定是最好的候选人,而是在选举前举办的宴会最好的候选人。因此,在选举前几天,他将邀请第 \(l\) 至 \(r( ......
题解 舞会 amp 新生 Izbori

[题解] CFgym101623F Factor-Free Tree

Factor-Free Tree 当一棵二叉树中的每个节点的权值都与它所有祖先的权值互质时,我们称它为 factor-free tree。 给你一棵按照中序遍历的顺序的权值序列 \(a\),求这个序列是否对应这一棵 factor-free tree。 如果是就输出每个节点的父亲。 \(n \le 1 ......
题解 Factor-Free 101623F 101623 Factor

P9840题解

题目大意 有一个 \(n \times n\) 的地图,每个格子里有一个袋鼠,要想让所有的袋鼠都到 \((a,b)\) 这个点。你有 \(4\) 种操作,分别为 U,D,L,R。分别可以让每只袋鼠都往上下左右移动,如果某只袋鼠越界了,也就是超出地图,则不移动。求操作序列。注意,操作序列长度不超过 \ ......
题解 P9840 9840

SP2139题解

思路 这题数据范围小,暴力就可以了。 首先我们用 map 来统计每个人的下标,用 \(bk_{i,j}\) 表示第 \(i\) 个人第 \(j\) 题是否知道答案。 对于每次合作交流,暴力修改就可以了,先统计出两个人的下标,假设一个为 \(x\),另一个为 \(y\)。 然后,如果 \(bk_{x, ......
题解 2139 SP

[ARC106E] Medals 题解

题意 有一个商店和 \(N\) 名员工,其中第 \(i\) 名员工在第 \(1 \sim A_i\) 天工作,在第 \(A_i + 1 \sim 2 \times A_i\) 休息,接下来每 \(A_i\) 天改变一次状态。 每一天你都可以选择一名来上班的员工并为其颁一个奖,求使得每名员工都获得至少 ......
题解 Medals 106E ARC 106

[题解] CF1156E Special Segments of Permutation

Special Segments of Permutation 给你一个排列 \(p\),求有多少个区间 \([l, r]\) 满足 \(p_l + p_r = \max_{i \in [l, r]} p_i\)。 \(n \le 2 \times 10^5\)。 按最大值分治,记当前的分治中心为 ......
题解 Permutation Segments Special 1156E

[题解] ABC282Ex Min + Sum

Min + Sum 给你两个序列 \(a\)、\(b\) 和 \(S\),求满足一下条件的区间 \([l ,r]\) 的数量: \(\sum_{i = l}^r b_i + \min_{i = l}^r a_i \le S\)。 \(n \le 2 \times 10^5\)。 考虑按最小值分治,即 ......
题解 ABC 282 Min Sum