09 2015 档案

摘要:对于第x个数, 下一轮它会到位置p.当xN/2, p = x*2%(N+1)所以p = x*2%(N+1)设一开始的位置为t, 那么t*2M%(N+1)=L, 只需把2M除过来, 即L乘上2M的乘法逆元即为答案.--------------------------------------------... 阅读全文
posted @ 2015-09-30 21:23 JSZX11556 阅读(280) 评论(0) 推荐(0) 编辑
摘要:题意保证了是一个置换群.根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i,j,k) = dp(x,i-cntx,j,k)+dp(x,i,j-cntx,k)+dp(x,i,j,k... 阅读全文
posted @ 2015-09-27 18:51 JSZX11556 阅读(231) 评论(0) 推荐(0) 编辑
摘要:弦图最小染色...先用MCS求出完美消除序列然后再暴力染色...-------------------------------------------------------------------------------------#includeusing namespace std;const... 阅读全文
posted @ 2015-09-27 12:13 JSZX11556 阅读(235) 评论(0) 推荐(0) 编辑
摘要:dp(i,j)表示1~i的排列中, 以1~j为开头且开头是下降的合法方案数这种数列具有对称性, 即对于一个满足题意且开头是上升的n的排列{an}, 令bn = n-an+1, 那么{bn}就是一个满足题意且开头是下降的序列dp(i,j) = dp(i,j-1) + dp(i-1,i-j+1). 前一... 阅读全文
posted @ 2015-09-27 10:43 JSZX11556 阅读(425) 评论(0) 推荐(0) 编辑
摘要:第一场BC...感觉还是多参加点比赛吧...第一题水题各种乱搞就可以过第二题依旧水题..记个前缀和就行了..虽说是2道水题..然而我T1提交时就过了20min, T2还RE了一发..第二次提交就已经48min了...然后rank就被甩了几条街..第三题感觉直接考虑每个区间的贡献应该可以..然后再减掉... 阅读全文
posted @ 2015-09-26 21:39 JSZX11556 阅读(354) 评论(12) 推荐(0) 编辑
摘要:按题意用priority_queue模拟即可----------------------------------------------------------------------#includeusing namespace std;const int maxn = 1009;const in... 阅读全文
posted @ 2015-09-26 16:33 JSZX11556 阅读(389) 评论(0) 推荐(0) 编辑
摘要:dp(i,j)表示1~i的全部排列中逆序对数为j的个数.从1~i-1的全部排列中加入i, 那么可以产生的逆序对数为0~i-1, 所以dp(i,j) = Σ dp(i-1,k) (j-i+1 ≤ k ≤ j) 用前缀和优化就可以做到O(N2)了-----------------------------... 阅读全文
posted @ 2015-09-26 15:19 JSZX11556 阅读(299) 评论(1) 推荐(0) 编辑
摘要:S->每个奇数,每个偶数->T各连一条边, 容量为这个数字.然后不能同时选的两个数连容量为+oo的边. 总数-最大流即是答案.因为满足a2+b2=c2的a,b一定是一奇一偶或者两个偶数, 2偶不满足gcd=1, 所以两个数不能同时选一定是一奇一偶.--------------------------... 阅读全文
posted @ 2015-09-25 14:38 JSZX11556 阅读(255) 评论(0) 推荐(0) 编辑
摘要:按A从小到大排序然后用栈解决.--------------------------------------------------------------------#includeusing namespace std;typedef long long ll;const int maxn = 5... 阅读全文
posted @ 2015-09-23 18:47 JSZX11556 阅读(326) 评论(0) 推荐(0) 编辑
摘要:可并堆水题---------------------------------------------------------#includeusing namespace std;const int maxn = 1000009;struct Node { Node *l, *r, *ch; int... 阅读全文
posted @ 2015-09-20 11:15 JSZX11556 阅读(544) 评论(7) 推荐(0) 编辑
摘要:简单的dp..dp(i,j) = max(dp(x,y))+cnt[i][j], (x,y)->(i,j)是合法路径.设f(i)= max(dp(x,y))(1≤x≤N,1≤y≤i), g(i,j) = max(dp(i, k))(1≤k≤j)那么dp(i,j) = max(f(j+delta), ... 阅读全文
posted @ 2015-09-17 21:34 JSZX11556 阅读(434) 评论(0) 推荐(0) 编辑
摘要:没什么好说的...---------------------------------------------------------------------#include#include#includeusing namespace std;typedef long long ll;int MOD... 阅读全文
posted @ 2015-09-17 20:54 JSZX11556 阅读(232) 评论(0) 推荐(0) 编辑
摘要:显然是最小割...把狼的领地连S, 羊的领地连T, 然后中间再连边, 跑最大流就OK了--------------------------------------------------------------------------#include#include#includeusing nam... 阅读全文
posted @ 2015-09-15 22:01 JSZX11556 阅读(347) 评论(0) 推荐(0) 编辑
摘要:sum为战斗力的前缀和dp(x) = max( dp(p)+A*(sumx-sump)2+B*(sumx-sump)+C )(0≤pusing namespace std;typedef long long ll;const int maxn = 1000009;int N, A, B, C, Q[... 阅读全文
posted @ 2015-09-15 21:00 JSZX11556 阅读(332) 评论(0) 推荐(0) 编辑
摘要:做一次MST, 枚举不在最小生成树上的每一条边(u,v), 然后加上这条边, 删掉(u,v)上的最大边(或严格次大边), 更新答案.树链剖分然后ST维护最大值和严格次大值..倍增也是可以的...-----------------------------------------------------... 阅读全文
posted @ 2015-09-15 14:28 JSZX11556 阅读(260) 评论(0) 推荐(0) 编辑
摘要:第i个填到第i+1个的期望得分显然是1/max(a[i],a[i+1]).根据期望的线性性, 我们只需将每个选项的期望值累加即可.---------------------------------------------------------------------------#includeus... 阅读全文
posted @ 2015-09-13 11:34 JSZX11556 阅读(250) 评论(0) 推荐(0) 编辑
摘要:之前一直没调出来T^T...早上刷牙时无意中就想出错在哪里了...对全部单词建AC自动机, 然后在自动机上跑dp, dp(i, j)表示匹配到了第i个字符, 在自动机上的j结点的方案数, 然后枚举A~Z进行转移.--------------------------------------------... 阅读全文
posted @ 2015-09-13 09:03 JSZX11556 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-09-12 23:05 JSZX11556 阅读(144) 评论(0) 推荐(0) 编辑
摘要:数据范围是N:20w, K100w. 点分治, 我们只需考虑经过当前树根的方案. K最大只有100w, 直接开个数组CNT[x]表示与当前树根距离为x的最少边数, 然后就可以对根的子树依次dfs并更新CNT数组和答案. 复杂度是O(NlogN)----------------------------... 阅读全文
posted @ 2015-09-12 22:59 JSZX11556 阅读(317) 评论(0) 推荐(0) 编辑
摘要:sa后求出height数组, 答案显然是∑RMQ(height[l],height[r])(1≤l#include#include#includeusing namespace std;typedef long long ll;#define b(i) (1 sta;void build() { ... 阅读全文
posted @ 2015-09-10 21:42 JSZX11556 阅读(248) 评论(3) 推荐(0) 编辑
摘要:dp..dp(i, j)表示画两个点为i-j, i的最优答案. dp(i, j) = min{ dp(i-j, k) } + cost[i] (1≤k≤M-j)令f(i, j) = min{dp(i, j)}, 那么转移时间下降为O(1).然后滚动数组..这道题卡空间..时间复杂度O(NM)----... 阅读全文
posted @ 2015-09-10 14:04 JSZX11556 阅读(452) 评论(0) 推荐(0) 编辑
摘要:刷刷水题...前缀和的前缀和...显然树状数组可以写...然而我不会, 只能写线段树了把改变成加, 然后线段树维护前缀和, 某点p加, 会影响前缀和pre(x)(p≤x≤n), 对[p, n]这段区间加即可, 然后query就求[1, p]的和即可--------------------------... 阅读全文
posted @ 2015-09-08 21:51 JSZX11556 阅读(385) 评论(0) 推荐(0) 编辑
摘要:之前以为xor,or,and满足结合律...然后连样例都过不了早上上体育课的时候突然想出来了...直接处理每一位是1,0的最后结果, 然后从高位到低位贪心就可以了...滚去吃饭了..-----------------------------------------------------------... 阅读全文
posted @ 2015-09-05 13:03 JSZX11556 阅读(309) 评论(0) 推荐(0) 编辑
摘要:先跑网络流, 然后在残余网络tarjan缩点.考虑一条边(u,v):当且仅当scc[u] != scc[v], (u,v)可能出现在最小割中...然而我并不会证明当且仅当scc[u] = scc[S] && scc[v] == scc[T], (u, v) 必定出现在最小割中. 这个很好脑补, 假如... 阅读全文
posted @ 2015-09-05 12:35 JSZX11556 阅读(276) 评论(0) 推荐(0) 编辑
摘要:既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减dp(v) = min{ dp(p)+xv*yp+1 }假设dp(v)由i转移比由j转移优(i>j), 那么dp(i)+xv*yi+1 -xv然后就斜率优化, 单调队列维护一个... 阅读全文
posted @ 2015-09-04 14:45 JSZX11556 阅读(284) 评论(0) 推荐(0) 编辑
摘要:dp(i, j, k)表示共i位, 最高位是j, 数字k出现次数. 预处理出来.差分答案, 对于0~x的答案, 从低位到高位进行讨论------------------------------------------------------------------------------#inclu... 阅读全文
posted @ 2015-09-04 11:45 JSZX11556 阅读(344) 评论(0) 推荐(0) 编辑
摘要:dp(v) = min(dp(p)+cost(p,v))+C(v)设sum(v) = ∑pi(1≤i≤v), cnt(v) = ∑pi*xi(1≤i≤v), 则cost(p,v) = x(v)*(sum(v)-sum(p)) - (cnt(v)-cnt(p))假设dp(v)由dp(i)转移比dp(j... 阅读全文
posted @ 2015-09-04 00:01 JSZX11556 阅读(246) 评论(0) 推荐(0) 编辑
摘要:dp..dp(x, t) 表示共x位, 第x位为t有多少个windy数.对答案差分, 我们只需统计1 ~ l-1和1 ~ r的windy数数量.考虑如何计算[1, n]的答案 : 从最高位到最低位依次计算, 假设n的最高位x的数为t, 那么dp(x, 0 ~ t-1)对答案都有贡献, 然后假设最高位... 阅读全文
posted @ 2015-09-03 16:54 JSZX11556 阅读(222) 评论(0) 推荐(0) 编辑
摘要:莫队..用两个树状数组计算.时间复杂度应该是O(N1.5logN). 估计我是写残了...跑得很慢...-------------------------------------------------------------------------#includeusing namespace s... 阅读全文
posted @ 2015-09-03 14:32 JSZX11556 阅读(266) 评论(0) 推荐(0) 编辑
摘要:暑假就这么过去了...这个暑假好像没学什么...刚放假就在刷题, 然后就学了点数论(欧拉函数, 莫比乌斯函数/反演)...然后八月集训也没弄什么..参加了几场比赛..写了写我不擅长的字符串(后缀数组, kmp), 哈希大法好!CF, BC的比赛都是没有部分分的..我又太弱了, 不太想参加..而且CF... 阅读全文
posted @ 2015-09-03 12:25 JSZX11556 阅读(201) 评论(1) 推荐(0) 编辑
摘要:yy一下发现好像越小越好...分解成3*3*3*3……这种形式是最好的...然后就是高精度了---------------------------------------------------------------------------------#includeusing namespace... 阅读全文
posted @ 2015-09-03 11:40 JSZX11556 阅读(191) 评论(0) 推荐(0) 编辑
摘要:水题, 求MST即可.--------------------------------------------------------------------------------#includeusing namespace std;#define sqr(x) ((x) * (x))const... 阅读全文
posted @ 2015-09-02 23:15 JSZX11556 阅读(220) 评论(0) 推荐(0) 编辑
摘要:匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案.----------------------------------------------------------------------------#includeusing namespace std;const int ... 阅读全文
posted @ 2015-09-02 21:40 JSZX11556 阅读(296) 评论(0) 推荐(0) 编辑
摘要:莫队..先按sqrt(n)分块, 然后按块的顺序对询问排序, 同块就按右端点排序. 然后就按排序后的顺序暴力求解即可. 时间复杂度O(n1.5)------------------------------------------------------------------------------... 阅读全文
posted @ 2015-09-02 19:30 JSZX11556 阅读(245) 评论(1) 推荐(0) 编辑
摘要:字符串哈希. 暴力枚举每一位, 弄出哈希值, 排序统计. 时间复杂度O(L N logN)---------------------------------------------------------------------------------------#include#include#i... 阅读全文
posted @ 2015-09-02 15:07 JSZX11556 阅读(228) 评论(0) 推荐(0) 编辑
摘要:∑lcm(i,n) = ∑ i*n/(i,n) = ∑d|n∑(x,n)=d x*n/d = ∑d|n∑(t,n/d)=1t*n = n∑d|nf(d). f(d)表示1~d中与d互质的数的和, 即f(d) = d*φ(d)/2(d>=2). 然后O(n)筛φ, 每次询问暴力算即可...最大是100... 阅读全文
posted @ 2015-09-01 19:56 JSZX11556 阅读(534) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示