模拟赛题解
文章平均质量分 79
_Ark
这个作者很懒,什么都没留下…
展开
-
0607模拟赛 随机除法(div) 炮塔(tower) 最大子段和
A.随机除法(div)题面题解因为n很大,所以手写高精。然后代码中前缀和数组的定义与上面的题解有一点不一样(而且上面的题解好像把jjj写成iii了)。含义如下sum[e][i]=∑e′(∏j≤i[ej′=ej]∏[ej′≤ej]dp[e′])sum[e][i]=\sum_{e'}\left(\prod_{j\le i}[e'_j=e_j]\prod[e'_j\le e_j]dp[e']\right)sum[e][i]=e′∑(j≤i∏[ej′=ej]∏[ej′≤ej]dp[e′原创 2020-06-08 22:44:30 · 328 阅读 · 0 评论 -
0603模拟赛 解码 排列 安排
A 解码题面题解有xc≡m (mod n)x^c\equiv m\ (mod\ n)xc≡m (mod n),且ccc与(p−1)⋅(q−1)(p-1)\cdot (q-1)(p−1)⋅(q−1)互质。发现φ(n)=(p−1)⋅(q−1)\varphi(n)=(p-1)\cdot(q-1)φ(n)=(p−1)⋅(q−1),又xφ(n)≡1 (mod n)x^{\varphi(n)}\equiv1\ (mod\ n)xφ(n)≡1&nbs原创 2020-06-03 15:22:21 · 324 阅读 · 0 评论 -
0522模拟赛 A. 求和 B.农民(farmer) C.仙人掌
A. 求和求模s直接顺着递推。求模2的次幂用倒推。#include <bits/stdc++.h>using namespace std;const int MAXN = 1000105;int n, m, K;inline int qpow(int a, int b, int c) { int re = 1; a %= c; for(; b; b>>=1, a=1ll*a*a%c)if(b&1) re=1ll*re*a%c; return re;原创 2020-05-26 22:33:17 · 278 阅读 · 0 评论 -
0525模拟赛
A可以发现线段树不能维护,因为查询时无法合并logloglog个区间的历史最小值。于是就可以用kd树。直接维护当前的值和历史最小值就行了。合并很简单。详见代码。#include <bits/stdc++.h>using namespace std;inline void read(int &x) { char ch; while(!isdigit(ch=getchar())); for(x=ch-'0';isdigit(ch=getchar());x=x*10+ch-'0.原创 2020-05-26 22:20:24 · 195 阅读 · 0 评论 -
2020 520模拟赛 A.FWT优化 B.powerful_number求积性函数前缀和 C.毒瘤容斥状压(论文题:画家小P)
A考试一看,60分白送 写了走人。发现可以FWTFWTFWT。我们先转化一下问题,把求最大的异或和为000的集合转化为求最小的异或和为CCC的集合。其中C=⊕i=1naiC=\oplus_{i=1}^na_iC=⊕i=1nai。那么我们把每个aia_iai位置加111,然后从小到大枚举答案iii,卷积iii次后如果CCC位置有值,那么答案就是iii。然而由于线性基相关知识我们可以知道,如果能异或到CCC,最多只需要logA\log AlogA个数。而CCC本来就是所有aia_iai的异或原创 2020-05-20 22:51:36 · 427 阅读 · 0 评论 -
0519模拟赛
考试时没做这题。。。结果是最水的。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 100005;int n, k;struct node { LL x, y; node(LL x=0, LL y=0):x(x), y(y){} inline node operator +(const node &o)const { return node(x+o.x, .原创 2020-05-19 22:03:42 · 170 阅读 · 0 评论 -
0515 模拟赛 A.构造题(找规律 B.毒瘤状压算容斥系数 C.提答乱搞
A题目:标算:另有找规律解法:先把kkk转化成大于等于的子集数,就是用2n−1−k2^n-1-k2n−1−k替代kkk。然后如果k=−1k=-1k=−1肯定无解。否则我们写出一个n∗nn*nn∗n的矩阵,形如倒置的杨辉三角。如下图:然后直接对于每一行,从左往右扫,如果kkk减去当前格子的数后非负,就减去,然后把答案的邻接矩阵对应位置设为111,否则直接跳到下一行。然后就完了。时间复杂度O(n2)O(n^2)O(n2)。所以给nnn开到100010001000,然后kkk用高精读入也是可以做原创 2020-05-16 12:00:25 · 435 阅读 · 0 评论 -
0513 模拟赛 1.FMT 2.分治NTT 3.毒瘤树剖套线段树+可删除堆
T1可以发现每个果子的贡献系数是一个组合数,然后由于是异或,只需要求此组合数的奇偶性。组合数长这样(d+tt)\binom{d+t}{t}(td+t),ddd表示该果子深度(从0开始),然后#include <bits/stdc++.h>using namespace std;inline void read(int &x) { char ch; int flg=1; while(!isdigit(ch=getchar()))if(ch=='-')flg=-flg; fo原创 2020-05-13 16:28:45 · 361 阅读 · 0 评论 -
0504模拟赛
A#include <bits/stdc++.h>using namespace std;inline void read(int &x) { char ch; while(!isdigit(ch=getchar())); for(x=ch-'0';isdigit(ch=getchar());x=x*10+ch-'0');}const int mod = 9...原创 2020-05-05 22:18:41 · 210 阅读 · 0 评论 -
0501模拟赛
A考试写了暴力ntt走人。#include <bits/stdc++.h>using namespace std;const int mod = 998244353;int p[105], t[50000005];int n, k, x, s, ans;inline int qpow(int a, int b) { int re = 1; for(; b; b&...原创 2020-05-05 22:12:21 · 207 阅读 · 0 评论 -
0502 zr模拟赛
A乍一看 就是一个需要插入删除的线性基,里面 2^未确认的位数 就是连通块答案。然后不会删除,所以写个线段树分治。正解是离线,对于线性基每个数维护有效的最后时间,插入的时候更新一下让每一位的有效时间最大。然后查询的时候就看有多少位的最后有效时间>=i当前时间。这样就是一个log的。女少#include<bits/stdc++.h>using namespace st...原创 2020-05-03 14:37:40 · 299 阅读 · 0 评论 -
0428 模拟赛 Arithmetic Epidemic Sort
Arithmetic#include <bits/stdc++.h>using namespace std;inline void read(int &x) { char ch; int flg = 1; while(!isdigit(ch=getchar()))if(ch=='-')flg=-flg; for(x=ch-'0';isdigit(ch=getc...原创 2020-04-30 10:58:31 · 197 阅读 · 0 评论 -
0429模拟赛
A已知一个 n*m 的矩阵,矩阵的每个元素都是非负整数.已知第 i 行的最大值为 ri ,第 j 列的最大值为 cj .求矩阵数目。对1e9 + 7 取模。n,m <= 1000题解枚举几行几列不满足条件(即不存在最大值),简单容斥。注意前面填了的位置后面不能再填,就把n,m减去对应的行数列数。时间复杂度O(nm)O(nm)O(nm)权值分开算来避免取min想不到(是套路吗? ...原创 2020-04-29 15:38:22 · 338 阅读 · 0 评论 -
20191029 牛客CSP-S提高组赛前集训营1
前一个小时看这三道题感觉要爆零A. 仓鼠的石子游戏分析一下发现a[i]>1a[i]>1a[i]>1时后先手必输,a[i]=1a[i]=1a[i]=1时先手必赢然后直接看1的个数奇偶性就行了CODE#include <bits/stdc++.h>using namespace std;int main () { int T, n, a; scan...原创 2019-10-30 13:32:01 · 236 阅读 · 0 评论 -
NOI.ac模拟赛20181021 ball sequence color
T1 ball可以发现每次推动球时,是将每个球的位置 −1-1−1 ,然后把最左边的球放到 P−1P-1P−1 处。记个 −1-1−1 次数,再用set维护就好了。T2 sequencef(i,a,b,c)f(i, a, b, c)f(i,a,b,c) 表示考虑前 iii 个,换进了 aaa 个,换出了 bbb 个,当前的位置是 c(0/1/2)c(0/1/2)c(0/1/2) 的答案。其...原创 2018-10-25 15:34:27 · 355 阅读 · 0 评论 -
模拟赛20181101 雅礼 Wearry 施工 蔬菜 联盟
% Day2 Solution% Wearry% Stay determined!施工 记 fif_{i}fi 表示考虑前 iii 个建筑, 并且第 iii 个建筑的高度不变的答案, 每次转移时枚举上一个不变的建筑编号,中间的一段一定变成相同的高度, 并且高度小于等于两端的高度. 假设从 fjf_jfj 转移且中间高度为 ttt, 则:fi=∑k=j+1i−1(t−hk)...原创 2018-11-03 16:31:11 · 577 阅读 · 0 评论 -
NOI.ac 模拟赛20181103 排队 翘课 运气大战
题解排队20% 1≤n≤20,1≤x,hi≤201\le n\le 20, 1\le x,h_i\le 201≤n≤20,1≤x,hi≤20 随便暴力50% 1≤n≤2000,1≤x,hi≤1e91\le n \le 2000, 1\le x,h_i\le 1e91≤n≤2000,1≤x,hi≤1e9 枚举把哪个定成中位数100% 1≤n≤2e5,1≤x,hi≤1e91\le n\le...原创 2018-11-03 13:57:30 · 430 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)
A. The power of Fibonacci正解是这样子的:这个题目是某次翻Wikipedia的时候想到的•https://en.wikipedia.org/wiki/Fibonomial_coefficient•F[i]–F[i-1]–F[i-2]=0•F[i]^2–2F[i-1]^2–2F[i-2]^2+F[i-3]=0•F[i]^3–3F[i-1]^3–6F[i-2]^...原创 2019-08-15 22:11:47 · 170 阅读 · 0 评论 -
20190815模拟赛
T1 Luogu P5427 [USACO19OPEN]Left OutLuogu P5427 [USACO19OPEN]Left Out 正解:把第一行第一列全化为0若有解,则解只有以下三种位置:(1,1)、第一行或第一列(除(1,1)外)、剩下的区域中。我们称剩下的区域为S。若答案在S中,目标位置此时一定为1并且S的其他部分全部为0若答案在(1,1),则S一定此时全部为1(翻转第...原创 2019-08-15 21:38:13 · 234 阅读 · 0 评论 -
20190907 模拟赛题解
T1题意给出NNN,求形如(a,b,c,d)(a,b,c,d)(a,b,c,d)的有序数对使得a+b+c+d=Na+b+c+d=Na+b+c+d=N且a,b,c,da,b,c,da,b,c,d均为质数。N≤100000N\le 100000N≤100000题解考场上我就写了FFTFFTFFT,然后过掉了。然后发现100000100000100000内的质数大概只有95009500950...原创 2019-09-07 15:14:43 · 302 阅读 · 2 评论 -
20190915模拟赛
T1.phantasm题意略题解先用总的长度(n−1)(n-1)(n−1)减去每次至少跳kkk的限制,即令N=(n−1)−(m−1)∗kN=(n-1)-(m-1)*kN=(n−1)−(m−1)∗k,然后用插板法,答案就是C(n+m−2,m−2)C(n+m-2,m-2)C(n+m−2,m−2)要求的是奇偶性。也就是模222,考场上我先写了LucasLucasLucas,时间复杂度O(Tlo...原创 2019-09-16 16:04:09 · 177 阅读 · 0 评论 -
模拟赛20181031 雅礼 Wearry 养花 折射 画作
% Day1 Solution% Wearry% Stay determined!养花 考虑当 kkk 确定的时候如何求答案,显然对于所有形如 [ak,(a+1)k)[ak, (a+1)k)[ak,(a+1)k) 的值域区间, 最大值一定是最优的. 进一步观察发现, 这样的区间总个数只有 klnkk \ln kklnk 个.考虑分块, 那么我们可以在 O(n+klnk)O...原创 2018-11-03 16:31:19 · 828 阅读 · 0 评论