2019年9月

我是傻逼,赛后D题加了一行就过了。。。A.Distinct Digits题意给出 $l,r(\le 10^5)$ ,求 $x\in [l,r]$ ,要求 $x$ 各数位均不同。题解数据范围小,直接暴力判断。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=getchar()...
题解 比赛-Codeforces
题意对 $\forall i\in [1,n]$ ,求下式对 $123456789$ 取模的值$$\sum_{j=1}^n a_{\lfloor \frac{i}{j} \rfloor}\times b_{i \ \mathrm{mod} \ j}$$$n\le 10^5 \ , \ a_i,b_i\le 10^9$题解A了这题再随便打了下T3的暴力就rk18了。中途还突然把时限放宽到 $2...
题解 数学 算法-分块
题意求$$\sum_{i=1}^n k \ \mathrm{mod} \ i$$$n,k\le 10^9$题解经典的数值分块问题。原式可以化为:$$n\times k - \sum_{i=1}^n i\times \lfloor \dfrac{k}{i} \rfloor$$问题就转化为求 $\sum_{i=1}^n i\times \lfloor \dfrac{k}{i} \rfloor$可...
题解 数学 算法-分块
提高+/省选-
题意有 $n(n\le 5\times 10^5)$ 个人,如果两个人之间所有人的身高都不高于他们,他们就可以互相看见。问有多少对人可以相互看见。题解总感觉之前做过但又找不到,所以还是写下来记录一下。维护一个从大到小的单调栈,当前这个人 $i$ 可以和单调栈中所有 $h_j\le h_i$ 的人 $j$ 以及第一个比他高的人 相互看见。如果身高相同应该合并在一起。#include<bi...
题解 数据结构-单调栈
提高+/省选-
双倍经验:洛谷4568,只需要改数据范围。题意有一个 $n(n\le 10000)$ 点 $m(m\le 50000)$ 边的无向图,可以将其中 $k(k\le 20)$ 条边的边权改成 $0$ ,求 $1\rightarrow n$ 的最短路。题解分层图最短路。将图分为 $k+1$ 层,同一层按给出的边连边;第 $i$ 层与第 $i+1$ 层之间也按给出的边连,但权值为 $0$ 。这样走到...
题解 图论-最短/最长路
省选/NOI-
题意有一个 $m(m\le 20)$ 个点 $e$ 条边的无向图,有 $n(n\le 100)$ 个时刻需要从 $1\rightarrow m$ (保证可以到达)。每个点都有些时刻无法通行,如果更换道路还需要额外交 $k$ 元。求最小花费。题解用 $f[i]$ 表示前 $i$ 个时刻的最小花费,$x$ 表示最短路径。枚举与 $i$ 路径相同的区间起点 $j$ ,可以得到方程:$$f[i]=\...
题解 图论-最短/最长路 动态规划-线性DP
提高+/省选-
题意给出 $n(n\le 100)$ 个单词,求一段长度不超过 $1000$ 的情书中出现了多少次这些单词,一句话中只统计一次。题解小清新模拟题,用 map 标记给出的单词以及当前这句话里是否出现过。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=getchar(); i...
题解 算法-模拟 字符串
提高+/省选-
题意有 $n(n\le 2\times 10^5)$ 头奶牛,有 $m(m\le 10^5)$ 组关系 $(l,r)$ ,表示 $[l,r]$ 奶牛中有且仅有一头有斑点。问最多有多少头奶牛有斑点。题解第一反应就是差分约束,不过因为是从DP点进来的所以我去看题解确认了下,得知会T(除了玄学的限定次数)。方程式还好想,就是转移比较神奇。用 $f[i]$ 表示第 $i$ 头牛有斑点的前提下前 $i...
题解 动态规划 动态规划-单调队列优化DP
省选/NOI-
题意在 $n(n\le 100)\times m(m\le 2)$ 的矩阵中选出 $k(k\le 10)$ 个子矩阵,使得这些子矩阵中数字和最大。子矩阵之间不能重叠。题解如果做过 CF1199F 就很容易做出来。用 $f[l][r][x][y][k]$ 表示在左下角为 $(l,x)$ ,右上角为 $(r,y)$ 的区域中选 $k$ 个子矩阵的最大和。枚举横纵的中间点,以及两部分选取的子矩阵的...
题解 动态规划 动态规划-区间DP
提高+/省选-
A.Cards题意给 $n(n\le 10^5)$ 个字母,要求把它们组合成 one 或 zero 并输出为 1/0 。题解统计 n 和 z 的个数即可。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=getchar(); int f=1,x=0; while (...
题解 比赛-Codeforces
小号rating比大号高惨案wzx真是太强辣,除了我还有人膜它,而且还AK了。A.Prefixes题意给出一个长度 $n(n\le 2\times 10^5)$ 的 $a/b$ 串,要求对于所有的 $k\le \dfrac{n}{2}$ ,$[1,2k]$ 中 $a$ 和 $b$ 个数相等。问至少要修改几个数。题解水题,判断下每相邻两个数是否相等即可。#include<bits/std...
题解 比赛-Codeforces
A.City Day题意题解水题,模拟即可。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=getchar(); int f=1,x=0; while (ch<'0' || ch>'9') { if (ch=='-') f=-1; ch=getchar...
题解 比赛-Codeforces
补的,这真是一场神仙Round。A.BowWow and the Timetable题意题解可以发现一般情况下答案只与最高位有关,但如果是刚好 $4^x$ 的话就需要看后面有没有 $1$ ,如果没有那答案要 $-1$ 。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=ge...
题解 比赛-Codeforces
A.Yellow Cards题意题解最少的情况就是先给两个队的每个人 $k-1$ 张,然后还剩几张就是答案。最多的情况就是只给下场的人,同时还应该先给 $k$ 较小的队伍。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=getchar(); int f=1,x=0; ...
题解 比赛-Codeforces
感冒了没打,亏死了,后来补的。为了节约时间,洛谷上有较好翻译的我就直接贴链接了,懒得自己写了。A.Paint the Numbers题意题解每次找最小的数然后把后面的筛完就行了。#include<bits/stdc++.h> using namespace std; inline int read() { char ch=getchar(); int f=1,x=0;...
题解 比赛-Codeforces
标签
其它-Firefox1 其它-pbds1 其它-pjax1 其它-Ubuntu1 其它-VSCode1 其它-网易云音乐1 动态规划52 动态规划-区间DP9 动态规划-单调队列优化DP5 动态规划-图上DP1 动态规划-斜率优化DP5 动态规划-树形DP16 动态规划-状压DP16 动态规划-线性DP10 动态规划-背包DP3 图论4 图论-LCA4 图论-Tarjan11 图论-二分图1 图论-割点3 图论-基环树1 图论-差分约束4 图论-强连通分量2 图论-最小环1 图论-最小生成树6 图论-最短/最长路19 图论-树上差分2 图论-树的直径4 图论-桥1 图论-缩点5 图论-负环4 字符串3 字符串-kmp2 思维题3 数学26 数学-bsgs2 数学-exgcd4 数学-gcd2 数学-中国剩余定理2 数学-卡特兰数1 数学-卢卡斯定理4 数学-快速幂4 数学-扩展中国剩余定理1 数学-扩展卢卡斯定理3 数学-矩阵5 数学-约数1 数学-组合数3 数学-质数1 数据结构-动态开点线段树1 数据结构-单调栈1 数据结构-单调队列2 数据结构-可持久化字典树2 数据结构-堆4 数据结构-字典树2 数据结构-并查集2 数据结构-栈1 数据结构-树状数组6 数据结构-树链剖分10 数据结构-线段树5 数据结构-队列1 比赛-Codeforces21 比赛-JX Round1 比赛-NOIp/CSP5 算法-KM算法1 算法-二分/三分12 算法-位运算1 算法-倍增4 算法-分块2 算法-分治3 算法-哈希2 算法-多叉树转二叉树2 算法-差分4 算法-悬线法1 算法-拓扑排序2 算法-排序3 算法-搜索21 算法-模拟5 算法-状态压缩4 算法-贪心10 算法-高精度3 问题-逆序对2 题目-一本通5 题目-网络流24题2