题目链接: http://172.16.0.132/senior/#main/show/5437 题目: 题解: 发现满足上述性质并且仅当A序列的子序列的差分序列与B序列的差分序列相同 于是我们把A变成差分序列,把B变成差分序列,做一次KMP就好了 #include<algorithm> #include<cstring> #include<cstdio> #include<iostream> using namespace std; ; int n,m;…
题目 分析 对于\[\sum_{i=1}^{n}\lfloor\dfrac{T-B_i}{A_i}\rfloor\] 我们考虑拆开处理,得到 \[\sum_{i=1}^{n}(\lfloor\dfrac{T}{A_i}\rfloor-\lfloor\dfrac{B_i}{A_i}\rfloor)-[T\%A_i<B_i\%A_i]\] 因为\(A_i<=1000\),那么我们可以 对于每个模数\(mo=A_i\) 设S[mo][j],记录B数组中模mo后为j的个数,并且对于S[mo]求一个前缀…
题目链接: http://172.16.0.132/senior/#main/show/100026 题目: 有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意思是$i$指向$f(i)$的边权为$w(i)$的边,现在小A想知道,对于每个点的$s_i$和$m_i$.$s_i$:由$i$出发经过$k$条边,这$k$条边的权值和.$m_i$:由$i$出发经过$k$条边,这$k$条边的权值最小值. 题解: 倍增即可(倍增的套路,转移是唯一的,体现在本题中是每个点出度为1)…
题目 给出一个长度为n的序列a[] 给出q组询问,每组询问形如\(<x,y>\),求a序列的所有区间中,数字x的出现次数与数字y的出现次数相同的区间有多少个. 分析 我们可以维护一个前缀和sum,遇到x时加1,遇到y减1. 那么对于区间[l,r],如果sum[r]-sum[l-1]=0,则这个区间合法. 我们可以用桶来求出\(<x,y>\)的合法区间个数. 于是我们\(O(N^3)\)预处理每一个\(<x,y>\): 但是这显然会超时. 因为只有有x和y时位置才是有用的…
题目描述 Description 有一个n个点A+B条边的无向连通图,有一变量x,每条边的权值都是一个关于x的简单多项式,其中有A条边的权值是k+x,另外B条边的权值是k-x,如果只保留权值形如k+x的边,那么这个图仍是一个连通图,如果只保留权值形如k-x的边,这个图也依然是一个连通图. 给出q组询问,每组询问给出x的值,问此时这个无向连通图的最小生成树权值是多少. Input 第一行四个数n,A,B和q 接下来A行,每行三个整数u,v,k,表示u和v之间有一条权值为k+x的无向边 接下来B行,…
题目 有一个n个点的无向图,给出m条边,每条边的信息形如\(<x,y,c,r>\) 给出q组询问形如\(<u,v,l,r>\) 接下来解释询问以及边的意义 询问表示,一开始你在点u上,然后按顺序处理编号从l到r的边 对于一条边\(<x,y,c,r>\),你可以进行两种操作: 如果你当前在x点或者y点上,那么你可以走这条边(从x到y或从y到x)并付出c的代价(当然你也可以不走,看操作2) 如果你不走这条边或者不可以走这条边(即你当前不在x或y上),那么你需要付出r的代价询…
题目 题目大意 给你\(X+Y+Z\)个三元组\((x_i,y_i,z_i)\). 然后选\(X\)个\(x_i\),选\(Y\)个\(y_i\),选\(Z\)个\(z_i\). 每个三元组只能选择其中一个. 问最大的和. 思考历程 想不到贪心-- 于是只能\(DP\)了-- \(DP\)就不用说了吧-- 正解 首先考虑\(X=0\)的情况: 按照\(z-y\)排个序,前面\(Z\)个选择\(z\),后面\(Y\)个选择\(y\). 这就是一个可撤销贪心的思路,可以看成先全部选\(y\),然后选…
题目 分析 假设答案为ans, 发现\[k=\sum_{i=1}^{min(n,k)}\lfloor \dfrac{ans}{i} \rfloor\] 于是可以对ans进行二分, 用分块来求出上面的式子.与k进行比较. #include <cmath> #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm…
题目 Y sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}. 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大. 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间. 你需要告诉她,最大的幻境值之和. 分析 题目要求求出最大的和,那显然就是找出最大的k个子串. 考虑怎么找出最大的k个子串. 我们求一次前缀和,扔进一个可持久化权值线段树上. 然后二分第k大的子串的值mid,枚举子串的开头,对于…
题目链接: http://172.16.0.132/senior/#main/show/4668 题目: 题解: 考虑把A数组里的每个元素分解质因数,对于每个质因数开一个vector存一下包含这个质因数的元素对应的这个质因数的指数 我们可以枚举质因数分别处理.为什么时间复杂度是对的呢?因为对于任何一个元素质因数种类是不会很多的,而对于每个质因数我们仅考虑包含它的数而不是全部扫一遍,因而是对的 枚举质因数之后,我们得到它对应的指数序列.对于小于等于根号1e7的质因数,考虑把这个指数序列从小到大,对…