随笔分类 - 妙啊
CF1089I Interval-Free Permutations
摘要:题目大意: 有一个排列,长度为n,一个区间为连续段当且仅当最大值减最小值加一为区间的长度。问所有长度为n的排列,有多少个满足只有长度为1或n的连续段。要求n^3求出所有长度为1到n的答案。 思考:考虑连续段的性质。容易发现的是,两个相交连续段的并还是一个连续段。 首先我们特判n=2。然后我们i使用容
阅读全文
[校内训练2021_03_25]BC
摘要:题目大意:求一个 有标号树的 本质不同的 有根点分树 数量。要求平方。 思考:咕咕咕 1 #include<bits/stdc++.h> 2 #define mod 1000000007 3 using namespace std; 4 typedef long long int ll; 5 con
阅读全文
[校内训练2021_03_16]B 矩阵竟然能分治
摘要:题目大意:有一个n*m的01矩阵,统计出框架的个数。框架的定义:一个四元组(L,U,D,R)即一个矩形,满足L<R,U<D,并且四条边上全都是0。 思考:我们考虑分治(虽然我不知道为什么能想到这个):我们先把原本的矩阵竖着切一刀,那么我们要分别计算出左右两边的数组f[l][r],表示能够跨过分界线的
阅读全文
阴间分块:区间赋值,单点查询(分块套分块)
摘要:czyarl:https://www.cnblogs.com/czyarl/p/14515009.html 题目大意:有一个长度为n的序列,初始全为0。有两种操作:第一种是区间赋值,并且值全为正数且单调增;第二种是询问一个位置的值是什么。 所有的操作都是由程序在运行中根据seed随机生成的。也就是说
阅读全文
[校内训练2021_03_04]AC_平面图转对偶图2
摘要:我发现平面图转对偶图经常和最小割在一起。 HDU5518 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long int ll; 4 typedef long double ld; 5 typedef pair<int
阅读全文
[校内训练2021_03_03]C
摘要:题目大意:问平面上有多少个不同的由n个点组成的无向无标号的树(即在纸上画树,树边不能交叉)。n=10000000,对质数取模。 思考: 由于树太难直接考虑,我们需要建立一种一一对应的关系来方便计数。这里将树变成了平面图,即对于任意一个有2(n-1)个点均匀分布在圆周上的圆,我们给这些点两两配对,连出
阅读全文
[校内训练2021_03_02]C
摘要:题目大意:有一棵n个节点的树,给每个节点分配一个非负整数,使得权值和为m,求出所有方案的 标号最小的带权重心的 标号之和。一个点是带权重心当且仅当以它为根的子树中,所有子树的权值和小于等于m除以2下取整。n=200000,m=5000000,对质数取模。 思考:首先比较容易发现的一点是 带权重心一定
阅读全文
[校内训练2021_02_24]B,代数数的和仍然是代数数
摘要:我们先说理性地考虑如下证明:代数数的和仍然是代数数。 设P(a)是n次数多项式,Q(b)是m次多项式,并且最高项系数为1,系数均为有理数,a、b分别是P(a)和P(b)的任意根,满足P(a)=0,P(b)=0。 我们现在要构造一个数列(可能是无限长的),满足$t_0(a+b)^0+t_1(a+b)^
阅读全文
[校内训练2021_02_25]C
摘要:题目大意:给出一个字符串,对于它的每个前缀S,求出S所有子串(不要求本质不同)的所有前缀在border树上的(深度-1)的和。例如,对于字符串abab,它的第四个前缀S4=abab,有子串a,b,a,b,ab,ba,ab,aba,bab,abab,他们的所有前缀在border树上的(深度-1)的和分
阅读全文
[校内训练21_02_20]
摘要:第一题在尝试了几个错误的dp后,意识到所有合法的序列可以抽象为选出一个子序列,并将他们拓展至长度为n的序列。为了避免记重,我们强制选择第一个出现的字符。于是,f[i][j]表示已经填了i个字符,现在正停留在原序列的第j个字符上,若是朴素转移,需要借助nxt[i][26],即下一个字符的位置。而这件事
阅读全文
[校内训练20_10_23~25]
摘要:1. 标准的卢卡斯定理加数位dp,主要是算C(n,i)*C(n,2*i)。 但由于这题的模数是质数,就不需要考虑很多东西,如:是否超过上限了、是否有连续的进位。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long
阅读全文
[校内训练20_10_15]ABC
摘要:A.雅礼集训convex 回滚莫队:莫队时若发现删除、添加中有一个容易操作(O(1)),有一个不容易操作(>O(1))就可以使用这种方法。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long int ll; 4 t
阅读全文
[校内训练20_10_13]ABC
摘要:A.求矩阵的秩。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long int ll; 4 int n,m; 5 ll a[205][205],b[205][205]; 6 inline ll qpow(ll x,l
阅读全文
[校内训练20_09_29]ABC
摘要:1.问一个圆上的最多不交弧的个数。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1E6+5; 4 int n,m,tot; 5 int totT,tmp[maxn],jump[maxn][20]; 6 struc
阅读全文
[校内训练20_09_22]AB
摘要:1.结论题,不会证 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int base=200*500; 4 const int limit=2*200*500; 5 int T,n,a[555]; 6 bitset<205*505*2
阅读全文
[校内训练20_09_15]ABC
摘要:1.k个横着的障碍物(均在x轴上方),n个关健点(均在x轴上方),m个询问,问在某个坐标能看到多少个关键点(均在x轴下方)。k≤50,n,m≤100000,强制在线。 我只能说障碍物的两个端点很重要,因为它是许多关键直线的交点。这样判断一个点左侧有多少直线就只和与端点的连线的倾斜角有关了。 1 #i
阅读全文
[校内训练20_09_10]ABC
摘要:1.sb题。 1 #include<bits/stdc++.h> 2 #define ls son[x][0] 3 #define rs son[x][1] 4 using namespace std; 5 typedef long long int ll; 6 const int maxn=3E5
阅读全文
[校内训练20_09_08]AC
摘要:1.求二元组异或的三次方的和。k为位数,nk<=2000000。 n比较小时,直接两两枚举并用bitset计算。 k比较小时,按照位数进行分组,那么考虑贡献(三个位置)分别在一个组、两个组、三个组里的,枚举这些组并用FWT合并。 1 #include<bits/stdc++.h> 2 #define
阅读全文
[校内训练20_06_01]ABC
摘要:1.给出8个函数f(a,b,c)=k,其中a,b,c,k均为一个bool。对于一个长度为奇数的 零 一 字符串,我们称之为好的,当且仅当存在一种操作方法,使得这个字符串能变为1: 1.选出一个奇数i。令S=str[1,i],T=str[i+1,n] 2.从右往左将末尾3个数字替换为f(a,b,c)。
阅读全文
[校内训练20_05_30]ABC
摘要:1.一棵树,边权为1,每次给两个点a,b,d1,d2,找到任意一个到a距离为d1,到b距离为d2的点。 大力分类讨论即可。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1E6+5; 4 int n,q; 5 in
阅读全文
浙公网安备 33010602011771号