shopping 1009 game cf

CF1716D

Chip Move - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 背包DP: 这道题与完全背包不一样的地方便是:至少要拿一个物品。 DP[i,j]为前i个物品,每个至少拿一个,体积为j时的方案数 转移方程:DP[i,j]=DP[i-1,j-w[i]]+DP[i,j-w[i]](具 ......
1716D 1716 CF

CF1404 Div1 VP记录

A 略 B 看到这道题的第一眼:Bob 怎么赢? 样例二给了解释,对于一条链,Bob 看 Alice 到了哪边,跳到另一边即可。 大胆猜测,这是 Bob 能赢的唯一机会。其他时候 Alice 采用步步逼近一定能取得胜利(详情请参见国际象棋中的单后杀王)。 使用这个方法要满足三个条件: $db > 2 ......
1404 Div1 Div CF

CF 1627C-Not Assigning, 1400 / 树的构造与遍历 / 构造一棵树,使得每条边和任意相邻两条边之和都是素数

CF 1627C-Not Assigning 这个东西坑了我两三个小时: 入度和出度。不能在线判断入度或出度从而决定哪个点是起始点,因为可能现在决定为起点的点接下来的输入中还有点与他连边,且可以作为起点的点被这个点替换掉了,那么即 BUG 了。 收获: 如果两个素数之和仍为素数,那么其中一个素数必为 ......
素数 之和 Assigning C-Not 1627

C. Python Indentation CF909C--(dp)

#根据题目,又是求方案数的题目,先找到联系,熟悉规则; 看数据就猜是二维DP,题目分为不同字符 'f', 's'. ‘f’根据规则需要缩进一格,‘s’就是简单的输出一行。 所以根据题意:往前一格想,就设思想为:在第i格时有几格缩进的方案数,用f[i, j]表示。 当第i - 1格是‘f’时, 没办法 ......
Indentation Python 909 CF dp

Devu and Flowers CF451E

Devu 有 n 个花瓶,第 ii 个花瓶里有 fi 朵花。他现在要选择 s 朵花。 你需要求出有多少种方案。两种方案不同当且仅当两种方案中至少有一个花瓶选择花的数量不同 #include<iostream> #include<cstring> #include<algorithm> using n ......
Flowers Devu 451E 451 and

CF笔记

https://codeforces.com/problemset/problem/1819/B 分析:总面积总是不变的 考虑第一刀横着劈开 这样一块宽度是最大的 同理竖着劈开 高度是最大的 这样两种情况 通过算面积能够求出剩下的长宽度 考虑贪心 对于剩下的块 如果有长宽相匹配的就直接匹配 顺序不重 ......
笔记

练习记录-cf-Educational Codeforces Round 147 (A-D)

打的很烂的一场 C想了很久 D的贪心没有贪好 赛后一小时补起来了 谁是nc 我是nc! A. Matching 问有多少种情况能匹配 就计算?的个数 x10x10...... 如果第一个是? 那么就是9x10x10... 如果第一个是0 不能有前导0 就输出0 #include<bits/stdc+ ......

CF 580C- Kefa and Park, 1500 / 树的遍历 / 根节点到叶节点的路径上某性质的点不能连续超过 m 个

CF 580C- Kefa and Park 这个 1500 的题这么水? 这还不如 1200、1300 的思维题 我开始没考虑周全,这题给出的连边没有讲都是从父节点连向子节点,所有要建双边。 #include <iostream> #include <cstring> using namespac ......
节点 路径 性质 1500 Kefa

CF1797E 线段树 + 倍增 题解

Preface 有趣的一道 ds,赛后不看题解做出来了。 Solution 首先有一个性质:$\varphi(x)$ 经过 $\mathcal{O}(\log x)$ 次迭代后变为 $1$。 证明: 若 $x$ 为奇数,$\varphi(x)=x\sum_{i=1}^{k}\frac{p_i-1}{ ......
线段 题解 1797E 1797 CF

Text Editor (CF2E) (DP字符串2端分别dp)

思路: 首先贪心出性质, 通过模拟这个题意,一定是先右边弄完在去左边弄, 或者左弄完去右边弄, 于是左右2边分别dp一次 然后求和 dp[i][j],表示i 和 j 匹配的时的 最小操作次数 转移的时候有一个贪心结论,当 si != tj 时, 这个贡献时一个固定值, 正向:首先i- (公共的), ......
字符串 字符 Editor Text CF2E

CF1767F Two Subtrees

$\text{Solution}$ 高维莫队的一次尝试 最小众数似乎要求我们刻画能回滚的高维莫队 但这并不友好 修改有 $O(n^{\frac 7 4})$,询问只有 $O(n)$ 考虑友好的分块,那么就加个值域分块 询问便可以先得到众数的出现次数,然后逐块枚举找到存在众数的块,再在块中枚举数判断是 ......
Subtrees 1767F 1767 Two CF

CF 1820A-Yura's New Name, 800 / 思维 / ^-^ 或 ^^ 才合法

CF 1820A-Yura's New Name 处理方式 : 特殊情况提前判断 + 一般情况从首推到尾 #include <iostream> #include <cstring> using namespace std; const int N = 1e2 + 10; typedef long ......
思维 A-Yura 1820 Yura Name

CF1033G Chip Game 题解

传送门 CF1033G Chip Game 题目大意 有 $n$ 个石子堆,每堆有 $a_i$ 个石子。A 与 B 轮流取,A 每次只能取 $x$ 个,B 每次只能取 $y$ 个。 求对于所有 $x,y \in [1,m]$,A 必胜、B 必胜、先手必胜和后手必胜的数量。 $n \le 100,m ......
题解 1033G 1033 Chip Game

【题解】CF700E

Cool Slogans 给定一个字符串 $S$,要求构造字符串序列 $s_1,s_2,\ldots,s_k$,满足任意 $s_i$ 都是 $S$ 的子串,且任意 $i\in[2,n]$,都有 $s_{i-1}$ 在 $s_i$ 中出现了至少 $2$ 次(可以有重叠部分,只要起始、结尾位置不同即可) ......
题解 700E 700 CF

CF1810G The Maximum Prefix

题面传送门 挺好一题,综合了几种方法。 首先看到题会想到一个dp:设 $f_{i,j,k}$ 表示到了第 $i$ 个位置,历史前缀最大值为 $j$ ,当前前缀和为 $k$ 的概率,乘上期望就是答案。但是这个状态非常寄因为状态本身就有 $O(n^3)$ 了而且不易优化。所以我们需要另辟蹊径。 不妨假设 ......
Maximum Prefix 1810G 1810 The

CF 1195C-Basketball Exercise,状态机DP,1400

CF 1195C-Basketball Exercise 没怎么做过状态机 dp, 这个简单的题目甚至开始甚至搞出三维来。 #include <iostream> using namespace std; const int N = 1e5 + 10; typedef long long LL; / ......
C-Basketball Basketball Exercise 状态 1195

CF题解

E. Replace the Numbers 1900 思维 https://codeforces.com/problemset/problem/1620/E 题解:正着做比较困难,我们可以考虑从后往前做。一个数会被变成什么样子是取决于其后的2操作。2操作可以等价为一个变换,而位置越后的2操作相较前 ......
题解

CF449D Jzzhu and Numbers

CF449D Jzzhu and Numbers 黄金定律:给定序列求答案,但答案与序列顺序无关的题目,要么考虑把序列转权值序列,要么对序列排序。 二进制题按大小排序看起来就没啥用,那就转成权值序列。即,设 $c(i)$ 表示 $i$ 在 $a$ 中的出现次数。同时设 $V$ 为 $a$ 的值域。 ......
Numbers Jzzhu 449D 449 and

CF 1360E-Polygon,1300,思维题

CF 1360E-Polygon 如果一个 1 不是在最右边或最下边,则一定有一个 1 在他的紧邻着的下边或右边,否则不合法。 太妙了。 #include <iostream> using namespace std; const int N = 1e2 + 10; int T, n; char a ......
E-Polygon 思维 Polygon 1360 1300

cf-div2866-D

题目链接:https://codeforces.com/contest/1820/problem/D 比赛的时候读错题了,没看见他切一刀之后会把其中一个放进盒子里(也就是不能再切了)。 思路:首先原来的大矩形的其中一边肯定在盒子里的小矩形的其中一边里(也就是说答案最多只有两种),我们先找出最大的长和 ......
cf-div 2866 div cf

CF做题小记

资历太浅,没法给出什么高质量的内容( 本博客所记录的题目最低难度是 Div.2 的 C 题。 1.CF1768C. Elemental Decompress 显然,按照最大值从小到大排序之后会轻松很多。基本思路是这样,首先优先将第一个排列的值赋为最大值,然后选取第二个排列中能够使用的最小值。如果第一 ......
小记

CF题解

D. Guess the Permutation 2000 逆序性质 二分 https://codeforces.com/contest/1589/problem/D 题解:首先我们可以二分查找i的位置:当1->x逆序对>0,则在i右,否则在左,log(n)次询问。找到i的位置后,我们发现逆序对有如 ......
题解

CF 1526B I Hate 1111, 1400

I Hate 1111, 1400 数论题应该要有一个重要思想:打表。这题我可以打表发现 1099 之后的数是连续出现的。 赛瓦韦斯特定理:a, b 为大于 1 的正整数, gcd(a, b) = 1, ax + by = c, 最大使得方 程无正整数解的数为 c = ab - a- b。 ......
1526B 1526 1111 1400 Hate

CF 476B Dreamoon and WiFi

Dreamoon and WiFi 一个简答的组合数学题。开始想弄一个很妙的做法,但是我理解不了,或者说理解困难,半天没搞出来,然后试着还是用朴素好想的做法做吧,结果马上做出来了。 选择朴素的做法时还是有个地方想不清楚,分类讨论 + 举例一下子清楚了。 ......
Dreamoon 476B WiFi 476 and

CF1646E Power Board 题解

题目链接:https://codeforces.com/contest/1646/problem/E 题目大意: 有一个 $n \times m$ 的矩阵,其中第 $i$ 行第 $j$ 列的格子中的数字是 $i^j$。 问:矩阵中存在多少个不同的数? 解题思路: 可以很明显地发现,第 $1$ 行的数 ......
题解 1646E Board Power 1646

CF1728D

博弈论dp模板题 首先我们可以先确定dp状态 dp[round][L][R][0/1]表示第round轮,现在字符串为[L~R],上一轮的人取了左边还是右边 然后发现round是可以由字符串L~R确定而来的,因为每一轮只删除一个数,因此可以优化round这维 我们令dp[L][R][0/1]=1为  ......
1728D 1728 CF

CF R866 div.2

A 当一个"_ "的右边没有“^”时,答案增加,发现这对于中间的序列是充分必要的。 当位置 $1$ 为 "_"时,我们必须在其前面加一个"^";当整个字符串为 "^"时,特判一下答案。 B 发现给定01串当全是“1”时,我们直接输出 $nn$。考虑一般的情况,我们发现将面积表示出来 $S=a+b,a ......
R866 866 div CF

CF题解

D. AB Graph 2000 构造 https://codeforces.com/problemset/problem/1481/D 题解:由于只有两种边,我们可以枚举较小结构的特性并循环来构造整体解。对于任意两个点,[u->v,v->u]只有4种情况,对于[1,1],[0,0]直接得解,可以循 ......
题解

CF1816F Xor Counting - dp - 分治 -

题目链接:https://codeforces.com/contest/1816/problem/F 题解: 一道有趣的题。 首先发现 $m=1$ 和 $m\geq 3$ 时结论是平凡的。$m=1$ 时结论显然,下面讨论一下 $m\geq 3$ 时: 首先可以构造 $[x, (n-x)/2, (n- ......
Counting 1816F 1816 Xor CF

CF1815C

1 解法 设 $f_i$ 为 $i$ 最多出现多少次,那么一个限制 $(u,v)$ 可以写成 $f_u \leq f_v +1$,把 $f$ 看做最短路中的 $dis$ 数组,上面的式子就是在图上连一条从 $u$ 到 $v$ 边权是 $1$ 的边,由于边权都是 $1$,所以可以直接用 $\text{ ......
1815C 1815 CF