- 博客(31)
- 收藏
- 关注
原创 BZOJ 2142: 礼物
BZOJ2142令sk=∑ki=1wis_k=\sum_{i=1}^k w_i ans=∏i=1mCwin−si−1ans=\prod_{i=1}^m C_{n-s_{i-1}}^{w_i} 展开一下。ans=n!∏mi=1wi!∗(n−sm)!ans=\frac{n!}{\prod_{i=1}^mw_i!*(n-s_m)!} 因为pp不是质数,将pp分解质因数后,对于每一个因子分别处理然后C
2017-05-31 17:18:21 306
原创 BZOJ2521: [Shoi2010]最小生成树
BZOJ2521QAQ一开始看到这个题就想到了BZOJ2561 然而瞬间否定,这两个题应该不太一样。神flag!flag! 先说说一开始错的想法错在哪吧。。 可以直接passpass: (一开始想的是类似次小生成树的做法,先做最小生成树,排序时若有多个边长与z[lab]相同的边,把lab放到最后,然后MST,如果边lab没出现,直接返回。然而发现这样还是有可能有其他解使得不考虑边lab,MS
2017-05-29 11:00:29 824
原创 POJ2891Strange Way to Express Integers
POJ2891mi不互质时解同余方程组 存一发模板吧QAQ 讲解看看:这里 那个为什么要mod (m2/d)还是想了很久。。 大概就是最后要在mod(m2*m1/d)意义下,然后带入到x=m1∗t1+a1x=m1∗t1+a1中乘了m1m1,所以前面mod(m2∗m1/d)mod(m2*m1/d)就可以满足条件。【代码】#include <cstdio>#include <iostream>
2017-05-28 20:58:57 331
原创 POJ1006:Biorhythms
POJ1006有三个周期,分别为23,28,33天。一个周期中有一天为峰值。 给出三个峰值日期,和当前日期,求最少要经过多少天,三个峰值同时出现。中国剩余定理模板题。【代码】#include <cstdio>#include <iostream>#include <algorithm>#define N 2335#define INF 0x7fffffffusing namespace
2017-05-28 11:43:19 353
原创 BZOJ4591: [Shoi2015]超能粒子炮·改
BZOJ4591根据LucasLucas定理推出ans=∑i=02332Cin mod 2333∗∑j=0k/2333−1Cjn/2333+Ck/2333n/2333∗∑i=0k mod 2333Cin mod 2333ans=\sum_{i=0}^{2332}C_{n \space mod\space 2333}^i*\sum_{j=0}^{k/2333-1}C_{n/2333}^j+C_{n/2
2017-05-27 18:42:44 471
原创 BZOJ2111: [ZJOI2010]Perm 排列计数
BZOJ2111根据题目所给信息,要求所有2<=i<=N2<=i<=N时,满足Pi>Pi/2P_i>P_{i/2} 列一下,就是:p2>p1p_2>p_1,p3>p1p_3>p_1,p4>p2p_4>p_2,p5>p2p_5>p_2,p6>p3p_6>p_3,p7>p3p_7>p_3 发现很像一颗二叉树!就是一颗二叉树。。 满足根节点小于两个儿子节点。 然后显然有子结构,可以dpdp 对于
2017-05-27 11:48:26 347
原创 BZOJ4403: 序列统计
BZOJ4403求非降序列可以考虑将每一个位置加上i,变成求严格上升序列。 那么长度为ii,范围在l到rl到r之间的方案数为Cii+r−lC_{i+r-l}^i 令M=r−l+1M=r-l+1ans=∑i=1nCiM+i−1ans=\sum_{i=1}^n{C_{M+i-1}^{i}}=C1M+C2M+1+C3M+2+…+CNM+N−1=C_{M}^1+C_{M+1}^{2}+C_{M+2}^
2017-05-27 10:22:28 446
原创 BZOJ2693: jzptab
BZOJ26932154 doubledouble expexp啊QAQQAQ取模少打一个0愉快的wa一发【代码】#include <cstdio>#include <iostream>#include <algorithm>#define N 10000005#define INF 0x7fffffff#define mod 100000009using namespace std;
2017-05-26 22:20:21 394
原创 BZOJ2154: Crash的数字表格
BZOJ2154题目要求的是∑i=1n∑j=1mi∗jgcd(i,j)\sum_{i=1}^n\sum_{j=1}^m\frac{i*j}{gcd(i,j)} 那么我们枚举gcd(i,j)gcd(i,j),不妨令n<mn<m 原式变成了: ∑d=1n∑ni=1∑mj=1i∗j[gcd(i,j)==d]d\sum_{d=1}^n\frac{\sum_{i=1}^n\sum_{j=1}^m
2017-05-26 20:54:31 501
原创 BZOJ3529: [Sdoi2014]数表
BZOJ3529看着这个a的限制看着就很讨厌,就先拿掉。 弱化版的题目就是求∑i=1n∑j=1m∑d=1min(n,m)F(d)[gcd(i,j)==d]\sum_{i=1}^n\sum_{j=1}^m \sum_{d=1}^{min(n,m)}F(d)[gcd(i,j)==d] F(i)F(i)表示i的约数和。 稍作变形: ∑d=1min(n,m)F(d)∑i=1n/d∑j=1m/d[gc
2017-05-26 14:56:25 372
原创 BZOJ2820: YY的GCD
BZOJ2820直接枚举质数像1101那样做肯定会T…然而我还是不信邪的T了一发才开心。。根据前面的题的经验。 这道题的式子可以先化成∑k=1p[k]<=min(n,m)∑d=1min(n,m)μ(d)∗⌊npk∗d⌋⌊mpk∗d⌋\sum_{k=1}^{p[k]<=min(n,m)}{\sum_{d=1}^{min(n,m)}}μ(d)*\lfloor{\frac{n}{{p_k*d}}}\rf
2017-05-25 20:03:48 312
原创 BZOJ2440: [中山市选2011]完全平方数
BZOJ2440题意就是求第k个无平方因子数。(题意有问题啊QAQ,1也是完全平方数啊) 考虑一下二分答案+判定。 二分一个数mid,那么每次就判定1~mid之间有多少个无平方因子数。 容斥一下,答案=所有数-至少一个质数的平方的倍数的数+至少两个质数的平方的倍数的数-至少三个质数的平方的倍数的数+…… 然后看看每个数的平方对答案的贡献,若d=p1∗p2∗…pkd=p_1*p_2*…p_k,
2017-05-25 15:23:58 361
原创 BZOJ2301: [HAOI2011]Problem b
BZOJ2301和1101一样啦。。就容斥一下就好了。 答案是Calc(a−1,c−1)+Calc(b,d)−Calc(b,c−1)−Calc(a−1,d)Calc(a-1,c-1)+Calc(b,d)-Calc(b,c-1)-Calc(a-1,d)【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <se
2017-05-25 12:04:33 291
原创 BZOJ1101: [POI2007]Zap
BZOJ1101感觉看着别人推的式子看了一万年才大概也许看懂了!? QAQ感觉这一篇写的挺详细的就直接贴别人的好了。 然后至于后面的分块。其实我也看了半天才大概也许明白。。 式子最后推成了 (令a为较小值)∑d=1a(μ(d)∗⌊ad⌋⌊bd⌋)\sum_{d=1}^a{(μ(d)*\lfloor{\frac{a}{d}}\rfloor\lfloor{\frac{b}{d}}\rfloor}
2017-05-25 11:36:36 371
原创 BZOJ2797: [Poi2012]Squarks
BZOJ2797将a{a}数组排序。 a1=x1+x2,a2=x1+x3a_1=x_1+x_2,a_2=x_1+x_3 x2+x3x_2+x_3可能为a1……ana_1……a_n 发现如果确定了x1,x2,x3x_1,x_2,x_3,在数组a中删去x1+x2,x1+x3,x2+x3x_1+x_2,x_1+x_3,x_2+x_3 剩下的最小的就为x1+x4x_1+x_4,那么x4x_4就确定了
2017-05-24 19:49:25 369
原创 BZOJ1935: [Shoi2007]Tree 园丁的烦恼
BZOJ1935传送门1176,22831176,2283三倍EXPEXP。 戳这里–>BZOJ2283【代码】#include <cstdio>#include <iostream>#include <algorithm>#define N 500005#define M 10000005using namespace std;typedef long long ll;int r
2017-05-24 12:12:46 632
原创 BZOJ3295: [Cqoi2011]动态逆序对
BZOJ3295删除好像挺麻烦的。。那就考虑倒一下,也就是倒序加值。 考虑一个值加入进来,对答案的影响就是,它左边的比它大的个数和它右边比它小的个数加和。 先只考虑一半。只考虑右边比它小的数的个数。那么假设当前加入的为一个三元组 (t,pos,x)(t,pos,x),表示时间,位置和值。那么就是求满足(tt<t,ppos>pos,xx<x)(tt<t,ppos>pos,xx<x)的三元组(tt
2017-05-24 11:50:35 262
原创 BZOJ2683: 简单题
BZOJ2683传送门 BZOJ1176几乎一样啊 戳这里–>BZOJ1176然后这个题 应 该? 要开long long 吧。 (日常打错变量名QAQ。。)【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <cmath>#de
2017-05-23 20:00:05 324
原创 BZOJ3262: 陌上花开
BZOJ3262先按第一维排序,然后以第二维为序做CDQ分治,第三维用树状数组维护。 先考虑没有相同属性的花,即任意两朵花A,B之间不存在相互包含关系。 那么正常做就好了。 再考虑加入相同属性的花对答案有什么影响。 那么若A>BA>B,对AA的贡献应为numBnum_B,numinum_i表示第ii种花的个数。 那么对于同一个集合内的相同的花,每一个的答案应+=numi−1+=num_i-
2017-05-23 19:37:02 427
原创 BZOJ1176: [Balkan2007]Mokia
BZOJ1176算得上是CDQ分治三维偏序的模板题了吧QAQ。 我们就把查询操作容斥一下,就变成了求sum(1,1,x2,y2)−sum(1,1,x1−1,y2)−sum(1,1,x2,y1−1)+sum(1,1,x1−1,y1−1)sum(1,1,x2,y2)-sum(1,1,x1-1,y2)-sum(1,1,x2,y1-1)+sum(1,1,x1-1,y1-1) 那么相当于我们只需要维护一个
2017-05-23 16:48:39 633
原创 BZOJ1013: [JSOI2008]球形空间产生器sphere
BZOJ1013根据两点之间距离相等列出nn个方程,然后移一下项发现就是个n元1次方程,然后高斯消元就好了。然后就是注意一下输出格式。。其它的已经很和善了,保证有解。【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <cmath>#d
2017-05-18 16:13:47 314
原创 hihocoder 1195&1196
1195 1196存一发高斯消元模板。(填坑) 1195是纯模板,1196是解异或方程组。 代码中有注释。【代码】1195#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <cmath>#define N 505#define M
2017-05-18 14:27:37 286
原创 POJ1113:Wall
POJ1113求完凸包算总长度,然后+2piL。结束。 我还sb的把每个角都求了一遍加起来。。后来发现其实就是360°。 重要的事情说三遍:用C++!用C++!用C++!【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cmath>#define N 10005#define INF 0x7fff
2017-05-17 18:51:42 259
原创 POJ1743:Musical Theme
Poj1743就先把相邻两个数相减构成一个新的数组再做咯。(再离散化一下) 然后发现题目要求的就是两个后缀的最长不相交前缀。 那么二分+判定就好了。具体看看代码就明白了。【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <cmath
2017-05-17 16:43:32 268
原创 POJ4002Alice's mooncake shop
POJ4002蠢哭了。。又是看错题又是偷懒搞错。。 然后直接复制忘了改东西。。然后wa了一两面才检查到这里。。一口老血喷出来。我* 应该是然后sb的我直接复制下来写成了: QAQQAQ原来我斜率优化写的是对的QAQQAQ 一度放弃斜率优化改线段树改到怀疑人生……其实只需要求出每个时刻的最小花费就行啦,因为读懂题就发现每个时刻每个顾客都是独立的。 所以有递推式f[i]=min(a[j]+S∗
2017-05-08 18:34:18 379
原创 POJ2187Beauty Contest
POJ2187平面最远点对裸题。 来填坑了QAQ。 (求完凸包暴力都能过差评)【代码】#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#define N 50005using namespace std;typedef long long ll;ll read(){ ll x
2017-05-08 16:11:49 269
原创 BZOJ2938: [Poi2000]病毒
BZOJ2938如果存在一个无限长的安全代码段,就是不停的匹配但无法匹配到标记节点。也就是AC自动机中Trie图成环(不包含被标记点)。建完Trie图后找环即可。【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#define N 30005using
2017-05-05 08:54:59 317
原创 BZOJ1030: [JSOI2007]文本生成器
BZOJ1030给定很多串,很容易想到会用TrieTrie或之类的算法啦、 单纯的TrieTrie好像不太可做,就想想AC自动机AC自动机辣。(反正不是我想的) 然后直接计算不好算辣,就容斥一下求一个串都没出现的方案数辣。 然后每次转移的时候如果是被标记的结束节点就不管啦for(int i=1;i<=m;i++) { for(int j=0;j<=cnt;j++)
2017-05-04 19:25:12 335
原创 Hdu2222Keywords Search
Hdu2222存一发AC自动机模板…【代码】#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#define N 500005#define INF 1LL<<60using namespace std;typedef long long ll;ll r
2017-05-04 11:39:21 322
原创 NOI2015 Day2
Day2Day2不出意料的血崩。。第一题UOJUOJ还被附加数据卡了三分。。第二题只会打40分暴力,看出来了后缀数组后面的还是不会打(结果后来发现后缀数组不光打错。。板子都有问题。。然后成功被暴力吊打)第三题看起来就很烦。。dpdp还最小流,,哪一个都不好做啊QAQQAQ,打到一半弃掉弃掉!然而某大佬表我说,“前年暑假我p都不会的时候这个题都会打一二十”。我真的被表的无fuckfuck说..前年暑假
2017-05-03 21:04:48 500
原创 NOI2015 Day1
不知不觉省选完已经颓了半个月了!!!还两个月就要NOINOI了。。很慌。。 前几天做NOI2016NOI2016翻车以后。。今天开始先做2015Day12015 Day1 第一题: 这么裸这么和善的并查集么。。(我才不会告诉你先做的时候看错了题结果竟然还有80。。数据不要这么水吧。。)第二题: 这么SBSB的树剖吗!?InstallInstall就查询该点到根路径上0的个数
2017-05-02 16:28:11 561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人