
zstuACM
文章平均质量分 65
追烽
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #816 (Div. 2) A - D
比赛时很快想到有 O(能过) 的修改与查询, 于是要想一种 O(能过) 的初始化总价值的算法.通过模拟样例可得 O(n) 的线性递推总价值的算法. (图为当时草稿)思路就是用第 i 位去拓展 f[i-1], 具体模拟一下就明白了.在修改与查询时, 根据修改的信息推导 sum 的变化.推导的过程和初始化的方法类似, 就是条件判断有点麻烦.这里初始化用的是后缀, 我用的是前缀.比赛时丑陋的 if-else 代码。图论, 贪心, 位运算。...原创 2022-08-26 16:25:07 · 410 阅读 · 0 评论 -
Codeforces Round #815 (Div. 2) A - D1
注意 b 数组是 a 的下标序列,我读题的时候以为 b 是 a 的子序列…这道题我把自己绕进去了,chao!限制可以卡到 256。原创 2022-08-20 12:26:02 · 399 阅读 · 0 评论 -
CodeTON Round 2 A - D
要求b[2],b[3],…,b[m]与a[]的末尾完全一致.优先保护城市数量多的区间,一天保护区间的一端,模拟这个保护的操作即可。然后如果在a[]的前面任意处找到b[1],则成功.设1为字符串开头下标。需要注意一些边界情况。...原创 2022-08-01 22:09:06 · 198 阅读 · 0 评论 -
AcWing 2983. 玩具
AcWing2983.玩具原创 2022-07-29 14:47:23 · 146 阅读 · 0 评论 -
Codeforces Round #810 (Div. 2) A - C
注意只有一对朋友会吃掉一个蛋糕,单个人不会吃蛋糕。原创 2022-07-25 21:37:52 · 294 阅读 · 0 评论 -
Educational Codeforces Round 132 A - D
贪心,树状数组,线段树。(比C题容易想多了)原创 2022-07-22 11:12:46 · 260 阅读 · 0 评论 -
Codeforces Round #809 (Div. 2) A - D1
计算全为偶数位置增高的情况的前缀和,计算全为奇数位置增高的情况的后缀和,然后遍历分隔点,找出前缀+后缀的最小值.若n为奇数,那么需要增高的就是2,4,6,…的这些建筑物,直接计算即可.对于每个a[i]每次优先更改前面的,如果前面已经改过,再改后面的.我比赛的时候最小值初始值赋1e9,太小了,可恶啊.若n为偶数,则有两个连续的位置不增高....原创 2022-07-19 14:42:04 · 465 阅读 · 1 评论 -
Codeforces Round #808 (Div. 2) A - D
给定一个三个数,n,l,r,问能否构造一个数组1-n,使得每一个位置上的数a[i]与该位置的坐标i的gcd各不相同,要求所有数在[l,r]的范围内,输出任意一个符合条件的数组,无解输出NO.有n场测试,每场测试难度为a[i],你的初始智商为q,若q>=a[i],则可以接受测试,否则,可以消耗1点智商接受测试,或不接受测试(不消耗智商).可以发现,a[2]是a[1]的倍数,a[3]是a[2]-k*a[1]的倍数.构造,差分,暴力。...原创 2022-07-17 15:09:46 · 595 阅读 · 1 评论 -
Codeforces Round #807 (Div. 2) A - D
把前导零去除,然后把剩余的0填充为1,每次填充花费1个操作数,填充完后依次把所有非零值加到a[n].构造,二分,递归。原创 2022-07-16 14:41:58 · 384 阅读 · 0 评论 -
Codeforces Round #806 (Div. 4) A - G
暴力给定长度为 3 的字符串,判断该串是不是 YES (不区分大小写).B. ICPC Balloons标签模拟给定一个大写字母字符串, 每个字母第 1 次出现获得 2 个气球, 之后每出现 1 次获得 1 个气球, 求总共获得多少气球.C. Cypher标签模拟给定有 n 个齿轮的密码锁, 已知最后的密码锁状态和转齿轮的操作, 求密码锁初始状态.D. Double Strings标签STL, 暴力给定 n 个字符串 s[i],i∈[1,n],s[i], i \in [1,n],s[i]原创 2022-07-14 11:10:00 · 245 阅读 · 0 评论 -
Codeforces Round #805 A - G
Codeforces Round #805 (Div. 3)暴力给定 m, 使其变成不大于 m 的最接近的 10 的幂, 输出它们的差值.B. Polycarp Writes a String from Memory标签模拟Polycarp 每次只能记住最多 3 个不同的字母.他想用最小的次数写一个非空小写字母字符串, 问最小次数.C. Train and Queries标签构造给定可能有重复元素的长度为 n 的数组 u 和 k 次询问.对于每次询问, 确定元素 a 是否在元素 b 的左边.确定原创 2022-07-13 16:43:48 · 300 阅读 · 0 评论 -
Educational Codeforces Round 131 A - D
https://codeforces.com/contest/1701/problem/A简单构造给定一个 2 * 2 的 01 矩阵,每次操作可以将一行和一列置零。问至少操作几次,才能使矩阵均为0。见代码B. Permutationhttps://codeforces.com/contest/1701/problem/B贪心, 排列对于一个正整数 d, 定义长度为 n 的排列 p 的花费是使得 p[i] * d = p[i + 1] 成立的下标 i 的数量.给定 n, 对于长度为 n 的排列 p, 找原创 2022-07-09 21:44:54 · 154 阅读 · 0 评论 -
Codeforces Round #802 D. River Locks
https://codeforces.com/contest/1700/problem/D二分, 贪心有 n 个水库, 当水库满时, 第 i 个水库可以向第 i + 1 个水库倒水(瞬间完成), 每个水库的容量是 v[i], 依次降序. 每个水库有一个管道连接. 管道打开时每秒传输 1 升水给水库. 最后一个水库会将多余的水瞬间传递到河.你需要填满所有水库.有 q 次询问, 每次询问时所有管道关闭, 水库清空. 你需要回答最少需要同时打开多少个管道以在 t 时间内填满所有水库.若无法填满, 输出 -1.先求原创 2022-07-07 10:42:55 · 138 阅读 · 0 评论 -
Codeforces Round #802 C. Helping the Nature
https://codeforces.com/contest/1700/problem/C差分, 贪心给定数组 a, 有 3 种操作.选择 i, 使 a[1 -> i] -= 1.选择 i, 使 a[i -> n] -= 1.使所有数 += 1求使所有数变为 0 的最小操作数.令 b 为 a 的差分数组.操作等价于:让 a[] 相同, 等价于 b[1] = a[1], b[2 -> n] = 0.让 a[] 全为 0, 等价于 b[1 -> n] = 0.发现, 能对 b[2, n] 操作的只有操作 1 和原创 2022-07-07 10:41:31 · 300 阅读 · 0 评论 -
Codeforces Round #802 B. Palindromic Numbers
https://codeforces.com/contest/1700/problem/B构造, 高精度给定一个长度为 n 的长整数, 求出一个长度为 n (没有前导零), 且和它相加为回文串的大整数.注意所求数的长度必须与给定数相同.若最高位不是 9, 可以让回文串的所有位置为 9.若最高位是 9, 不得不进位, 可以让回文串的所有位置为 1.然后用回文串减去给定数获得答案....原创 2022-07-07 10:40:37 · 198 阅读 · 0 评论 -
Codeforces Round #802 A. Optimal Path
https://codeforces.com/contest/1700/problem/A构造给定 n×mn\times mn×m 的矩阵, a[i][j]=(i−1)×m+ja[i][j]=(i-1)\times m+ja[i][j]=(i−1)×m+j. 每次只能往右或者下移动,问从左上角到右下角,经过的位置的和的最小值.走第一行、最后一列.ans=m(m+1)2+m×(n(n+1)2−1)ans=\frac{m(m+1)}{2}+m \times (\frac{n(n+1)}{2}-1)ans=2m(原创 2022-07-07 10:39:52 · 287 阅读 · 0 评论 -
Codeforces Round #804 C The Third Problem
https://codeforces.com/contest/1699/problem/C数组操作给定 0 到 n-1 的排列 a.定义 MEX( a[l -> r] ) 为不在 a[l -> r] 中出现的最小非负整数.若对任意 1原创 2022-07-05 20:29:58 · 186 阅读 · 0 评论 -
Codeforces Round #804 B Almost Ternary Matrix
https://codeforces.com/contest/1699/problem/B构造给定偶数 n 和 m, 找到一个 n 行 m 列的 01 矩阵, 使得矩阵里的每个元素有且仅有 2 个不同的(4 个方向上的)相临元素.找规律原创 2022-07-05 20:29:06 · 192 阅读 · 0 评论 -
Codeforces Round #804 A The Third Three Number Problem
https://codeforces.com/contest/1699/problem/A位运算给定正数 n, 试找到任意 3 个非负整数, 使 a xor b + b xor c + a xor c = n 成立.公式:a+b=a xor b+2(a and b)公式: a+b=a\ xor\ b+2(a\ and\ b)公式:a+b=a xor b+2(a and b)简易证明: 异或是位运算加法, 获取除了进位(2 个 1)以外的1. 或运算获取了进位(2 个 1)的情况, 2 倍的或运算可以模拟进位原创 2022-07-05 20:28:00 · 119 阅读 · 0 评论 -
Codeforces Round #803 (Div. 2) D. Fixed Point Guessing
https://codeforces.com/contest/1698/problem/D数组操作, 对分查找, 交互题本题是交互题.有一个长度为 n 的数组 a ={1, 2, 3, … ,n}, n 是正奇数. 裁判程序选择了 (n - 1) / 2 个互不干扰的数对, 交换这 2 个数. 例如, a = {1, 2, 3, 4, 5}, swap(1, 4), swap(3, 5) 后变成 {4, 2, 5, 1, 3}.交换完成后, 有 1 个数位置不变. 找出这个数.你可以询问至多 15 次. 每原创 2022-06-29 20:14:31 · 649 阅读 · 0 评论 -
Codeforces Round #803 (Div. 2) C. 3SUM Closure
https://codeforces.com/contest/1698/problem/C数组操作给定长度为 n 的数组 a. 如果对任意 1原创 2022-06-29 20:13:36 · 496 阅读 · 0 评论 -
Codeforces Round #803 (Div. 2) B. Rising Sand
https://codeforces.com/contest/1698/problem/B数组操作给定长度为 n 的数组 a. 对于 1 < i < n, 如果 a[i] > a[i - 1] + a[i + 1], 定义 a[i] 为 too tall.给定正整数 k, 在 1 次操作中, 你可以将连续 k 个数 + 1(a[i] = a[i] + 1).输出在任意次操作后, 数组中可以存在最多多少个 too tall 的数.如果 k=1, 简单 模拟 推演以下便可得到 ans = (int) (n -原创 2022-06-29 20:12:54 · 181 阅读 · 0 评论 -
Codeforces Round #803 (Div. 2) A. XOR Mixup
https://codeforces.com/contest/1698/problem/A位运算给定 n - 1 个数, 让 x 等于这 n - 1 个数依次 按位异或 的结果, 即 x = a[1] ^ a[2] ^a[3] ^ … ^ a[n - 1].现在将 x 放入这 n - 1 个数中并打乱, 找出哪个数是 x.若有多个 x, 输出任意一个.根据官方题解, 数组中的任意数都可以是 x, 只要任意输出一个数即可.以下是我在比赛时的推导.由于按位异或运算有交换律(a ^ b ^ c = a ^ c ^原创 2022-06-29 20:12:12 · 325 阅读 · 0 评论 -
Codeforces Global Round 21 D. Permutation Graph
https://codeforces.com/contest/1696/problem/D区间最值, 递归给定一个 1 ~ n 的排列 { a[1], a[2], … , a[n] }, 定义 mn(i, j) = min( a[i ->j ] ), mx(i, j) = max( a[i -> j]).构建 n 个结点的无向图. 对于每一对 { i, j }, 如果 ( mn(i, j) == a[i] and mx(i, j) == a[j] ) or ( mn(i, j) == a[j] and mx原创 2022-06-29 20:10:58 · 213 阅读 · 0 评论 -
Codeforces Global Round 21 C. Fishingprince Plays With Array
https://codeforces.com/contest/1696/problem/Cst1=21:57, ed1=22:10st2=22:25, ed2=null数组操作给定长度为 n 的数组 a 和整数 m. 有以下 2 个操作:选择 1 个 a[i], 且 a[i] 可以被 m 整除. 将这个 a[i] 替换为 m 个 a[i]/m.选择长度为 m 的数列, 且 a[i] = a[i+1] = … =a[i+m-1], 将其替换为 1 个 m*a[i].给定长度为 k 的数组 b, 判断能否在任意原创 2022-06-29 20:09:50 · 211 阅读 · 0 评论 -
Codeforces Global Round 21 B. NIT Destroys the Universe
https://codeforces.com/contest/1696/problem/Bst=10:39, ed=11:16数组操作定义 mex(S) 为不在 S 中出现的最小非负整数.给定长度为 n 的数组 a, 一次操作如下:选择任意 [l,r], 使 w = mex(a[l -> r]), 然后使 a[l -> r] = w.输出最小操作数, 使数组 a 全部为零.如果 a[l->r] 中没有 0, 那么可以使它变为 0.最终目标是使所有 a[i] 变为 0, 所以只有使 w = 0 是有效操作.以原创 2022-06-29 20:08:37 · 297 阅读 · 0 评论 -
Codeforces Global Round 21 A. NIT orz!
https://codeforces.com/contest/1696/problem/A位运算给定长度为 n 的数组 a, 进行以下 0 到任意次操作:选择任意 ai, 使 ai = ai | z,z = ai & z.输出任意次操作后数组 a 的最大值.ai = ai | z, ai 不严格递增同理, z 不严格递减如果找到一个 a[x1], 使 a[ans] = a[x1] | z 最大, 那么当 z &= a[x1] (z 变小) 时, 不可能找到其他的 a[x2] 使 a[x2] |= z 大于原创 2022-06-29 20:07:11 · 341 阅读 · 0 评论 -
哈尔滨理工大学第12届程序设计竞赛 J 大数乘法
链接:https://ac.nowcoder.com/acm/contest/30825/J题目描述给定整数 xxx,yyy,你需要输出 xyx^yxy mod ppp 的值输入描述:第一行一个整数 ttt(1≤t≤101 \leq t \leq 101≤t≤10),表示接下来有 ttt 组测试用例,每个测试用例有三行整数x,y,px,y,px,y,p0≤x≤1000000 \leq x \leq 1000000≤x≤100000,0≤y≤101000000 \leq y \leq 10^{100原创 2022-04-04 23:42:56 · 804 阅读 · 0 评论 -
哈尔滨理工大学第12届程序设计竞赛 B 抓球
链接:https://ac.nowcoder.com/acm/contest/30825/B题目描述一个箱子里有n个黑球,m个白球,小王想要连续q次从箱子里随机的取出k个球(每次取出k个后立即放回),连续q次取球k个都为黑球的概率是多少,结果对1e9+7取模。输入描述:第一行给出一个t,代表t组测试数据。(1<=t<=100000)每组测试数据给出n,m,k,q。(1<=n,m,k<=1e5,k<=n+m,1<=q<=1e12)输出描述:对于每组测试数原创 2022-04-04 00:10:58 · 679 阅读 · 0 评论 -
文远知行杯广东工业大学第十六届程序设计竞赛 A 区间最大值
题目链接:https://ac.nowcoder.com/acm/contest/30896/A题目描述长度为 n 的数组 a,下标从 1 开始,定义 a[i]=n%ia[i]=n\%ia[i]=n%i有 m 组询问 {L,R},求 maxi=LRa[i]max_{i=L}^{R} a[i]maxi=LRa[i]输入描述:第一行两个正整数 n, m接下来 m 行,每行两个正整数 L, Rn≤1e8n \leq 1e8n≤1e8,m≤1e4m \leq 1e4m≤1e4,1≤L≤R≤n1 \l原创 2022-03-26 17:55:04 · 933 阅读 · 1 评论 -
【组合数学】第二类斯特林数
第二类斯特林数定义:S(n,k),表示将n个两两不同的元素,划分为k个互不区分的非空子集的方案数。递推式:S(n,k) = S(n-1,k-1) + k*S(n-1,k)边界:S(0,0)=0,S(1~n,0)=1递推式:{nk}={n−1k−1}+k{n−1k}\begin{Bmatrix}n\\ k\end{Bmatrix}=\begin{Bmatrix}n-1\\ k-1\end{Bmatrix}+k\begin{Bmatrix}n-1\\ k\end{Bmatrix}{nk}={n−1k−原创 2022-03-16 20:27:27 · 1685 阅读 · 0 评论 -
【组合数学】卡特兰数
卡特兰数Catalan 数列H0H_0H0H1H_1H1H2H_2H2H3H_3H3H4H_4H4H5H_5H5H6H_6H6…11251442132…递推关系的解:H(n) = C(2n,n)/(n+1)Hn=(2nn)n+1(n≥2,n∈N+)H_n = \frac{\binom{2n}{n}}{n+1}(n \geq 2, n \in \mathbf{N_{+}})Hn=n+1(n2n)(n≥2,n∈N+)关于 C原创 2022-03-16 20:23:45 · 213 阅读 · 0 评论 -
【模板】【最短路】Floyd / Bellman - Ford / SPFA / Dijkstra / 堆优化 Dijksra
P3371 【模板】单源最短路径(弱化版)P4779 【模板】单源最短路径(标准版)Floyd 算法 - 邻接矩阵 (70分)参考#include<bits/stdc++.h>#define FOR(i,a,b) for(int i=(a);i<=(b);++i)const int INF=(1<<30);using namespace std;const int maxn=1e4+7;int n,m,s;//点、边、出发点int f[maxn][maxn原创 2022-02-26 21:56:16 · 154 阅读 · 0 评论 -
P3807 【模板】卢卡斯定理/Lucas 定理
P3807 【模板】卢卡斯定理/Lucas 定理LucasLucasLucas 定理:对于质数 ppp,有(nm) mod p=(⌊n/p⌋⌊m/p⌋)⋅(n mod pm mod p) mod p \binom{n}{m}\bmod p = \binom{\left\lfloor n/p \right\rfloor}{\left\lfloor m/p\right\rfloor}\cdot\binom{n\bmod p}{m\bmod p}\bmod p (mn)modp=(⌊m/p⌋⌊n/p⌋)⋅原创 2022-02-14 23:59:31 · 257 阅读 · 0 评论 -
【字典树】【Trie】P3879 [TJOI2010] 阅读理解
P3879 [TJOI2010] 阅读理解字典树写法参考1参考2bitset用法854ms/45.96MB#include<bits/stdc++.h>#define FOR(i,a,b) for(int i=(a);i<=(b);++i)using namespace std;int nex[300007][26],n,cnt=0;bitset<1001> b[500007];//bool b[500007][1001];void insert(ch原创 2022-02-13 17:46:13 · 504 阅读 · 0 评论 -
【公式】P2512 [HAOI2008]糖果传递
原题地址题目描述有 nnn 个小朋友坐成一圈,每人有 aia_iai 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 111 。输入格式小朋友个数 nnn,下面 nnn 行 aia_iai 。输出格式求使所有人获得均等糖果的最小代价。输入输出样例输入 #141254输出 #14说明/提示对于 100%100\%100% 的数据 n≤106n\le 10^6n≤106 。思路:设每个人原来拥有糖果数量为 AiA_iAi ,每次向右传递数量为 X原创 2022-02-11 23:27:25 · 431 阅读 · 0 评论 -
【拓展欧几里得】【快速幂】【线性递推】P3811 【模板】乘法逆元
原题地址参 考拓展欧几里得(单个查找,p可以为合数)void Exgcd(ll a, ll b, ll &x, ll &y) { if (!b) x = 1, y = 0; else Exgcd(b, a % b, y, x), y -= a / b * x;}int main() { ll x, y; Exgcd (a, p, x, y); x = (x % p + p) % p; printf ("%d\n", x); //x是原创 2022-02-09 21:41:05 · 322 阅读 · 0 评论 -
【拓展欧几里得】【exgcd】P1082 [NOIP2012 提高组] 同余方程
原题地址-Luogu题目描述求关于 x 的同余方程 ax≡1(mod b) 的最小正整数解。输入格式一行,包含两个正整数 a,b,用一个空格隔开。输出格式一个正整数 x0 ,即最小正整数解。输入数据保证一定有解。输入输出样例输入 #13 10输出 #17说明/提示【数据范围】对于 40%的数据,2≤b≤1,000;对于 60%的数据,2≤b≤50,000,000;对于 100%的数据,2≤a,b≤2,000,000,000。NOIP 2012 提高组 第二天 第一题原创 2022-02-09 17:53:19 · 663 阅读 · 0 评论 -
P4549 【模板】裴蜀定理
原题地址-Luogu裴蜀定理对于整数a,b和正整数x,y,ax+by=c成立的充要条件是gcd(a,b)%c=0.推论:a,b互质的充要条件是存在整数x,y,使ax+by=1.拓展:对于n个整数a1,a2,......,an,a1*x1+a2*x2+......+an*xn=S成立的充要条件是gcd(a1,a2,......an)%S=0.AC 代码//#pragma GCC optimize(2)//std::ios::sync_with_stdio(0)//clock_t st=clo原创 2022-02-09 15:02:47 · 309 阅读 · 0 评论 -
P3383 【模板】线性筛素数
本文用以保存模板以备复习原题地址-Luogu题目背景本题已更新,从判断素数改为了查询第 k 小的素数提示:如果你使用 cin 来读入,建议使用 std::ios::sync_with_stdio(0) 来加速。题目描述如题,给定一个范围 n,有 q 个询问,每次输出第 k 小的素数。输入格式第一行包含两个正整数 n,q,分别表示查询的范围和查询的个数。接下来 q 行每行一个正整数 k,表示查询第 k 小的素数。输出格式输出 q 行,每行一个正整数表示答案。输入输出样例输入 #11原创 2022-02-08 15:09:04 · 380 阅读 · 0 评论