rounding maximum 1857b cf
题解 CF980D
有个显然的小 trick:如果两个数相乘为平方数,那么消去平方因子后这两个数相等。 于是我们可以暴力枚举,每出现一个新数就加一,用 unordered_map 维护,然后就 T 了。 考虑优化。我们对于每个数预处理出上一个与它相等的数的位置。这样每次枚举的时候只需要看 $pre_i$ 是否小于左边界 ......
题解 CF213C
考虑朴素 DP。定义 $f_{i,j,i2,j2}$ 表示两个人分别在 $(i,j),(i2,j2)$ 时获得的最大收益。复杂度 $O(n^4)$,不行。 我们换种方法,定义 $f_{st,x,y}$ 表示两人同时走了 $st$ 步,分别向右走了 $x,y$ 步。显然如果向右的步数确定了,向下的也确 ......
题解 CF930C
好题啊好题。 定义 $a_i$ 为有多少个区间包含 $i$。 拍脑袋一想,当且仅当存在顺序的三个坐标 $(i,j,k)$ 满足 $a_i>a_j$ 且 $a_j using namespace std; const int N=1e5+5; int n,m,a[N],f[N],g[N],c[N]; ......
题解 CF1265E
期望 DP。 定义 $f_i$ 表示第 $i$ 个镜子照成功的期望天数,$p_i$ 为第 $i$ 天成功的概率,$q_i$ 为第 $i$ 天失败的概率。 根据题意容易列出方程: $$f_i=(f_{i-1}+1)\cdot p_i+(f_{i-1}+1+f_i)\cdot q_i$$ 移项得: $$ ......
题解 CF156C
容易发现,如果把字母表映射到 $[1,26]$ 上,那么无论怎么操作总和都不变。 于是可已将问题转化为:有多少种长度为 $n$ 的序列,满足每个元素在 $[1,26]$ 之间,总和为 $sum$。 定义 $f_{i,j}$ 表示处理到第 $i$ 个元素,总和为 $j$ 的合法方案数。 转移方程为 $ ......
题解 CF1202C
不错的题,需要点思维和码力。 容易发现,左右和上下互不影响,可以分开处理,这里以左右举例。 定义向左走一格 $-1$,向右走一格 $+1$,求个前缀和找到最大值和最小值,和出现最值的最早时间与最晚时间。定义为 $l,r,l2,r2$。 只有当我们放了一个 A 或 D 使得所有最大值 $-1$ 且最小 ......
题解 CF1338B
小清新思维题。 先找一个不是叶子的节点,令它为根。 那么当且仅当,对于每一个非叶子节点,它包含的叶子节点到它的异或路径相等时,才满足题目要求。 考虑第一问,显然如果每个叶子的深度奇偶性相同,可以全填一样的数字,答案为 $1$。反之为 $3$(可以在一条链上试一试)。 对于第二问,定义 $f_i$ 表 ......
题解 CF799D
有趣的 BFS 题。 首先发现,一个数最多乘 $2^{17}$ 次后超过上限,所以我们可以考虑 BFS。 将 $a$ 数组元素从大到小排序,定义 $(x,y,t)$ 表示当前长为 $x$,宽为 $y$,操作了 $t$ 次。每次操作将两个数中没超过上限的乘上 $a_i$。 由于可以旋转 $90\deg ......
题解 CF1313D
带有小 trick 的 DP,长知识了。 $m$ 很大,需要离散化。 为了方便,采用扫描线的方式,不对其进行实际意义上的离散,而是对于第 $i$ 个区间 $[l,r]$,插入 $(l,i),(r+1,-i)$ 两个 pair,最后排个序。这样相邻两个 pair 之间的部分就缩成了一个点。 同时我们还 ......
题解 CF1271D
贪心+DP。 对于一个点,后选显然比先选好,也就是说每个点都对应了唯一一个来源。 于是我们可以把每个点所能回溯到的点的收益值从大到小排序,贪心地选前缀。 定义 $f_{i,j}$ 表示考虑了前 $i$ 个点,剩下 $j$ 个人,最大收益。 转移方程和 $01$ 背包的一样。 $$f_{i,j}=f_ ......
题解 CF1379F2
数据结构之小清新思维题。 容易想到把 $2n\times2m$ 棋盘中每个 $2\times 2$ 的部分压缩,其中必须含有恰好一个棋子。 对于每个 $2\times 2$ 分两种情况讨论(可能同时具备或不具备以下两种): 1. 左上角不能用,记为 $L$。 2. 右下角不能用,记为 $R$。 然后 ......
题解 CF9D
经典 DP。 定义 $f_{i,j}$ 表示 $i$ 个节点,深度小于等于 $j$ 的二叉树的个数。 则转移方程为: $$f_{i,j}=\sum\limits_{k=0}^{i-1}f_{k,j-1}\cdot f_{i-k-1,j-1}$$ 最终答案为 $f_{n,n}-f_{n,h-1}$。 ......
题解 CF41D
基础 DP 题。 定义 $f_{i,j,k}$ 表示从第一行走到 $(i,j)$,且数字总和模 $p$ 等于 $k$。 转移方程为: $$ f_{i+1,j-1,(k+a_{i+1,j-1})\bmod p}=\max (f_{i,j,k}+a_{i+1,j-1}) $$ $$ f_{i+1,j+1 ......
题解 CF417D
$m\le 20$,状压 DP。 首先可以根据每个人的 $k$ 从小到大排序。 定义 $f_{i,j}$ 表示考虑到第 $i$ 个人,完成了 $j$ 状态的题目,不考虑显示器所需的最小价格。 转移显然为 $f_{i,j|s_i}=\min(f_{i-1,j}+x_i)$。 最终答案为 $ans=\m ......
题解 CF985E
贪心+DP。 先从小到大排序。 定义 $f_i$ 表示序列 $[1,i]$ 能否分组。 转移为 $f_i|=f_j[a_i-a_j\le d,j\le i-k+1]$。 右区间可以直接算出来,左区间可以二分或根据单调性弄个指针。 定义 $sum_i=\sum\limits_{t=1}^{i}f_t$ ......
题解 CF840C On the Bench
这是一篇简洁易懂的良心题解,提供了多种做法。 对于两个数 $x,y$,定义 $x=n^2 \cdot tx,y=m^2 \cdot ty$。如果 $x\cdot y$ 为平方数,则说明 $tx=ty$。所以我们可以将每个数除去其平方因子,比较相邻两数是否相等即可。 ## F1: 定义 $f_{i,j ......
【周考】Round1 2024.7.6
# Summary **Score:** $100+90+0+50+4=244$ # T1 [减法操作](http://222.180.160.110:1024/contest/3887/problem/1) 考虑对 $n$ 分奇偶讨论: - 偶数:显然 最小质因子 为 $2$,而每次减 $2$ 后 ......
SMU Summer 2023 Contest Round 4
SMU Summer 2023 Contest Round 4 A - Telephone Number 思路:满足有8,且8后有大于等于11个数 #include<bits/stdc++.h> using namespace std; #define int long long typedef p ......
CF1845D 最小子数组
易于发现的是,假设设置的保护分为k,且k是为了避免某一项负值ai。令s=sum(a0, ai-1),则将k设置为s一定更优于介于[s-ai,s)中的任何值。 那么就需要研究什么情况下,我们选择当前的前缀和作为k,以使得最终值最大。应该是为了避免最小的一段递减。 因而可以研究最小子数列,类kadane ......
[Javascript] How to fix iphone safari auto zoom in problem without `maximum-scale=1.0`
Solution 1: consider change font-size to 16px or above Soution 2: using javascript if(navigator.userAgent.indexOf('iPhone') > -1 ) { document .querySe ......
SMU Summer 2023 Contest Round 4
# [SMU Summer 2023 Contest Round 4](https://codeforces.com/group/L9GOcnr1dm/contest/456018) ## [A. Telephone Number](https://codeforces.com/group/L9GO ......
Codeforces Round 885 (Div. 2) A-D
## A. Vika and Her Friends 题意:有一个n*m大小的矩阵,vika在点(a,b),她的k个朋友在分别(xi,yi),所有人每分钟都可以上下左右走一格,每一分钟vika先走,她的朋友后走,不能不走,问vika能否躲过朋友。 ### Solution 结论题,只要有一个朋友和她 ......
Codeforces Round #885(Div. 2)C
##C. 维卡和价格标签 每个测试的时间限制为1秒 每个测试的内存限制为256兆字节 输入:标准输入 输出:标准输出 维卡来到她最喜欢的化妆品店"Golden Pear"。她注意到n个物品的价格自她上次光顾以来发生了变化。 她决定分析价格的变化,并计算每个物品的旧价格和新价格之间的差异。 维卡喜欢计 ......
CF1808C Unlucky Numbers 题解
可以证明答案是 $l$ 或 $r$ 的一段前缀,拼上后面全部相同的一段字符 $d$,证明方式类似数位 dp。能够自由填的数字一定是相等的,这样不会影响幸运值。前面那些不能自由填写的,就是 $l$ 或 $r$ 的一段前缀。假如不是 $l$ 或 $r$ 的一段前缀,必然填写相等的更好,而这种情况已经被考 ......
Codeforces Round 885 (Div. 2) B
## B. 维卡和木桥 每个测试的时间限制为1秒 每个测试的内存限制为256兆字节 输入:标准输入 输出:标准输出 夏天,维卡喜欢去她的乡间别墅。那里有一切供放松的设施:舒适的秋千、自行车和一条河流。 河上有一座木桥,由n块木板组成。它相当老旧而不吸引人,所以维卡决定给它上漆。在小屋里,他们找到了k ......
CF1848C Vika and Price Tags 题解
每组 $(a_i,b_i)$ 之间相互独立,于是我们只需要考虑一对数 $(a,b)$。 首先 $(0,0)$ 的情况是平凡的。考虑我们需要的状态 $(0,b)$,它的变化过程是这样的:$(0,b)\to(b,b)\to(b,0)\to(0,b)$,所以是三轮一个循环,且除了 $(0,b)$ 之外另外 ......
Codeforces Round #885 (Div.2) Editorial
B - Vika and the Bridge 题意:从桥的一边走到另一边,每次只能踩在相同颜色的木板上,并且有一次操作,可以修改期中一个模板的颜色。 问那种走法,跨过模板的最大值最小。 思路:首先可以统计出选择每种颜色的,跳过木板的的个数,如果不能修改颜色,那么答案一定是每个颜色所对应的最大值的最 ......
codeforses Round 885(div 2) A
## 翻译: A. 维卡和她的朋友们 每个测试的时间限制为1秒 每个测试的内存限制为256兆字节 输入:标准输入 输出:标准输出 维卡和她的朋友们去了一家购物中心,可以将其表示为一个边长为n和m的矩形网格。每个房间都有坐标(a,b),其中1≤a≤n,1≤b≤m。因此,我们称坐标为(c,d)的大厅为它 ......
CF512D Fox And Travelling 题解--zhengjun
计数好题。 首先对于每个连通块独立考虑,最后合并答案。 发现 点数超过 1 的强连通分量一定删不掉。 - 若连通块中存在 点数超过 1 的强连通分量 - tarjan 缩点之后,称这些点数超过 1 的强连通分量为关键点; - 那么两关键点之间的点也不能删; - 于是对于剩下的点直接 dp 即可,由于 ......
Codeforces Round 883 (Div. 3)
只写部分题目。 ## A. Rudolph and Cut the Rope ```cpp #include using namespace std; #define int long long const int N = 2e5 + 5; int t, n, a[N], b[N]; signed ......