题解codeforces round 1805

51nod 1365 Fib(N) mod Fib(K)-题解

51nod 1365 Fib(N) mod Fib(K) 个人评价:考一些奇奇怪怪的知识点呢 算法 矩阵快速幂、斐波那契公式 题面 求$F_n%F_k$的值,$1\leq n,k\leq 1e18$ 问题分析 我一开始居然想着直接矩阵快速幂求出两个值算,我也是真的牛…… 我们要知道这些斐波那契公式( ......
题解 Fib 1365 nod mod

2023ccpc湖北省赛/2023 Hubei Provincial Collegiate Programming Contest个人题解

2023 Hubei Provincial Collegiate Programming Contest A Prime Magic Walk Alone has a sequence $a_1,a_2,...,a_n$, and he can use a magic on it: Choose a ......

CF1829B 题解

题目思路 先定义变量 $t,ans$。 循环从 $0$ 到 $n-1$,对于第 $i$ 个数,如果为 $0$,$t=t+1$,否则将 $t$ 清零。每次循环 $ans=\max(ans,t)$ 表示最多有多少个连续的 $0$。 最后输出 $ans$ 即可。 核心代码 点击查看代码 void solv ......
题解 1829B 1829 CF

Codeforces Round 871 (Div. 4)

Codeforces Round 871 (Div. 4) A - Love Story #include<bits/stdc++.h> using namespace std; typedef pair<int,int>PII; typedef pair<string,int>PSI; const ......
Codeforces Round 871 Div

AtCoder Regular Contest 159简要题解

AtCoder Regular Contest 159 传送门 A - Copy and Paste Graph 图的邻接矩阵为 $$ \left( \begin{matrix} A & A & \cdots & A \ A & A & \cdots & A \ \cdots & \cdots & ......
题解 简要 AtCoder Regular Contest

Codeforces 871 div4(重拳出击)

Codeforces 871 div4 ABC 简单题 D 题意 每次操作可以将当前的数分成两份,一份是$\frac{1}{3}$,一份是$\frac{2}{3}$,问当前数n可否进行若干次操作,最终出现一份大小为m的片。递归一下就好了,数据最大才$10^7$ 代码 void dfs(int x) ......
重拳 Codeforces div4 871 div

Codeforces Round 871 (Div. 4) 题解

好久没打比赛了啊 qwq A~C skip D 把能被 $3$ 整除的数丢到一个队列里去 $\text{BFS}$,每次取队头把它分成两个,如果能被 $3$ 整除继续入队。最后看给定的数有没有入过队。 E 直接 $\text{BFS}$,把每个块总和算出来求最大。 F 可以发现,图的点数 $n=1+ ......
题解 Codeforces Round 871 Div

Codeforces 1817E - Half-sum

好题啊!最喜欢这种思路层层递进的题了。 首先从最终形态的角度入手分析。建立一棵合并树,每次合并两个数的时候就新建一个节点,令这个节点为合并的两个节点的父亲。那么显然一个点对答案的贡献系数就是 $2^{-\text{其在合并树中的深度}}$。更具体地不妨设 $B>A$,最终被划分在 $A$ 对应的数中 ......
Codeforces Half-sum 1817E 1817 Half

P8655 [蓝桥杯 2017 国 B] 发现环 题解

题目概述 题目传送门 在一棵树中新增一条边,使得这个图产生一个环,求在环上的点。 思路:拓补排序 对于这道题显然不能生搬硬套拓补排序的模板。 这道题中的图是一个无向图,而拓补排序却是处理有向图的一种思想。 不难想到可以将无向图转化为有向图,即将对于每条无向边变换为双向建边,就好处理了。 在这种情况下 ......
蓝桥 题解 P8655 8655 2017

Codeforces Round 870 (Div. 2)

Codeforces Round 870 (Div. 2) A - Trust Nobody 思路:枚举每一种说谎人数x,若a[i]大于x则说谎人数加一,判断最后说谎总人数是否为x,若是则输出x,结束枚举;若没有满足的x则-1 #include<bits/stdc++.h> using namesp ......
Codeforces Round 870 Div

Codeforces 1817F - Entangled Substrings(SA)

为什么赛时不开串串题?为什么赛时不开串串题?为什么赛时不开串串题?为什么赛时不开串串题?为什么赛时不开串串题? 一种 SA 做法,本质上和 SAM 做法等价,但是说来也丢人,一般要用到 SAM 的题我都是拿 SA 过的/wul 考虑将 $ac$ 看作一个整体。记 $\text{occ}(S)$ 为 ......
Codeforces Substrings Entangled 1817F 1817

ABC297F 题解

容斥萌萌题 给你一个 $H\times W$ 的棋盘,问在棋盘上随机撒 $k$ 个点,能够围住这 $k$ 个点的最小子矩形的期望面积 考虑枚举子矩形可以直接转成计数 问题转变为在 $n\times m$ 的矩形中撒 $k$ 个点,有多少种方案使得四条边上均至少有一个点 答案乘上矩形面积再除以所有撒点 ......
题解 297F ABC 297

Codeforces Round 848 (Div. 2)C

B. The Forbidden Permutation 一定要注意题目中说的是对于all i满足才算不好的,我们做的时候只要破坏一个i这个a就不算好的了,被这一点坑了,没注意到all。 #include <bits/stdc++.h> using namespace std; typedef lo ......
Codeforces Round 848 Div

LVJR2 赛后题解

赛后补题请到 洛谷比赛。 A 考虑分类讨论。显然当 $a=0,b=0$ 时,答案等于 $0$。 当 $a=0$ 或 $b=0$ 时,直接将等于 $0$ 的数乘以一个很大的数字,将不等于零的数除以一个很大的数字,答案为 $v$。 当 $a,b$ 均不为 $0$ 时,可以选择先将一个数字减到 $0$,或 ......
题解 LVJR2 LVJR

Codeforces Round 856 (Div. 2)C

C. Scoring Subsequences 思路:我们想要找到满足的最大值的长度最长的的区间,因为单调不减,所以更大的数一定在最大值的里面包含,所以我们用两个指针维护这样一个满足当前i的最大值区间,当新来一个数,这时我们答案里面一定要包含这个数,我们看能否保持这个长度,能不能保持需要看j指针所指 ......
Codeforces Round 856 Div

Codeforces——870

A. Trust Nobody 题目大意 给你一个长度为$n$的数组$a$,$a$中每个元素$a_i$表示当前人认为$n$个人中至少有$a_i$个人说谎,让你找出说谎的人的个数。 思路: 枚举说谎人数$x$,遍历$a$数组,对于当前$a_i$,如果有$a_i \geq x$,那么显然第$i$个人在说 ......
Codeforces 870

[Luogu-P1008]题解(C++)

Part I Preface 原题目(Luogu) Part II Sketch 求出若干组排列 $a,b,c$,使得 $a:b:c = 1:2:3$。 Part III Analysis 暴力 $9$ 层循环即可。 Part IV Code #include <iostream> using na ......
题解 Luogu-P Luogu 1008

[Luogu-P1007]题解(C++)

Part I Preface 原题目(Luogu) Part II Sketch 给定一个正整数 $L$,表示独木桥长度。 给定一个正整数 $N$,表示桥上士兵的数量。 给定 $N$ 个整数,分别表示每个士兵的坐标。 规定走到 $0$ 坐标或 $L+1$ 的位置为下桥,两个士兵相遇时不能走过去,他们 ......
题解 Luogu-P Luogu 1007

[Luogu-P1003]题解(C++)

Part I Preface 原题目(Luogu) Part II Sketch 给定一个正整数 $n$,表示地毯张数。 接下来 $n$ 行,每行 $4$ 个整数,$a,b,g,k$,分别表示一个地毯的左下角和右上角的坐标。 最后一行,$x,y$,表示查询的点。 求出这个点上面覆盖的最上面的地毯编号 ......
题解 Luogu-P Luogu 1003

[AtCoder-AT_ABC108_B]题解(C++)

Part I Preface 原题目(Luogu) 原题目(AtCoder) Part II Sketch Part III Analysis 观察这道题,我们很容易想到,必须推导出 $x1, y1, x2, y2$ 与 $x3, y3, x4, y4$ 之间的关系。 我们观察下图。 可以发现: $ ......
题解 AtCoder-AT_ABC AtCoder ABC 108

[CodeForces-1104A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(CodeForces) Part II Sketch 给定一个整数 $n$。 将 $n$ 拆分成一个数列 $a_1,a_2,a_3,\dots,a_m$。 使得 $\sum\limits_{k = 1}^{m}a_k = n$,每个 $a_ ......
题解 CodeForces 1104

[CodeForces-143A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(CodeForces) Part II Sketch 设有一个 $2 \times 2$ 的棋盘,上面可以填入 $1-9$ 的数字。 给出 $6$ 个数字,为每行每列以及每个对角线上的数字之和,求相应的摆放方式,无解输出 $-1$。 Par ......
题解 CodeForces 143

练习记录-cf-div2-Codeforces Round 870 (A-D)

这次写的也是比较快!rank305 虽然D简单,但是写出来了就算胜利! A. Trust Nobody 题意:给出n个人,他们会说多少人是说谎的,你要找出这个人数 思路: n最多只有100个,我枚举说谎的人有i个,对说话小于等于i的做前缀和,这个几个人都是说真话,记录前缀和sum,n-sum就是说谎 ......
Codeforces cf-div Round 870 A-D

Codeforces Round 870 (A-D)

A $n^2$暴力推,遍历可能撒谎的人数(0-n),然后$O(n)$check就行了。 仔细看逻辑其实$O(1)$就能check,草率了,后面再修正 点击查看代码 #include <bits/stdc++.h> #define rep(i, l, r) for(int i = l; i <= r; ......
Codeforces Round 870 A-D

CodeTON Round 4 (Div. 1 + Div. 2)C

C. Make It Permutation 我们希望尽可能少地进行操作可以使代价最小,我们如果要排列的话,那些重复的元素我们无论如何都要进行删除的,所以我们可以先把去重的代价计算出来,然后依次枚举排列的位数是多少,也就是枚举去重后的数组,其中的代价我们可以一次计算出来,当我们枚举第i个a时,前面1 ......
Div CodeTON Round

【模板】堆 题解

题目传送门 一道小根堆模板题。 在做这道题之前,我们先介绍一下小根堆是什么。 我们定义小根堆是一种对于任何一个父结点的权值总是小于或等于子节点权值的完全二叉树。因此,不难看出,一个小根堆的堆顶(这棵树的根节点)应该是这个堆(树)中权值最小的结点。 简单介绍完了小根堆,我们再介绍下如何存储。 存储 我 ......
题解 模板

【ABC298C】题解

思路 一道很好的复习数据结构的题。 对于第 $1$ 个问答(既第 $2$ 种操作),我用一个小根堆(优先队列,$\text{priority_queue}$)来储存第 $i$ 个盒子的卡牌。 对于第 $2$ 个问答(既第 $3$ 种操作),我用一个 $\text{set}$ 来储存编号为 $i$ 个 ......
题解 298C ABC 298

Inna and Huge Candy Matrix 题解

题目传送门 一道模拟题。 先看数据范围,$x,y,z \le 10^9$ 显然会超时。不难看出,顺时针或逆时针旋转 $4$ 次和镜面对称 $2$ 次后会恢复原样,所以我们先对 $x,y,z$ 进行取余。 $$x\bmod 4,z\bmod4,y\bmod2$$ 然后我们观察一个矩阵顺时针旋转后坐标的 ......
题解 Matrix Candy Inna Huge

codeforces #865 div1A

A. Ian and Array Sorting 思路:首先我们可以从前往后做一遍,把除了最后一个元素其他所有数都变成和第一个数一样的数,然后假如前n-1个数个数为偶数,这样我们分组进行操作,一定可以把所有数变成无限小,也就是说一定会有解,也就是说n为奇数一定有解,我们考虑n为偶数的情况,n为偶数, ......
codeforces div1A div1 865 div

题解 P9320/CF::Gym104229D【[EGOI2022] Tourists】

problem 一个长为 $m$ 的数组 $a$,每个数的取值为 $[1,n]$ 的正整数;另外有一个长为 $m$ 的数组 $b$,初始全零;另外有一棵 $n$ 个点的树,求树上两点距离的函数为 $dist$。请支持三种操作: 输入 $l,r,c$,枚举 $i\in [l,r]$,使得 $b_i\g ......
题解 Tourists 104229D 104229 9320