自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(181)
  • 收藏
  • 关注

原创 bzoj 3534 重建

矩阵树定理中邻接矩阵可以理解为那条边存在的概率是1,那么这道题邻接矩阵只要是概率就行了。然后再乱搞一下就行了没有搞明白相对误差和绝对误差……省选的时候说过多少遍?#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-10#define N 5

2015-11-16 10:39:24 370

原创 bzoj 4017 小Q的无敌异或

#include#include#include#include#include#define md 998244353#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 1000010using namespace std;int a[N],xr[N],s[2];bool c[2*N];ll sum[N];int

2015-11-16 10:39:21 565

原创 bzoj 1002 轮状病毒

终于把这个坑填了。开开心心的敲完了矩阵树,一交,wa了。翻hzwer题解,发现是矩阵树找规律+高精度。这个数据范围好骗人啊。于是乎我就写了今年第一道高精度。 f[i]=f[i-1]*3-f[i-1]+2,可以设出一个f[i]=af[i-1]+bf[i-2]+cf[i-3]+d,解出来系数。#include#include#include#include#include#define md#defi

2015-11-16 10:39:19 310

原创 bzoj 3288 矩阵

行列式消元-》打表找规律,因为搜题的时候看到线筛,就疯狂的从线筛上找规律:f[p]=p-1f[p*i](i%p==0) =f[i]*pf[p*i](i%p!=0) =f[i]*f[p]据说这是Phi?我没看出来,也没有什么影响#include#include#include#include#include#define md 1000000007#define ll long long#defin

2015-11-16 10:39:16 329

原创 bzoj 4031 小z的房间

矩阵树定理是用于判断一个连通图的生成树个数,主要步骤如下:1.求出一个矩阵等于度数矩阵-邻接矩阵2.去掉最后一行、最后一列3.把这个矩阵高斯消元变成倒三角,记录交换次数4.把a[i][i]乘起来,再乘上(-1)^交换次数,就是生成树个数。我懒得去看证明了。这道题丧心病狂的模1e9,不能求逆元,用欧几里德原理来算答案。5x+……=03x+……=0=>3x+……=02x+……=0……很神奇,不是吗?然

2015-11-16 10:39:13 358

原创 bzoj 4004 装备购买

比较裸的拟阵的题,按照价值从小到大排一个序,高斯消元就行了。这道题太变态了,我eps开1e-8就wa了,开1e-5就a了#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-5#define N 510using namespace std;

2015-11-16 10:39:11 556

原创 容斥原理

容斥原理主要有三种题型:小学生容斥,合法的方案数,...等于k的方案数。大体思路是先利用各种稀奇古怪的方法求出包含不合法或者重复计算了的,但是比较好求的东西,然后套以下三种方法:小学生容斥就是统计一些东西,再减去重复统计的。合法的方案数就是ans1-ans2+ans3-ans4……等于k的方案数就是  for (int i=n;i>k;i--)     for (int j=1;j

2015-11-16 10:39:08 792

原创 主席树&树状数组套主席树

主席树是一种利用前缀和维护形如(l主席树的最经典应用是维护区间第k小值,大体思路是维护root[r]-root[l-1]范围内的线段树,用各种方法乱搞。带修改:高能的树状数组套主席树(更疯狂的nlog^2(n)的空间复杂度)。树状数组的每一个节点维护的是一段区间,我们将这每一个区间建成一颗线段树(利用主席树降一点内存和时间)。这时候修改只需要修改logn个线段树即可,时间复杂度log^2(n)。注

2015-11-16 10:39:06 1190

原创 bzoj 3589 动态树

lct水题?逗你玩!其实就是线段树的裸题,不明白为什么网上都要用容斥。tle是线段树结构写错了+dep[y]wa是因为应该先下放ad标记,再下放tag标记#include#include#include#include#include #define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 30001

2015-11-16 10:39:03 755

原创 bzoj 3622 已经没有什么好害怕的了

我好害怕这种题 φ(≧ω≦*)?两个数组排序后,处理出next[i]表示满足tang[i]>yao[j]的最大的j。f[i][j]前i种糖果,有j个糖比药多,不考虑剩余情况的方案数//也就是剩余n-j个糖果的放法算一种,最后乘上阶乘。f[i][j]=f[i-1][j]+f[i-1][j-1]*max(next[i]-j+1,0) 开始忘记max了。因为f[i][j]不一定都是合法状态,所以要判一下

2015-11-16 10:39:01 440

原创 看了zzb的安排

盗题,发现了他的安排,我也来发一发 莫比乌斯再来一遍 容斥原理 插头dp        模拟退火        字符串(hash)        树套树 高斯消元 扩展kmp 计算几何 lct 矩阵树定理 后缀自动机 fft cdq 斜率优化 kdtree 点分治加油吧!假期作业还是弃疗吧,答案错的比我都多。文化课争取多背一背要背的东西吧。好像只有我的题还没有出完

2015-11-16 10:38:58 525

原创 bzoj 3198 spring

hash求出每一个子集相等的方案数,按照个数分类,用组合数减去。这道题的hash要管冲突,hzwer说过,hash冲突的概率是sqrt(md)的。wa了好久的原因是没有计算ans=0的情况。有没有大神告诉我为什么要用组合数,不能直接+1-1的加减#include#include#include#include#include#define md 1234567#define ll long lon

2015-11-16 10:38:55 833 3

原创 bzoj 1042 硬币购物

预处理+1,-1容斥即可,还是想不明白spring为什么要×组合数#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 100010#define mxn 100000using namespace std;ll f[N

2015-11-16 10:38:53 559

原创 bzoj 2563 阿狸和桃子的游戏

考虑选与不选对个人的影响->考虑净赚->重复计算要/2启发:对于有复杂依赖关系的东西,转化为简单的净赚。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 10010using namespace std;ll a[N

2015-11-16 10:38:50 392

原创 bzoj 1853 幸运数字

!x是x==0的意思!!!预处理出只含86的数字,利用容斥原理求解。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 1000100using namespace std;ll q[N];bool tag[N];ll

2015-11-16 10:38:47 430

原创 bzoj 3620 似乎在梦中见过的样子

和动物园一样,维护两个指针,一个是失配的位置,一个是合法的失配位置。n^2灵异的过了。我wa了好久竟然是把next开成了char#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 15010using namespac

2015-11-16 10:38:45 480

原创 bzoj 3916 friends | 字符串hash

很裸的hash,我开始读错题了,以为是加入位置不唯一,实质是s串不唯一#include#include#include#include#include#define md#define ull unsigned long long#define inf (int) 1e9#define eps 1e-8#define N 2000010using namespace std;ull mi[N],f

2015-11-16 10:38:42 613

原创 bzoj 1047 理想的正方形

利用单调队列维护以i,j为右下角的正方形的两个极值。把w大成h了。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 1010using namespace std;int a[N][N],qmx[N][N],qmn[

2015-11-16 10:38:40 317

原创 bzoj 3918 postman

不断随便找环,输出就行 by lzr#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 500010#define M 1000020using namespace std;struct yts { int x,t,n

2015-11-16 10:38:37 486

原创 bzoj 3098 hash killer

卢爷读错题了?讲的那么麻烦……其实就随机输一个字符串就成。不要srand(time(0)),会re不要让l=50,会wa然后就逗比了#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define Nusing namespace st

2015-11-16 10:38:35 343

原创 bzoj 1875 HH去散步

看到1e9的数据范围,不难想到是矩乘,但是按照边去设状态确实很神。然后f[i][j]表示第j-1步走边j的方案数,我一直没看出来要减一。#include#include#include#include#include#define md 45989#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 45#define

2015-11-16 10:38:32 341

原创 bzoj 3679 数字之积

比较裸(shen)的数位dp。可以预处理出来所有可以到达的乘积,然后dp。我会说我重变量名wa了好久吗?我会说我dp没错,预处理错了又wa了好久吗?因为重变量,代码很不优美。#include#include#include#include#include#include#include#define md#define ll long long//#define inf (int) 1e9#def

2015-11-16 10:38:29 550

原创 bzoj 屯题计划 完结

2015.7.29 我终于屯到了50题,只待某日心情好一把交了。

2015-11-16 10:38:27 570

原创 bzoj 3503 和谐矩阵

答案有空格!答案有空格!答案有空格!重要的事情说三遍。然后就是各种打错变量名#include#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 50using namespace std;int lx[4]={-1,0

2015-11-16 10:38:24 450

原创 bzoj 2242 计算器

数论裸题,只要会算法即可。膜拜了bsgs,注意以下几个点1.y要先模p,特判y=0,z=0情况2.y^x不要用快速幂求,累乘即可3.小步的时候不要忘*z#include#include#include#include#include//#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 10000

2015-11-16 10:38:21 299

原创 bzoj 2597 石头剪刀布

利用补集转化建图。可以得到ans=C(n,3)-sigma(C(win[i],2))。具体的意思就是两个胜场会破坏一个三元环。之后展开,注意sigma(win[i])=n*(n-1)/2,因为比赛场次是C(n,2)个,因为写成了n,一直wa#include#include#include#include#include#define md#define ll long long#define in

2015-11-16 10:38:19 343

原创 bzoj 3532 lis

dp求出lis的f数组,分层图建图,注意只向能转移到的连边。输出方案,如果那条边“可以”在最小割上,去掉那条边,dinic(x,S),dinic(T,x+n)退流,重新计算targan错误:忘记把lis清零了。#include#include#include#include#include#define md#define ll long long#define inf 1000000000000

2015-11-16 10:38:16 371

原创 bzoj 3130 费用流

比较水的一道题,保证流量最大的边流量最小即可#include#include#include#include#include#define md#define ll long long#define inf 1000000000.0#define eps 1e-8#define N 510#define M 50010using namespace std;int m;struct yts { i

2015-11-16 10:38:13 265

原创 bzoj 1500 维修数列 bzoj 1507 editor

splay的裸题,一看就会,一写就错。这两道题真的把我弄恶心了。一、update的时候没有考虑左右子树不存在的情况。二、这道题卡内存,必须要用一个queue记录被删掉的节点编号,然后重复利用。三、build的时候sz[mid]=1四、删除节点不能直接tot-=k。因为不一定删除最后k个节点。五、可以利用revit、makeit这种函数打标记。下放的时候直接revit(l),revit(r)。六、1

2015-11-16 10:38:11 319

原创 bzoj 1251 序列终结者

狂刷splay中,机房里不时爆出骂爹骂娘的声音。基本算裸题,唯一写错的地方是在find_k的时候要先release。因为子树的大小会变#include#include#include#include#include#define md#define ll long long#define inf 1000000000000000LL#define eps 1e-8#define N 500010u

2015-11-16 10:38:08 413

原创 bzoj 4152 the camptin (dis[x][y]=min(|x.x-y.x|,|x.y-y.y|),求1,n最短路)

好题。按x排序后,只可能走与它相邻的点,按y同理。挖一个坑,为什么这道题spfa会tle?#include#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 200010using namespace std;stru

2015-11-16 10:38:05 338

原创 bzoj 3029 守卫者的挑战

水题,唯一值得提的是我们不用维护背包剩余空间为O(K)的情况,只要维护最大到n的情况就行了。因为只要剩余空间到了n,无论如何也不会装满。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 250using namesp

2015-11-16 10:38:03 688

原创 bzoj 2118 墨墨的等式

又是好一道数论题!令mn为a[1]~a[n]中数的最小值。很显然,如果x能被凑出来,x+mn也能被凑出来。所以我们只需要知道对于每一个x属于[0,mn),满足y%mn==x中最小的y,那么就能知道[1,R]中模mn等于x的数里能凑出来的个数。注意spfa的时候正无穷要大一点需要特殊处理一下a=0的情况,但是数据好像a!=0#include#include#include#include#inclu

2015-11-16 10:38:00 406

原创 bzoj 1414 对称的正方形

用manacher写了一上午,愣是没有写出来,逼着自己学了字符串hash,水过。主要是维护4个方向的hash值,如果这是个合法的正方形,那么这个子矩形的4个hash值是相同的。我也明白了什么是自然溢出,就是开一个unsigned……,然后不用取模就行了#include#include#include#include#include#define md#define ll long long#def

2015-11-16 10:37:57 590

原创 网络流刷题列表

3638 k_sum 不相交的不超过k个子段  1797 最小割 //2095 桥 小胖减肥,找风力最小  任意分类,匹配,使入度=出度//1283 序列 长度为k的子段中元素不超过k个 线性规划网络流->差分的美丽//1927 星际竞速//3144 切糕 距离不超过d 一排只能选一个-》穿起来 不能同时选-》后向前连inf//3876 支线剧情 拓扑图点覆盖 图上做上下界//2756 奇怪的游戏

2015-11-16 10:37:55 425

原创 bzoj 2084 反对称子串

回文串长度必须是偶数的manacher改一下匹配条件#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 500010using namespace std;int n; int p[N],a[N];char st[N]

2015-11-16 10:37:52 421

原创 bzoj 3790 神奇项链

这道题可以转化为用最少的回文子串覆盖这个字符串。比较神奇的是树状数组是可以维护后缀的信息的。具体方法是void modify(int x,int d){ for (;x;x-=x&(-x)) c[x]=min(c[x],d);}int query(int x){ if (x==0) return 0; int ans=inf; for (;x return ans;}简单的说就是把modify和q

2015-11-16 10:37:49 379

原创 bzoj 3631 松鼠的新家

自己乱搞了一个线段树维护dfs序,结果卡着内存过了。dfs序维护的是子节点和父节点的关系,并不是路径上的关系。然而膜拜题解发现只要在倍增lca的时候打上标记就可以了。不会On求lca,先挖一个坑#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define

2015-11-16 10:37:47 282

原创 bzoj 1064 假面舞会

这是一道不错的题,膜拜题解一个很巧妙的处理:搜索拓扑图最长链时,设反向边的长度是-1,那么任选一个节点开始dp就能获得正确答案。 #include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 100010#define

2015-11-16 10:37:44 383

原创 bzoj 3240 矩阵游戏

推出f[i][m]和f[i][1]关系式,就能知道f[i][j]和f[i-1][j]的关系式。求出f[n+1][1],-d 再/c即可注意等比数列等于1的情况#include#include#include#include#include#define md 1000000007#define ll long long#define inf (int) 1e9#define eps 1e-8#

2015-11-16 10:37:41 309

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除