02 2019 档案
摘要:Description: 计算神经学作为新兴的交叉学科近些年来一直是学术界的热点。一种叫做SHOI 的神经组织因为其和近日发现的化合物 SHTSC 的密切联系引起了人们的极大关注。 SHOI 组织由若干个 SHOI 细胞构成,SHOI 细胞之间形成严密的树形结构。每个 SHOI 细胞都有且只有一个输
阅读全文
摘要:Description: Hint: Solution: $第一问比较水$ $设f[i]为i片叶子的二叉树的平均期望深度$ 有 $f[i]=\frac{f[i 1] (i 1)+f[i 1]+2} {i}$ $f[i]=f[i 1]+ \frac{2}{i}$ 第二问就非常神仙了 设 $f[i][
阅读全文
摘要:Description: 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西。理所当然的,你当然要帮他计算携带N件物品的方案数。他这次又准备带一些受欢迎的食物,如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制:每种食
阅读全文
摘要:Description: Hint: $n \le 10^5$ Solution: 掌握了线段树区间合并的套路,这题就很简单了,树剖之后用线段树维护左右颜色,和区间颜色段数,查询跳链时分类讨论一下中间的颜色是否相同,修改直接修改就行了,代码稍有细节 cpp include define ls p 1
阅读全文
摘要:Description: 有 n 名同学要乘坐摆渡车从人大附中前往人民大学,第 i位同学在第 t 分钟去 等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、 把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费m分钟(同学上下车时间忽略不计)。摆
阅读全文
摘要:Description: 给定两个有n个数的序列,你可以将其中一个进行旋转(想象是在一个环上),或者对序列的每个数加上一个非负整数C 求操作后 $\sum{(a_i b_i)^2}$的最小值 Description: $n using namespace std; const int mxn=1e6
阅读全文
摘要:Description: FFT真的容易忘,所以就放到上面来了 cpp include using namespace std; const int mxn=4e6+5; const double PI=acos( 1); int n,m,l,lim=1,r[mxn]; struct cp { do
阅读全文
摘要:Description: 用一种数据结构,模拟单旋splay的以下操作: 1.插入一个数 2.查询最小值,单旋到根 3.查询最大值,单旋到根 4.查询最小值,单旋到根删除 5.查询最大值,单旋到根删除 Hint: $n,m define ls p::iterator sit; const int m
阅读全文
摘要:Description: 在方格图上找一条回路使经过的权值最小 Hint: $n using namespace std; typedef long long ll; const int mxn=102,c[4]={0, 1,1,0}; struct data { int key; ll val;
阅读全文
摘要:Description: 给定一棵n个点的树,点带点权。 有m次操作,每次操作给定x,y,表示修改点x的权值为y。 你需要在每次操作之后求出这棵树的最大权独立集的权值大小。 Hint: $n,m define ls psz[son[u]]) son[u]=v; } } void dfs2(int u
阅读全文
摘要:Description: 给定一棵n个点的带权树,结点下标从1开始到N。寻找树中找两个结点,求最长的异或路径。 Hint: $n using namespace std; const int mxn=1e7+5; struct ed { int to,nxt,w; }t[mxn=0; i) { in
阅读全文
摘要:Description: 给出n m的方格,有些格子不能铺线,其它格子必须铺,可以形成多个闭合回路。问有多少种铺法? Hint: $n,m using namespace std; typedef long long ll; const int mxn=15,c[4]={0, 1,1,0}; str
阅读全文
摘要:Description: 一个 m n 的棋盘,有的格子存在障碍,求经过所有非障碍格子的哈密顿回路个数 Hint: $n,m using namespace std; typedef long long ll; const int mxn=15,c[4]={0, 1,1,0}; struct dat
阅读全文
摘要:Description: 小Y家里有一个大森林,里面有n棵树,编号从1到n 0 l r 表示将第 l 棵树到第 r 棵树的生长节点下面长出一个子节点,子节点的标号为上一个 0 号操作叶子标号加 1(例如,第一个 0 号操作产生的子节点标号为 2), l 到 r 之间的树长出的节点标号都相同。保证 1
阅读全文
摘要:Description: 给定一个n个数的数列,每次询问一个区间内有没有一个数出现次数超过一半 Hint: $n,m using namespace std; const int mxn=2e7+5; int n,m,cnt,len; int a[mxn],rt[mxn],ls[mxn],rs[mx
阅读全文
摘要:Description: 求出$(\sum_{i=1}^n \sum_{j=1}^n ij\ gcd\ (i,j)) mod\ p$ Hint: $n using namespace std; typedef long long ll; const int mxn=8e6; ll mod,tot,y
阅读全文
摘要:Description: 给定一个无向连通图,每条边有两个属性,$a_i,b_i$,找一条从1号点到n号点的路径,使路径上的 ${max}a_{i}+maxb_{i}$ 最小 Hint: $n=5 10^4,m using namespace std; const int mxn=1e6+5,inf
阅读全文
摘要:Description: 求 $ \sum_{i=1}^n \phi(i) ,\sum_{i=1}^n \mu(i)$ Hint: $n using namespace std; typedef long long ll; typedef unsigned long long ull; const
阅读全文
摘要:Description: Hint: $n using namespace std; const int mxn=1e6+5; int n,l[mxn],r[mxn],tot[mxn],a[mxn],b[mxn],sz[mxn],dis[mxn]={ 1},ch[mxn][2],val[mxn],r
阅读全文
摘要:Description: 求$ \sum_{i=1}^n \sum_{j=1}^m lcm(i,j) $ Hint: $ n,m using namespace std; const int mxn=1e7+5,mod=20101009; int n,m,tot; int p[mxn],vis[mx
阅读全文
摘要:Description: 求$ \sum_{i=1}^n \sum_{j=1}^m gcd(i,j) 2 1$ Hint: $n,m using namespace std; typedef long long ll; const int mxn=1e5+5; int tot,phi[mxn],p[
阅读全文
摘要:Description: 一开始有N个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若 第x或第y个数已经被删除 或 第x和第y个数在用一个堆 内,则无视此操作) 操作2: 2 x 输出第x个数所在的堆最小数,并将其删除(若
阅读全文
摘要:Description: 求 $ \prod_{i=1}^n \prod_{j=1}^m f[gcd(i,j)]$ 其中 $f$ 表示斐波那契数列 首先显然: $ Ans = \prod_{d=1}^{min(n,m)} \prod_{i=1}^{ \lfloor \frac{n}{d} \rfl
阅读全文
摘要:Description: 给出n个串和m个串, 分别求出这m个串能被n个串中的串拼出的最长前缀 注意:一定是拼出,串不能重叠!!! Hint: $n,m using namespace std; const int mxn=1e7+5; int f[mxn]; char str[mxn],p[80]
阅读全文
摘要:Description: 现在有一颗以1为根节点的由n个节点组成的树,树上每个节点上都有一个权值v 现在有Q次操作,操作如下: 1.1\ x\ y\ :查询节点x的子树中与y异或结果的最大值 2.2\ x\ y\ z\ :查询路径x到y上点与z异或结果最大值 Hint: $n,q using na
阅读全文
摘要:Description: 给出n个01串,求是否存在一个无限长度的01串不包含这n个中任意一个串 Solution: 若该串合法,则截取其循环的部分,相当于在所有01串中没有匹配,即不经过任一01串的末尾标记 所以只要在Trie图上找到一个不经过任何病毒串结尾位置的环即可 cpp include u
阅读全文
摘要:Description: 输出有哪些模式串在文本串中出现次数最多,这个次数是多少 Hint: 多组数据,$ len_{文本串} using namespace std; const int mxn=2e6+5; char p[160][80],str[mxn]; int n,st[mxn],vis[
阅读全文
摘要:Description: 求$ \sum_{i=1}^{n} \sum_{j=1}^m gcd(i,j)^k $ Hint: $n,m using namespace std; const int mod=1e9+7,mxn=5e6+5; int T,k,n,m,tot; int f[mxn],g
阅读全文
摘要:Description: 求n个模式串中有几个在文本串中出现 Solution: 模板,详见代码: cpp include using namespace std; const int mxn=1e7+5; char str[mxn],p[80]; queue q; namespace Trie {
阅读全文
摘要:Description 给你一个n个点的森林,要求支持m个操作: 1.连接两个点 x,y 2.询问若断掉 x,y这条边,两点所在联通块乘积的大小 Hint: $n,m using namespace std; const int mxn=1e5+5; int n,m,t[mxn],fa[mxn],s
阅读全文
摘要:Description: 给定n个点以及每个点的权值,要你处理接下来的m个操作。操作有4种。操作从0到3编号。点从1到n编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到y已经联通则无需连接。 2
阅读全文
摘要:Description: 小Z有一片森林,含有N个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有M条边。 小Z希望执行T个操作,操作有两类: $1.Q\ x\ y\ k$查询点$x$到点$y$路径上所有的权值中,第k小的权值是多少。此操作保证点x和点y连通,同时这两个节点的路径上至少
阅读全文
摘要:Description: 你拥有一棵有 N 个结点白色的树——所有节点都是白色的。 接下来,你需要处理 C 条指令: 1.修改指令:改变一个给定结点的颜色(白变黑,黑变白); 2.查询指令:询问从结点 1 到一个给定结点的路径上第一个 黑色结点编号。 数据范围: $N using namespace
阅读全文
摘要:Description: $t$组询问,求第$k$个大于$x$且与$p$互质的数 Hint: $x,k,p using namespace std; const int mxn=1e6+5; int tot,vis[mxn],mu[mxn],sum[mxn],p[mxn]; void sieve(i
阅读全文
摘要:Description: 给定$a$,$b$,$c$,$d$,$k$ 求: $\sum_{i=a}^{b} \sum_{j=c}^{d} gcd(i,j)==k$ $T$组询问 Hint: 均$ using namespace std; const int mxn=1e5+5; int T,tot,
阅读全文
摘要:Description: 求$ \sum_{i=1}^{n} \sum_{j=1}^{m} d(ij) $ 其中$d(x)$表示$x$的约数个数 Hint: $数据组数 using namespace std; typedef long long ll; const int mxn=5e4+5; i
阅读全文
摘要:Description: 求$\sum_{i=1}^{n} \sum_{j=1}^{m} gcd(i,j)==p\ _{p \in Prime}$ Hint: $数据组数 using namespace std; const int mxn=1e7+5; int n,m,T,tot,mu[mxn],
阅读全文
摘要:Description: 给定一颗n个点的树,有m个询问,求任意两点路径上点权第k小的点 Hint: $n,m using namespace std; const int mxn=6e5+5; struct ed { int to,nxt; }t[mxn 1; if(val 1; if(k=0;
阅读全文
摘要:Description: 给定一个序列,支持两种操作 1.在[L,R]的每个位置上加上一个数 (注意 一个位置上有多个数 ) 2.查询[L,R]上所有数中的第K大 Hint: $n,m define ls p 1; tag[ls]+=tag[p],tag[rs]+=tag[p]; t[ls]+=(m
阅读全文
摘要:Discription: 断开树的每一个点会形成一个森林,然后可以进行一次操作:将森林中的一棵树接到另一棵树上。使得森林中size最大的树size最小。依次输出对于每个结点的最小size值 Hint: $n using namespace std; typedef multiset::iterato
阅读全文
摘要:Description: 给出$n$个长为$m$的01串,第0个为0,同时给出$q$个询问串,每次向其中添加$n$个$\&$或$|$符号,求使这些串按顺序运算得到询问串的方案数 Hint: $n using namespace std; const int mxn=5e3+5,mod=1e9+7;
阅读全文
摘要:Description: \ \ 方程$a_1 x_1+a_2x_2+a_3x_3+a_4x_4=s, $\ \ $a_1$,$a_2$,$a_3$,$a_4$给定 \ \ 对于 $q$ 组 $d_1$~$d_4$ 和 $s$ 求满足$x_1d_i$的解的个数,$f[x]$为$x$时的正整数解 \
阅读全文