上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 38 下一页
摘要: 注意到f(n)不会超过1459,于是暴力枚举f(n),检验n=k*f(n)是否合法即可。#includelong long k,a,b,t;int i,j,ans;int main(){ scanf("%lld%lld%lld",&k,&a,&b); for(i=1;i<=1459&&k<=b/... 阅读全文
posted @ 2015-09-30 19:25 Claris 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 不管怎么修改,所有数字的排名都不会发生变化。将a[]从小到大排序之后,维护一棵线段树,在上面修改。对于收割操作,在线段树上二分,找到需要修改的后缀进行区间赋值即可。时间复杂度$O(m\log n)$。#include#include#define N 1050000typedef long long... 阅读全文
posted @ 2015-09-30 19:25 Claris 阅读(788) 评论(0) 推荐(0) 编辑
摘要: 线段树每个区间维护上下界以及要整体增加的标记即可,时间复杂度$O(m\log n)$。#include#define inf 1500000000int n,m,op,c,d,p;struct Node{int l,r,t;}T[1050000];inline void read(int&a){ ... 阅读全文
posted @ 2015-09-30 15:54 Claris 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 假设分成如下三段:[1..i][i+1..j][j+1..n]考虑中间那一段,设f[i]为前i位组成的数模q的值,pow[i]为$10^i$模q的值,那么有:f[j]-f[i]*pow[j-i]=0f[j]*pow[i]=f[i]*pow[j]f[j]*inv(pow[j])=f[i]*inv(po... 阅读全文
posted @ 2015-09-30 15:53 Claris 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 首先在串的末尾加上1000,然后进行归并,每次取字典序较小的那个后缀即可。用hash+二分支持查询lcp,时间复杂度$O(n\log n)$。#includetypedef long long ll;const int N=200010,P=31,D=1000173169;int n,m,i,j,k... 阅读全文
posted @ 2015-09-30 15:53 Claris 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 建立线段树,S向每个叶子连边,容量1,费用0。孩子向父亲连边,容量inf,费用0。每个强盗向T连边,容量1,费用为c[i]。对应区间内的点向每个强盗,容量1,费用0。求最大费用流即可。#includeconst int inf=~0U>>2,N=15010,M=1000000;int n,i,A,B... 阅读全文
posted @ 2015-09-30 15:52 Claris 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 设f[i][j]为a[1..i]与b[1..j]的LCS,g[i][j]为a[i..n]与b[j..m]的LCS。若C为0,则ans=f[n][m]。否则求出d[i]=a中从i开始往右匹配上c串的位置以及e[i]=b中从i开始往右匹配上c串的位置。则ans=max(f[i-1][j-1]+g[d[i... 阅读全文
posted @ 2015-09-30 15:51 Claris 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 把时间看成第一维,编号看成第二维,则每个询问等价于询问某个矩形范围内与某个数异或的最大值。从高位到低位贪心,考虑离线分治,假设当前处理第k位,那么把所有点以及按这一位分成两类,分别扫描线+树状数组维护即可。时间复杂度$O(n\log^2n)$。#include#include#define N 20... 阅读全文
posted @ 2015-09-29 22:44 Claris 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 首先将所有显然不在最优解中的外卖都删去,那么剩下的外卖价格越低,保质期也最短。考虑三分订外卖的次数,然后贪心求解,每次尽量平均的时候可以做到最优化。三分的时候,以存活天数为第一关键字,剩余钱数为第二关键字,就能使函数严格上凸,这样才可以保证三分的正确性。时间复杂度$O(n\log m)$。#incl... 阅读全文
posted @ 2015-09-29 01:31 Claris 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 首先将所有高度乘上10,设f[i]为将前i本书放入书架的最小高度,则\[\begin{eqnarray*}f[i]&=&\min(f[j-1]+first(j,i)+second(j,i)+W-(s[i]-s[j-1]))\\ &=&\min(f[j-1]+first(j,i)+second(... 阅读全文
posted @ 2015-09-22 22:37 Claris 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 对每个点维护一个bitset,记录哪些点可以攻击它。可以通过kd-tree+标记永久化实现。对于一个阵营,它在m轮之后防御系统全部完好的概率为$(1-\frac{攻击它的点数}{n})^m$。时间复杂度$O(n\sqrt{n}+\frac{nk}{32})$。#include#include#inc... 阅读全文
posted @ 2015-09-22 18:47 Claris 阅读(509) 评论(2) 推荐(0) 编辑
摘要: 最大值和最小值的问题是独立且相似的,考虑最大值:考虑离线,设ask(i,l,r)为以1到i为右端点时左端点在区间[l,r]内的区间最大值的和。从1到n枚举右端点,假设现在是i,那么可以通过单调栈求出最小的j使得[j,i]内a[i]是最大值。然后左端点在[j,i]区间内的所有区间最大值都应当变为a[i... 阅读全文
posted @ 2015-09-20 23:59 Claris 阅读(1594) 评论(0) 推荐(1) 编辑
摘要: 若x与y可能成为好*友,那么它们连出去的点除了x和y之外都相同。于是给每个点一个long long的随机权值,然后每个点的hash值为与其相连的点的权值的异或和,若两个点hash值相等,则可行。给每个点的hash值异或上自己本身的权值再求一次即可得到正确答案。时间复杂度$O(n\log n)$。#i... 阅读全文
posted @ 2015-09-20 22:07 Claris 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 令d[i]为第i个样本数据,cnt为样本个数,经过化简可得\[ans=\frac{\sum(d[i]^2)}{cnt}-(\frac{\sum d[i]}{cnt})^2\]枚举每一种可能的三核苷酸,得到它出现的各个位置,假设当前出现了tot个,第i个的编号为a[i],经过化简可得\[cnt+=C_... 阅读全文
posted @ 2015-09-17 23:02 Claris 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 取一棵生成森林,根据题目限制可得,与一个点相连的多余的边数是$O(\sqrt{m})$级别的。对于树边,每个点维护3棵权值线段树,依次保存它的儿子里各个集合的边。再开3*3个分块数组,记录多余边以及树边每种权值的出现次数,修改时暴力修改多余边,时间复杂度$O(q\sqrt{m})$。#include... 阅读全文
posted @ 2015-09-17 00:05 Claris 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 假设字符串是从第0位开始的,那么对于两个长度都为n的字符串A,B,定义距离函数\[dis(A,B)=\sum_{i=0}^{n-1}(A[i]-B[i])^2[A[i]!='*'][B[i]!='*']\]若把*号都设置为0,那么有\[dis(A,B)=\sum_{i=0}^{n-1}(A[i]-B... 阅读全文
posted @ 2015-09-16 21:00 Claris 阅读(1890) 评论(0) 推荐(1) 编辑
摘要: 首先对于每个位置,求出它开始长度为y的横行的hash值,然后对于hash值再求一次竖列的hash值,排序后求出众数即可。时间复杂度$O(n^2\log n)$。#include#include#define N 1010typedef unsigned long long ll;const ll D... 阅读全文
posted @ 2015-09-15 20:52 Claris 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 设$s[i]$为进行$i$次加密后所有奶牛数字的和,有$s[i]=(n-1)s[i-1]$。设$c[i]$为某头固定的奶牛进行$i$次加密后的数字,若$i$为奇数,有:\[c[i]=((1-n)^0+(1-n)^1+...+(1-n)^{T-1})s-c[0]=\frac{(1-(1-n)^T)s}... 阅读全文
posted @ 2015-09-14 00:46 Claris 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 因为两棵树中间只有k条边,所以这些边一定要用到。对于每棵树分别考虑:如果一个点往下连着两个点,那么这个点往上的那条边一定不能用到。如果一个点往下连着一个点,那么这个点往上的那条边一定不能用到。否则一定无解。这样求出所有一定要用到的边后,如果不存在奇点且这个图是个连通图的话,那么就有解。时间复杂度$O... 阅读全文
posted @ 2015-09-13 19:15 Claris 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 考虑计算LCS的DP过程,设f[i][j]表示T串的前i项与S串的前j项的LCS,则若T[i]==S[j],则f[i][j]=f[i-1][j-1]+1否则f[i][j]=max(f[i-1][j],f[i][j-1])对于固定的i,f[i][j]只可能为f[i][j-1]或f[i][j-1]+1,... 阅读全文
posted @ 2015-09-10 22:45 Claris 阅读(819) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 38 下一页