- 博客(74)
- 收藏
- 关注
原创 【BZOJ 3560】DZY loves Math V
∑i1|a1∑i2|a2...∑in|anϕ(i1i2..in)\sum_{i_1|a_1}\sum_{i_2|a_2}...\sum_{i_n|a_n} \phi(i_1i_2..i_n) 设共有质因子tottot个,第ii个质因子在第jj个数中指数为kijk_ij则 ans=Πtoti=1∑ji1=0ki1∑ji2=0ki2...∑jin=0kinϕ(prime∑np=1jipi)ans=\
2015-11-25 15:36:11 1080
原创 10.26~11.23刷题(shui)记录
bzoj 4276:对收益排降序,贪心的进行二分图匹配,别问我为啥正确,我也不知道 http://paste.ubuntu.com/13489562/ bzoj 4152:最短路一定是通过分别按xx,yy坐标排序后相邻点之间距离最小和,跑一遍堆优化dijsktra即可 http://paste.ubuntu.com/13489573/ bzoj 1486:01分数规划,二分答案,问题等价于
2015-11-24 19:12:47 862
原创 10.14~10.25刷题(shui)记录
bzoj 2459:和堵塞的交通很像,也要考虑绕着区间走,但此题要求最短距离。 http://paste.ubuntu.com/12965212/ bzoj 3175:二分图,每个点向他能够攻击到的点连边,跑最大权闭合子图(总点数减去匹配数)。 http://paste.ubuntu.com/12965194/ bzoj 2462:机房有个人说全输出1就可以了,然后我试了试,结果A了。。。。
2015-10-26 08:04:53 794
原创 【SDOI 2015】【BZOJ 3994】约数个数和
送个结论d(n∗m)=∑d|n∑k|ne(gcd(d,k))d(n*m)=\sum_{d|n}\sum_{k|n} e(gcd(d,k)) 记g(n)=∑ni=1⌊ni⌋g(n)=\sum_{i=1}^{n} \lfloor{n \over i} \rfloor 然后我们开始推 ∑ni=1∑mj=1d(i∗j)=∑ni=1∑mj=1⌊ni⌋⌊mj⌋e(gcd(i,j))=∑ni=1∑mj=1⌊
2015-10-22 17:27:21 835
原创 区间相关值问题
这是一篇奇怪向的总结== 区间max,区间和。。。线段树直接搞 区间中位数,树套树或许可以但或许不优。。。 区间mex(无修改):首先[1,x],1≤x≤n[1,x],1 \le x \le n单调扫一遍即可, 同时处理出该位置上的数下一次出现位置,记为next[i]next[i] 然后我们对询问排序,考虑ii上数对后面数的影响,即为[i,next[i]−1][i,next[i]-1]上m
2015-10-22 17:18:34 709
原创 10.4~10.14刷题(shui)记录
可能要做几天先修课了,于是先放这些题解吧 bzoj 4291&&2435:水题两道,不说啥了 4291:http://paste.ubuntu.com/12778817/ 2435:http://paste.ubuntu.com/12778977/ bzoj 2424:费用流,我觉得题意有点问题,当天卖掉的物品,可以不经过仓库。连三种边,源点向每天连流量为infinf,花费为的did_i的边
2015-10-14 16:00:17 846
原创 9.13~9.30刷题(shui)题解
9.30蒟蒻有事没法来机房,提前写篇题解 bzoj 3064:十分麻烦的线段树,我不想多说啥了,直接上代码吧。 http://paste.ubuntu.com/12610859/ bzoj 1854:二分图,由每个点的两个权值向其连边,然后做二分图匹配,做到哪算哪 http://paste.ubuntu.com/12610888/ bzoj 2656:python题,据说递归会T,所以我膜
2015-09-29 20:41:46 916
原创 【JSOI 2008】【BZOJ 1017】魔兽地图DotR
蒟蒻不会做(话说DP是我死穴么,每逢DP必跪),于是膜拜了题解 f[i][j][k]f[i][j][k]表示对于ii及其子树花费kk,并且提供给ii的父亲jj个部件以合成的最高能量值。 1、对于叶子节点 f[i][j][k∗price[i]]=(k−l)∗price[i]f[i][j][k*price[i]]=(k-l)*price[i] 2、对于非叶子节点 穷举总合成次数,g[tot][
2015-09-28 19:50:40 823
原创 近期刷题题解
bzoj 2822 考虑最后一层放的方法,发现是Catlan数,python水过 http://paste.ubuntu.com/12394260/ bzoj 2427 强连通分量缩点+树形背包 http://paste.ubuntu.com/12394277/ bzoj 2438 强连通分量缩点后,发现只需要询问入度为0的点就可以得到答案,但如果新图中存在一个点,其在原图中代表的强连通分量
2015-09-13 17:41:14 971
原创 【BZOJ 2671】Calc
题目要求求出∑Na=1∑Nb=a+1[a+b|ab]\sum_{a=1}^{N}\sum_{b=a+1}^{N}[a+b|ab] 我们设d=gcd(a,b),a=nd,b=mdd=gcd(a,b),a=nd,b=md则转化为 [nd+md|nmd2]=[n+m|nmd][nd+md|nmd^2]=[n+m|nmd]又有n,mn,m互质,则显然有n+m|dn+m|d 原式可推为 ∑Nd=1∑⌊
2015-09-10 17:28:50 1025
原创 【BZOJ 3884】上帝与集合的正确用法
在2与模数pp互质的情况下,我们考虑超级幂,对指数模ϕ(p)\phi(p),那么我们发现这样是可以递归的,那如果pp不与2互质的话,我们可以提出公因子来,就可以转化为互质的情况了。 code:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int t;int p;
2015-09-03 21:06:42 724
原创 【BZOJ 4253】密码箱加强版
首先无视掉这题题面,您就全当机房的神犇在D蒟蒻我好了。 进入正题,首先这题的弱化版还是蛮好想的。设: n=pk11∗pk22∗...∗pknnn=p_1^{k_1}*p_2^{k_2}*...*p_n^{k_n} 对于x2=1(modn)x^2=1 (mod n),一定有 x2=1(modpk11)x^2=1 (mod p_1^{k_1}) x2=1(modpk22)x^2=1 (mod
2015-09-03 17:50:13 1363
原创 OI本月刷水记录
bzoj 1044 硬币购物 如果没有每个硬币的个数限制,这就是一个完全背包计数问题,现在我们注意到硬币个数很少,于是我们分别考虑一下每个硬币不符合条件的情况,容斥一下即可 bzoj 1225假如不考虑高精度的情况,那么转移还是好考虑的 f[i][j]f[i][j]表示前ii个质数有jj的约数最小数字 f[i][j]=minprime[i]k|jf[i−1][j/(k+1)]∗prime[i
2015-08-30 14:13:38 1254
原创 NOI 2015 滞后赛解题报告
报同步赛的时候出了些意外,于是只能做一做“滞后赛”了2333 DAY1 T1离线+离散化搞,对于相等的部分直接并查集,不等部分查看是否在同一并查集中即可,code:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int t,n;int father[20
2015-08-14 15:38:39 1478
原创 【BZOJ 2154】Crash的数字表格
我们定义sum(n,m)=∑ni=1∑mj=1i∗jsum(n,m)=\sum_{i=1}^{n}\sum_{j=1}^{m}i*j ∑ni=1∑mj=1lcm(i,j)=∑ni=1∑mj=1i∗jgcd(i,j)=∑min(n,m)d=1d∑⌊nd⌋i=1∑⌊md⌋j=1di∗djde(gcd(i,j))=∑min(n,m)d=1d∑⌊nd⌋i=1∑⌊md⌋j=1di∗djde(gcd(i,j)
2015-08-04 20:29:27 1344 1
原创 莫比乌斯反演学习笔记
莫比乌斯反演,之前做过一些题,一直没有太理解,膜了下faebdc学长的姿势,终于搞懂了一些。 首先我们有两个式子: 1:∑d|nϕ(d)=n\sum_{d|n} \phi(d)=n2:∑d|nμ(d)=e(n)\sum_{d|n} \mu(d)=e(n) 1式证明:对于nn的质因数xx对ϕ(n)\phi(n)贡献了(x−1)∗xt−1(x-1)*x^{t-1} 单独对于xx而言约数可以为x0
2015-08-04 20:07:04 1646 1
原创 【BZOJ 3679】数字之积
人生第一道数位DP,首先对于每位数的乘积,有一个很显然的转移方程 d[i][j]d[i][j]表示ii位数乘积为jj的方案数,则有 d[i][j]=∑1≤k≤9,k|jd[i−1][k/j]d[i][j]=\sum_{1 \le k \le 9,k|j} d[i-1][k/j] 然而我们发现j可能很大,但经过实验发现只有5000余个,于是我们可以吧第二维下标换成在数表中的排名,单个递推就可做了
2015-07-30 16:34:58 1853
原创 【SDOI 2013】【BZOJ 3130】费用流
这题的第一问是一个裸最大流,不多说了,关键在于第二问。首先有一个结论,Bob一定把费用加在一条边上,于是我们就可以二分每条边的流量,验证是否能得到最大流即可code:#include#include#include#define inf 0x7fffffffusing namespace std;int n,m,p,e,ei;int point[101],next[2001];
2015-07-29 16:55:24 911
原创 【BZOJ 1148】【CTSC 2008】挂缀【BZOJ 1 148】【CTSC 2008】挂缀
【BZOJ 1 148】【CTSC 2008】挂缀这题显然是个贪心,然而我们应该如何贪才能得到最优解= =。。。。假设我们按重量升序贪心,那我们可以得到反例(假设在挂缀底部):设有i,j,j且W_j那么当C_i时,应该选i而不是j假设我们按拉力升序贪心,依旧可以得到反例(假设在挂缀顶部,S为链以下重量和):设有i,j,j且C_j那么当C_i时,应该先选i当第二高的,而非链顶
2015-07-28 19:57:52 1062
原创 【BZOJ 1146】【CTSC 2008】网络管理network
一句话题意,树链上带修改区间第k大 感觉可以dfs+主席树O(nlog2n)O(n\log^2n)过掉,但我不会写= = 于是写的线段树套平衡树+链剖+二分(修改O(nlog3n)O(n\log^3n),查询O(nlog4n)O(n\log^4n)慢了好多啊QAQ) 这里简单介绍一下区间第K大做法,对于每个线段树所”管辖“的范围,建一棵相应范围内的平衡树(我用的Treap);修改时,修改
2015-07-27 17:04:32 1013
原创 后缀数组学习笔记
后缀数组是一个处理字符串的有力工具,基本用途有模式串匹配和后缀最长公共前缀;例题 【JSOI 2007】【BZOJ 1031】字符加密ciper 后缀数组的躶体,现将字符串复制成环,然后输出sa[i]<lensa[i] \lt len的s[sa[i]−1]s[sa[i]-1]即可,code:#include<iostream>#include<cstdio>#include<cstrin
2015-07-25 16:53:21 786
原创 【NOI 2010】能量采集&&超级钢琴
其实这两个题一点关系都没有,同一天做的,写在一起= = 能量采集 ans=∑x=1n∑y=1m2∗gcd(x,y)+1ans=\sum_{x=1}^{n}\sum_{y=1}^{m} 2*gcd(x,y)+1 ∑x=1n∑y=1m[d|gcd(x,y)]=⌊nd⌋∗⌊md⌋\sum_{x=1}^{n}\sum_{y=1}^{m}[d|gcd(x,y)]=\lfloor \frac {n}{d}
2015-07-11 17:03:36 988
原创 【BZOJ 2818】Gcd
这题一开始我竟然想要用与能量采集差不多的思路去做= =(no zuo no die,why you try?) 有个显然的转化 ∑nx=1∑ny=1[gcd(x,y)==P]=∑⌊n/P⌋x=1∑⌊n/P⌋y=1[gcd(x,y)==1]=2∗∑⌊n/P⌋i=2ϕ(i)+1\sum_{x=1}^{n}\sum_{y=1}^{n} [gcd(x,y)==P]= \sum_{x=1}^{\lfl
2015-07-11 16:48:57 848
原创 【SHOI 2008】【BZOJ 1018】堵塞的交通traffic
发现很多有关区间联通问题的题线段树都可以做,不论是1列还是2列。这题的易错点在于两个端点x,yx,y之间的可行路径不一定在区间[x,y][x,y]之间,有可能是从其他区间绕过来的,想明白这一点,区间的更新又与1列的情况基本类似,这题就很好做了。 code:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm
2015-07-11 16:38:11 1675
原创 【JSOI 2008】【BZOJ 1014】火星人prefix
这题其实很奇怪,一眼看出fhq treap+字符串hash。。。 结果在BZOJ被卡常了,结果学长告诉我了一些优化,有些自己还不会写,只写了inline和吧unsigned long long改为unsigned int。。。 结果时间少了一半,谁能告诉我为什么。。。#include<iostream>#include<cstdio>#include<cstring>#include<cs
2015-07-04 21:56:28 946
原创 【BZOJ 4128】 matrix
题目其实很简单,BSGS可以一眼看出来,但这就需要矩阵求逆,然而我并不会。。。 于是发现了一种BSGS的非求逆方法,借此介绍一下。 aix−y=b(modP)a^{ix-y}=b (mod P) 推出 aix=b∗ay(modP)a^{ix}=b*a^y(mod P) 因此我们只需要对每个b∗ayb*a^yhash一下就好了,然后穷举ii,验证是否存在即可。code:#include<cst
2015-07-01 20:45:30 1145
原创 树上点分治学习记录
跟着机房的潮流学了点分治,发现这个东西其实还蛮好写的,学会思想,很容易YY出来。直接上习题。 POJ 1741 TREE 点分治的模板题,首先设点xx到当前子树跟rootroot的距离为gxg_x,则满足gx+gy≤kg_x+g_y \le k可以加进答案,但是注意如果x,yx,y在同一棵子树中,就要删去对答案的贡献,以为x,yx,y会在其所在的子树中在计算一次。注意无根树转有根树的过程,需要选
2015-06-17 19:23:27 997
原创 【JSOI 2008】【BZOJ 1016】最小生成数计数
这题题目中有一个很显眼的提示,每种权值的边不会超过10条,这提示我们可以采用些暴力方法。 首先在每个最小生成树中有两个结论: 1、每种权值的边数相等。 2、每种权值所选边构建后图的联通形态相同。 1比较好理解,若1不成立,则最小生成树总权值不固定。 2可以通过Kruskal算法流程来理解。 code:#include<iostream>#include<cstdio>#include
2015-06-05 21:41:18 922
原创 【HAOI 2007】【BZOJ 1053】反素数ant
虽然这题很水,但蒟蒻还是想了很久。 首先由一个很显然的结论,这题只会用到10个质数。一个感性的证明: 设有一数x=pk11+pk22+...+pkmmx=p_1^{k_1}+p_2^{k_2}+...+p_m^{k_m} 那么我们现在要给xx乘上一个质数,使它的约数数目最多且相对较小。 显然我们我们要乘第1≤i≤m+11\le i \le m+1 个质数,如果乘再靠后的质数,显然不如乘第m+
2015-06-03 18:53:32 808
原创 数论学习笔记
素数:#include<iostream>#include<cstdio>#include<cstring>using namespace std;int p[10000000],a[100000001];int main(){ int i,t=0,j,n; scanf("%d",&n); a[1]=1; for (i=2;i<=n;++i)
2015-05-28 14:18:08 3064 8
原创 翔特卡洛和解题报告
题目 : 定义:Ai=(1023imod109)xor(1025imod109)A_i=(1023^i \mod 10^9) xor (1025^i \mod 10^9) 求 : Sum=∑i=l1r1∑i=max(i,l2)r2maxk=ijA[k]−mink=ijA[k]Sum=\sum_{i=l_1}^{r_1} \sum_{i=max(i,l_2)}^{r_2} \max_{k=i}^
2015-05-25 21:21:10 945
原创 【BZOJ 1010】【HNOI 2008】玩具装箱 toy
借着这个题学习了一下dp的斜率优化,感觉这东西好神啊。。。 先说一下裸的O(n2n^2)dp吧: s[i]=∑i=1ic[i]s[i]=\sum_{i=1}^{i} c[i] 显然我们有 f[i]=mink=0i−1f[k]+(s[i]−s[k]−L)2f[i]=\min_{k=0}^{i-1} f[k]+(s[i]-s[k]-L)^2 然而这个转移是O(n2n^2) 的,在n=5000
2015-05-25 20:55:37 906
原创 【BZOJ 1001】【Beijing 2006】狼抓兔子
看到这题,是个OIer应该都能想到最小割,然后条件反射写最大流,然后敲ISAP,Dinic,.......然后TLE掉了= = = =本蒟蒻就是这样,然后去ym了各种题解,最后发现这是一个特殊的最大流模型,可以转化为最短路。现在讲一下详细建图方法。详见《两极相通—浅析最大最小定理在信息学竞赛中的应用》by 周冬显然这个图是一个平面图,并且s,t在两个没有边界的平面上,这样的图称为s
2015-05-24 18:47:59 779
原创 省选总结
SDOI 2014是我第一次参加省队选拔,虽然结果不尽人意,但是却从中获得了许多经验。1、 拿到自己要拿到的分。省选两试,除去ROUND 1 DAY 1,没有一次拿到了自己所写的分数,在考场上总是觉得自己写的一定对,但看到分数后却总是想到自己的很多漏洞,这就要求我在平时做题时要思维缜密,考虑周全所有的情况,不能WA了以后按着数据调程序,平常在OJ上做题要尽量一边AC。2、 多做
2015-05-18 19:09:32 925
原创 【codevs 3304~3306】水果姐逛水果街系列
这题的坑开了很久了,3305大概是在NOIP之前学线段树的时候AC的,3306也是当时学完LCA后不断提交不断WA,当时基本已弃坑。。。最近学了树链剖分之后似乎觉得这俩题可做,于是搞了一个晚上,终于搞完了(蒟蒻就是蒟蒻)。。。。。。3305 这个题是链上的裸线段树,分类讨论比较蛋疼,code:#include#include#includeusing namespace std;s
2015-05-14 21:44:27 1611
原创 【BZOJ 3083】遥远的国度
BZOJ 3083 遥远的国度这题的与 HAOI 2015T2 的不同点在于其有换根操作,但按照普通的思路我们可以发现,换根之后树的形态会有改变,每个节点的子树会发生改变,所以我们来分类讨论。修改链的操作不会发生改变,现在只考虑子树minn。为了方便,我们定义现在的换的“根节点”为root(但实际上树的根节点为1),子树根为x,黑圈标明查询范围;情况一 x=root,很显然此时应当
2015-05-14 11:13:59 2796 1
原创 树链剖分学习笔记
暂时搞完一系列字符串算法之后,开始了树链剖分算法的学习。树链剖分算法,说白了就是一种特殊的DFS序(通过把节点分为重节点和轻节点来保证线段树的时间复杂度)然后在线段树上乱搞。题目分为点权和边权两类,点权好理解一些,边权可以转化为边在树中指向节点的权值。网上博客挺多的,不一一赘述了。上习题。ZJOI 2008 BZOJ 1036 COGS 1688 树的统计Count点权的模板题,c
2015-05-13 20:27:16 732
原创 AC自动机学习记录
学完了Trie树和KMP算法,我们就可以继续学习AC自动机了。。。AC自动机,全名Aho-Chorasick string match(不是所有题都可以AC的意思= =,否则OI比赛还有什么意义),由于多模板的字符串匹配,其基本做法是在Trie树上建立fail指针(基本相当于KMP算法中next数组),然后在Trie上进行KMP即可,不多说了,直接上习题。COGS 1913 AC自动机的裸
2015-04-29 19:44:18 795
原创 KMP算法学习笔记
KMP是一种字符串匹配算法,网上有许多的讲解和介绍,都非常清楚明白,这里只说明一点next[i]表示[1,i-1]位中的最长公共前缀后缀,因此在遇到字符不匹配时,直接将字符串右移j-next[j]位即可。不多说了,直接上习题POJ 3461 Oulipo KMP算法裸题,直接上模板 code:#include#include#includeusing namespace std;cha
2015-04-25 16:54:24 723
原创 Trie树模板
#include#include#includeusing namespace std;struct trie_node{ char letter; int sum; bool f; trie_node *next[26]; trie_node(char letter): letter(letter) {int i;for (i=0;i<=25;++i) next[i]=NULL;
2015-04-22 19:50:06 619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人