03 2016 档案
bzoj 3489: A simple rmq problem
摘要:用KDtree解决序列问题。三维,一维上一个,一维这个,一维下一个。
阅读全文
bzoj 3211: 花神游历各国
摘要:线段树每次开根号,如果他的所有叶节点都是1,就不用再开了。
阅读全文
bzoj 3196: Tyvj 1730 二逼平衡树
摘要:却是是二逼平衡树。
阅读全文
bzoj 3171: [Tjoi2013]循环格
摘要:循环格出入度都等于1,与一开始方向不同的加上费用,跑费用流,
阅读全文
bzoj 3170: [Tjoi 2013]松鼠聚会
摘要:这个题让我学会了切比雪夫距离。
阅读全文
bzoj 3131: [Sdoi2013]淘金
摘要:DP求出转移到x坐标的数目。各位数乘积的实际数目少。
阅读全文
bzoj 3130: [Sdoi2013]费用流
摘要:贪心 BOB肯定全加在最大权值的边上,二分权值网络流。
阅读全文
bzoj 3124: [Sdoi2013]直径
摘要:先找一条直径,把直径上的边的权值减去1,再找一遍直径,差便是答案。
阅读全文
bzoj 3122: [Sdoi2013]随机数生成器
摘要:当 a==0时,判断b,当a==1时,exgcd否则BSGS
阅读全文
bzoj 2879: [Noi2012]美食节
摘要:同修车,不过要动态加点。
阅读全文
bzoj 2878: [Noi2012]迷失游乐园
摘要:基环树DP,先处理环外的子树,在递归处理环上的点。
阅读全文
bzoj 2809: [Apio2012]dispatching
摘要:斜堆 合并
阅读全文
bzoj 2768: [JLOI2010]冠军调查
摘要:最小割 同善意的投票。
阅读全文
bzoj 2744: [HEOI2012]朋友圈
摘要:由题A国只能取两个,一奇一偶。求最大团,最大团=补图最大独立子集。B国补图是一个二分图。枚举A国的点,在B国上跑最大独立子集=节点数-最大匹配数。
阅读全文
bzoj 2730: [HNOI2012]矿场搭建
摘要:先用tarjin找割点 割点条件u1是树根,且有大于1棵子树,u1不是树根,low[u[i]]>dfn[u1],把和一个割点相连的联通块建出口。
阅读全文
bzoj 2705: [SDOI2012]Longge的问题
摘要:题目中要求出∑gcd(i,N)(1<=i<=N)。 枚举n的约数k,令s(k)为满足gcd(m,n)=k,(1<=m<=n)m的个数,则ans=sigma(k*s(k)) (k为n的约数) 因为gcd(m,n)=k,所以gcd(m/k,n/k)=1,于是s(k)=euler(n/k) phi可以在根
阅读全文
bzoj 2661: [BeiJing wc2012]连连看
摘要:网络流如果满足条件,x向y‘连费用为z的边,y向x’连费用为z的边,最后除2便是答案。
阅读全文
bzoj 2654: tree
摘要:二分,给白色边加上的权值,看最小生成树中有多少白色的边。
阅读全文
bzoj 2561: 最小生成树
摘要:两遍网络流,把比他小的边建起来,最大流就是要删的边数,最大生成树同理。
阅读全文
bzoj 2456: mode
摘要:非常神奇的做法,把不同的数互相抵消,剩下的便是众数。
阅读全文
bzoj 2440: [中山市选2011]完全平方数
摘要:根据容斥原理,0个质数(1)的倍数的平方的个数-1个+2个-3个,发现每个数的贡献是莫比乌斯函数。
阅读全文
bzoj 2434: [Noi2011]阿狸的打字机
摘要:AC自动机 根据dfs序建立fail树(就是将失败指针反向),每次查询x子树中有多少y的节点。
阅读全文
bzoj 2330: [SCOI2011]糖果
摘要:差分约束系统,根据条件建边跑最短路。
阅读全文
bzoj 2326: [HNOI2011]数学作业
摘要:这是个矩阵乘法 对相同的位数构建一个矩阵。
阅读全文
bzoj 2324: [ZJOI2011]营救皮卡丘
摘要:先预处理出所有点之间的最短距离,开一个附加源S1,S到S1连一个容量为k的边,拆点S1到每个i2连容量1费用d[0][i],每个i2向T连边,每个i1向比他大的j2建边。费用流。
阅读全文
bzoj 2301: [HAOI2011]Problem b
摘要:莫比乌斯反演
阅读全文
bzoj 2286: [Sdoi2011消耗战
摘要:显然想到DP,然而DP超时,这个题是构建虚树,然后DP。
阅读全文
bzoj 2282: [Sdoi2011]消防
摘要:显然最长距离最短,一定是在直径上,我们先DFS两遍找出直径,把直径上的边赋值成0,跑一遍dfs,找一个最大值作为l,二分答案判断。
阅读全文
bzoj 2257: [Jsoi2009]瓶子和燃料
摘要:由题 两个瓶子互相倒的话,倒出来一定是最大公约数,枚举所有数的约数,然后从大到小找到第一个出现次数大于K的就是答案。
阅读全文
bzoj 2245: [SDOI2011]工作安排
摘要:按分段函数拆点跑费用流。
阅读全文
bzoj 2244: [SDOI2011]拦截导弹
摘要:首先第一问明显是一个三维偏序集,速度,高度,时间,用CDQ分治做,然后我们把它反过来,在做一边CDQ分治,这两遍求出来的方案数组相乘,就是过这个点的方案数。
阅读全文
bzoj 2243: [SDOI2011]染色
摘要:一个树链剖分,怎么这么长~~~~(>_<)~~~~
阅读全文
bzoj 2242: [SDOI2011]计算器
摘要:第一种情况 快速幂 第二种情况 exgcd 第三种情况 大步小步法 把x变成k*m+i,把所有的0-m次方用map存下来,然后依次累加k,直到找到一个可行的。
阅读全文
bzoj 2241: [SDOI2011]打地鼠
摘要:题解说是二阶差分 但我是暴力过的。
阅读全文
bzoj 2190: [SDOI2008]仪仗队
摘要:由题目可知 就是求互质的点对数目,如果把它按对角线分开处理,与i互质的数为phi(i),用线性筛求欧拉函数。
阅读全文
bzoj 2186: [Sdoi2008]沙拉公主的困惑
摘要:答案为n!/m!*phi(m!) 化简后就变成了n!*(p1-1)/p1*(p2-1)/p2*...... 预处理n!与后面那些数,答案就可以很快求出来。当然除的话要用逆元。
阅读全文
bzoj 2152: 聪聪可可
摘要:树的点分治 首先找树的重心,把根节点设为树的重心。然后进行点分治(就是从根开始,看经过根的方案数,在把根删掉,求每棵子树)。
阅读全文
bzoj 2132: 圈地计划
摘要:将图黑白染色 S向i(黑点)连边容量为农,S向j(白点)连边容量为工,i向T连边容量为工,j向T连边容量为农,i与j连边容量为混合收益。
阅读全文
bzoj 2127: happiness
摘要:网络流最小割 建边非常神奇。 S向i连变容量为文[i]+文[i][j]/2,向j连边容量为文[j]+文[i][j]/2。i向T连边容量为理[i]+理[i][j]/2,j向T连边容量为理[j]+理[i][j]/2;i于j连边,容量为文[i][j]/2+理[i][j]/2.
阅读全文
bzoj 2124: 等差子序列
摘要:线段树 由于是1到n的全排列,每次插入一个值时看这个值左右两边已经有的是否对称,不对称就输出Y
阅读全文
bzoj 2120: 数颜色
摘要:暴力分块,每个点存下一个与他相同颜色的在哪,每个块内排序,找的时候首尾暴力判断每个点下一个颜色在不在区间外,不在就答案加加,中间二分。修改时重建每个点存的下一个点, 如果改了,就重建这个块。
阅读全文
bzoj 2049: [Sdoi2008]Cave 洞穴勘测
摘要:link-cut-tree
阅读全文
bzoj 2038: [2009国家集训队]小Z的袜子(hose)
摘要:莫对算法经典例题,按分块排序后暴力。
阅读全文
bzoj 2037: [Sdoi2008]Sue的小球
摘要:很像以前在codevs上做的关路灯那个题,区间型DP,可知他不可能越过一盏灯去关另一盏。所以从起点开始,依次向两边扩展,f[i][j][0]表示关完区间[i,j]停在左边,[1]表示停在右边。 f[i][j][0]即可从f[i+1][j][0]转移来,又可从f[i+1][j][1]转移来。
阅读全文
bzoj 2007: [Noi2010]海拔
摘要:看一看像网络流的最小割,可跑网络流超时,网络流的最小割就等于对偶图的最短路,把图转化为对偶图之后跑最短路就不超时了,可是我的平面图转对偶图还不是太会wuwu。
阅读全文
bzoj 2005: [Noi2010]能量采集
摘要:有个结论,(x,y)线段上的端点个数等于gcd(x,y),证明就自己yy一下吧,然后这个题就变成了gcd的和,设f[i]为gcd为i的点对有多少个,可用程序中方法nlogn求出。
阅读全文
bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊
摘要:暴力分块
阅读全文
bzoj 1997: [Hnoi2010]Planar
摘要:平面图在环内顶多有n-3条,环外顶多有n-3条,环上n条,所以超过3*n-6条边一定不是平面图,然后把所有的边按哈密尔顿重新编号,判断是否相交,相交的话一定一条在外,一条在内, 这样就变成了2-set问题,用tarjin跑。
阅读全文
1968: [Ahoi2005]COMMON 约数研究
摘要:权当练习下线性筛求约数个数。
阅读全文
bzoj 1965: [Ahoi2005]SHUFFLE 洗牌
摘要:设Ci表明第i次洗牌后要求的牌在哪个位置,所以C0为答案,Cm=L。由题Ci=(Ci-1*2)mod (n+1)。所以Cm=2m*C0 mod (n+1),所以2m*C0+(n+1)*y=Cm 用exgcd解。
阅读全文
bzoj 1951: [Sdoi2010]古代猪文
摘要:经典的数学题。。。。 题目就有点难懂,求G^M mod P M=∑ i|N C(N,i) P=999911659 用lucas定理,中国剩余定理合并模线性方程组。http://hzwer.com/4407.html
阅读全文
bzoj 1934: [Shoi2007]Vote 善意的投票
摘要:网络流最小割 将源点与睡觉的相连,不睡觉的与汇点相连。朋友之间相连,跑最小割既是答案。
阅读全文
bzoj 1927: [Sdoi2010]星际竞速
摘要:费用流,拆点 源点分别向拆出的点连费用为0,费用为定位费的点,再把原有的航路建出来。
阅读全文
bzoj 1926: [Sdoi2010]粟粟的书架
摘要:两种情况 对于R,C<=200,用前缀和暴力二分,对于另外的数据,在主席树上二分。
阅读全文
bzoj 1923: [Sdoi2010]外星千足虫
摘要:据题目可知就是解方程,所以高斯消元法
阅读全文
bzoj 1922: [Sdoi2010]大陆争霸
摘要:跑DJ每次找最小值更新时,看保护他的是否全找完了。
阅读全文
bzoj 1911: [Apio2010]特别行动队
摘要:普通的斜率优化DP。
阅读全文
bzoj 1878: [SDOI2009]HH的项链
摘要:将读入离线处理,先排序,树状数组维护。
阅读全文
bzoj 1856: [Scoi2010]字符串
摘要:卡特兰数答案为C(n+m,m-1)
阅读全文
bzoj 1854: [Scoi2010]游戏
摘要:属性与序号建边 跑二分图匹配。
阅读全文
bzoj 1834: [ZJOI2010]network 网络扩容
摘要:一遍最大流,一遍费用流。第一问跑完之后在残余网络建边,单位费用为扩容费用,
阅读全文
bzoj 1833: [ZJOI2010]count 数字计数
摘要:数位DP,先预处理,a[i][j]代表有i位,最高位为j的各数字和。
阅读全文
bzoj 1823: [JSOI2010]满汉全席
摘要:2-set问题,根据评委需求建边,比如h1,h2那m2向h1建边,m1向h2建边。求2-set时用tarjin找环。
阅读全文
bzoj 1821: [JSOI2010]Group 部落划分 Group
摘要:并查集,每次把最近的两个点合并,直到只有k个块。
阅读全文
bzoj 1818: [Cqoi2010]内部白点
摘要:将点拆成横线与点,用树状数组维护。
阅读全文
bzoj 1816: [Cqoi2010]扑克牌
摘要:二分答案判断是否可行。 其实我还有一种想法,只是一直没对,以后要对拍一下。
阅读全文
1800: [Ahoi2009]fly 飞行棋
摘要:n很小 直接四重循环枚举,看弧长是否相等,弧长相等弦长相等,两组边互相相等的四边形是平行四边形,圆内接平行四边形一定是矩形。
阅读全文
bzoj 1791: [Ioi2008]Island 岛屿
摘要:这个题建出图来之后,是一个基环树森林,先把非环部分的最长链用DP求出来,在把环拆开,变为两倍,找环上两点之间的距离加上在这两个点的子树中,以这两个点为端点的最长链的 长度,注意如果是两个点的环,需要特判,因为不一定能找到那条最长的边。
阅读全文
bzoj 1588: [HNOI2002]营业额统计
摘要:treap 每次加x点前找出这个点的前驱与后继,两者与x绝对值差取小。
阅读全文
bzoj 1565: [NOI2009]植物大战僵尸
摘要:首先我们要把互相保护的去掉,在右边的肯定保护它左边的,还有题目中原先的保护条件 进行建边,拓扑排序去掉永远吃不掉的。然后把所有边反向就是一个最大权闭合子图,正权点向 汇点建边,容量为权值。源点向负权点建边,容量为权值相反数,原图中的边容量为inf,答案为正权值和减去最小割。
阅读全文
bzoj 1507: [NOI2003]Editor
摘要:本应是个平衡树,偷懒用了list。
阅读全文
bzoj 1503: [NOI2004]郁闷的出纳员
摘要:平衡树 treap
阅读全文
bzoj 1497: [NOI2006]最大获利
摘要:最小割 站向汇点连容量为费用的边,源点向用户群连容量为获利的边,用户群与站之间有关联的连容量为inf的边,跑最小割,用总收益减去即为答案。
阅读全文
bzoj 1492: [NOI2007]货币兑换Cash
摘要:这是个斜率优化dp,用cdq去做。f[i]代表到i天时的最大获利,q[i].x,q[i].y表示在第i天全部买股票能买多少
阅读全文
bzoj 1491: [NOI2007]社交网络
摘要:弗洛伊德求出两点之间的的最短距离以及有多少种方案,在用弗洛伊德判断每个点在那些最短路上。
阅读全文
bzoj 1483: [HNOI2009]梦幻布丁
摘要:链表合并,启发式合并,由于是启发式合并,所以还要开一个数组记录实际是哪个颜色。
阅读全文
bzoj 1433: [ZJOI2009]假期的宿舍
摘要:网络流 首先源点向所有要住的人连边,床向汇点连边,人向能睡的床连边,然后跑最大流,看是否满流即可。
阅读全文
bzoj 1432: [ZJOI2009]Function
摘要:这个题真心不会。。。。。
阅读全文
bzoj 1415: [Noi2005]聪聪和可可
摘要:概率性dp,但首先要用nlogn的dj预处理出两点之间的距离,然后就是一个简单的概率性dp
阅读全文
bzoj 1412: [ZJOI2009]狼和羊的故事
摘要:最小割,不同的点之间进行连边,空地于空地之间连边,易知最小割极为答案。
阅读全文
1305: [CQOI2009]dance跳舞
摘要:网络流 将男女进行拆点,二分答案,同一个人之间建容量k的边,源汇分别向男女连mid的边,再根据喜欢不喜欢对男女进行连边,使如果不喜欢的话要走同一个人之间的那一条边,最后 观察一下是否满流。
阅读全文
bzoj 1304: [CQOI2009]叶子的染色
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define N 10009 4 #define inf 100000 5 using namespace std; 6 int b[N],cnt,n,m,c[N],f[N][2],head[N],next[2*N
阅读全文
bzoj 1303: [CQOI2009]中位数图
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define M 100005 4 using namespace std; 5 int a[M],l[2*M],r[2*M],sum[M],n,m,p,ans; 6 int main() 7 { 8 scanf(
阅读全文
bzoj 1295: [SCOI2009]最长距离
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6 int n,m,T; 7 double ans=0; 8 bool mp[31][31],in
阅读全文
bzoj 1293: [SCOI2009]生日礼物
摘要:1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<cstdio> 5 using namespace std; 6 #define M 1000009 7 int head[M],cnt,next[M]
阅读全文
bzoj 1263: [SCOI2006]整数划分
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 int a[3000],d[3000],n; 6 void cheng(int a1) 7 { 8 for(int i=1;i<=
阅读全文
bzoj 1227: [SDOI2009]虔诚的墓主人
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #define ll long long 5 #define P 2147483648LL 6 using namespace std; 7 int n,m,w,K,H[2
阅读全文
bzoj 1221: [HNOI2001] 软件开发
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #define M 10001 5 #define inf 2139062143 6 using namespace std; 7 int cnt=1,sum,T,n,a,b,
阅读全文
bzoj 1208: [HNOI2004]宠物收养所
摘要:1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int n,size,rt,kind,t1,t2; 5 long long ans; 6 int tr[80001][2],num[80001],fa[80001]; 7
阅读全文
bzoj 1207: [HNOI2004]打鼹鼠
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 using namespace std; 5 int x[10008],y[10009],z[10008],f[10008],n,m,max1; 6 int main() 7 {
阅读全文
bzoj 1202: [HNOI2005]狡猾的商人
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define M 1005 4 using namespace std; 5 int fa[M],T,n,m,v[M],kg; 6 int zhao(int a1) 7 { 8 if(fa[a1]==a1) 9 r
阅读全文
bzoj 1192: [HNOI2006]鬼谷子的钱袋
摘要:1 program kkul; 2 var a:array[0..32]of longint; 3 n,i,j,k,m:longint; 4 kg:boolean; 5 begin 6 read(n); 7 while n>0 do 8 begin 9 inc(m); 10 a[m]:=n div
阅读全文
bzoj 1191: [HNOI2006]超级英雄Hero
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #define M 1005 5 using namespace std; 6 int pi[M],n,m,a[M][2],f[M],i; 7 bool xun(int a1)
阅读全文
bzoj 1189: [HNOI2007]紧急疏散evacuate
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #define inf 0x7fffffff 5 #define M 5000008 6 #define N 161000 7 using namespace std; 8 i
阅读全文
bzoj 1188: [HNOI2007]分裂游戏
摘要:1 2 #include<cstdio> 3 #include<iostream> 4 #include<cstring> 5 using namespace std; 6 bool ma[10009]; 7 int n,T,f[30],a[30]; 8 int work(int a1) 9 { 1
阅读全文
bzoj 1090: [SCOI2003]字符串折叠
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 int ma[105][105],f[105][105]; 6 char ch[106]; 7 bool pan(int l,in
阅读全文
bzoj 1088: [SCOI2005]扫雷Mine
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 int f[10009],a[10009],n,ans; 6 bool pan() 7 { 8 for(int i=2;i<n;i
阅读全文
bzoj 1087: [SCOI2005]互不侵犯King
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define M 600 4 int b1[M],b2[M][M],n,m,s,sum[M]; 5 long long f[10][M][M],ans; 6 using namespace std; 7 int m
阅读全文
bzoj 1085: [SCOI2005]骑士精神
摘要:1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 int b[5][5]={{1,1,1,1,1}, 5 {0,1,1,1,1}, 6 {0,0,2,1,1}, 7 {0,0,0,0,1}, 8 {0,0,0,0,0}}
阅读全文
bzoj 1084: [SCOI2005]最大子矩阵
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define M 102 4 using namespace std; 5 int f1[M][M],sum[M],sum1[M],n,m,K,f[M][M][12]; 6 int main() 7 { 8 sca
阅读全文
bzoj 1083: [SCOI2005]繁忙的都市
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #define M 10005 5 using namespace std; 6 struct data 7 { 8 int u,v,w; 9 }a[M]; 10 int
阅读全文
bzoj 1079: [SCOI2008]着色方案
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define M 1000000007 4 using namespace std; 5 int f[16][16][16][16][16][6],ma[16][16][16][16][16][6],a[6],k;
阅读全文
bzoj 1070: [SCOI2007]修车
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #define M 10000 5 #define inf 2139062143 6 using namespace std; 7 int cnt=1,n,m,T,d[M],q
阅读全文
bzoj 1067: [SCOI2007]降雨量
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #define M 50008 5 using namespace std; 6 struct shu 7 { 8 int l,r,ma; 9 }shu[4*M]; 10
阅读全文
bzoj 1066: [SCOI2007]蜥蜴
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define T 1001 4 #define M 10005 5 #define inf 0x7fffffff 6 #include<cstring> 7 using namespace std; 8 int c
阅读全文
bzoj 1059: [ZJOI2007]矩阵游戏
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 using namespace std; 6 int T,n,map[202][202],dui[202],y[202]; 7 bool
阅读全文
bzoj 1054: [HAOI2008]移动玩具
摘要:1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 struct data 5 { 6 int a[4][4],bu; 7 }q[100000]; 8 int h=0,t=1,f[1000000],b[4][4]; 9 c
阅读全文
bzoj 1051: [HAOI2006]受欢迎的牛
摘要:1 #include<cstdio> 2 #include<iostream> 3 #define M 50008 4 using namespace std; 5 int du[M],ti,ti1,cnt,head[M],head1[M],next1[10*M],u1[10*M],next[10*
阅读全文
bzoj 1050: [HAOI2006]旅行comf
摘要:1 program ddk; 2 type ty=record 3 x,y,z:longint; 4 end; 5 var a:array[1..500]of longint; 6 b:array[0..5000]of ty; 7 n,i,j,m,max,max1,min,min1,a1,a2,s,
阅读全文
bzoj 1041: [HAOI2008]圆上的整点
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 using namespace std; 5 int sum; 6 long long R; 7 bool pan(int a1,double a4) 8 { 9 int a2=f
阅读全文
浙公网安备 33010602011771号