自定义博客皮肤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)
  • 收藏
  • 关注

原创 bzoj4008[HNOI2015]亚瑟王

f[i][j]表示给[i,n]区间的卡牌j次机会的概率。单独考虑每一张牌的情况,而不是单独考虑每一轮的情况f[0][r]=1;f[i][j]=f[i-1][j]*sig(i-1,j)+f[i-1][j+1]*(1-sig(i-1,j+1))其中sig[i][j]表示第i张牌,j次机会,都没有发出去的概率。注意数组清0#include#include#include#inc

2015-11-28 22:51:30 904

原创 bzoj 3535Fair Photography【hash】

很容易想到枚举出现的位置,哈希一个前缀和,判定有无出现过。这样复杂度有点大。hzwer给出了一个小的常数优化:维护每个数和第一个出现的数的差值,这样只有改首个复杂度是k^2否则都是O(k)注意细节#include#include#include#include#include#define ull unsigned long long#define inf 1e9#

2015-11-28 22:46:45 691

原创 bzo j3122: [Sdoi2013]随机数生成器

这道题不难想,难的是分类讨论。先是最一般的情况推出公式套用bsgs。 这个要求答案>1且a!=1(等比数列的分类讨论)且a!=0(0没有逆元)所以第一种情况a!=1 a!=0 ans=1第二种情况 a!=1 a!=0 ans!=1如果a=1,第一种情况ans=1第二种情况 ans!=1 b=0 (0没有逆元)第三种情况 ans!=1 b!=0如果a=0,a1=t

2015-11-28 22:29:34 444

原创 bzoj 4295 Hazard 【循环】【单调队列】【扫描】

第i个人抽到的序列与(i%m)是一样的,所以只需要讨论i%m剩余系下的问题。首先搞出来每个人抽牌的循环,然后我们要判定这个人需要多少个循环加多少轮才能没钱。需要知道两个东西,一个循环中最小的前缀和和一个循环的和。这样循环数就大约是(初始钱数-最小前缀和-1)/一个循环的和+1,还需要的轮数就是跑完循环之后第一次到0的轮数。现在考虑维护方法:(我比较弱,这些想了好久)先复制一次,循环

2015-11-28 22:18:53 664

原创 bzoj 1567 JSOI2008]Blue Mary的战役地图【二维字符串哈希】【水题】

二分后判定有无两个相同的子正方形,复习了一下二维字符串哈希。#include#include#include#include#include#define ull unsigned long long#define inf 1e9#define eps 1e-10#define md#define N 55#define H 100010 using namespace

2015-11-28 22:13:42 430

原创 bzoj 2728 与非 【找规律】 【位运算】 【数位dp】

通过与非运算可以组合出and和not,然后and和not可以组合所有的逻辑运算。所以只要有可能,没有表示不出来的数。但是如果所有数都满足st[i]=st[j] 那么这两位无论如何都相等。并查集维护所有相等的类别,数位dp还是不太熟练。01数位dp的本质是枚举所有的非0位,假设它是0,更新答案,然后把它设为1,求之后的答案。#include#include#include#in

2015-11-20 23:18:17 449

原创 bzoj 1398 项链 【最小表示法】

盗CA爷的题,学习了最小表示法,最后发现CA爷不是写的这个算法。但不管了。最小表示法大致是维护两个指针ij且i!=j 把它们向后扫,直到st[i+k]!=st[j+k] 然后将st较大的那个指针移到x+k+1,如果两个指针相等,任取一个加一。 注意是一个循环字符串,在k=l时退出。因为vijos上没有JUDGE_ONLINE 这个宏,wa了半天。#include#include

2015-11-20 23:10:45 1018

原创 bzoj 2732 射箭 【抛物线】 【线性规划】 【半平面交】

从原点射出的抛物线方程y=ax^2+bx 注意没有c,开始绕了很久。于是乎可以得出一些线性规划方程 y1=)x1^2a+x1b 其中ab为要求的量。所以二分,用半平面交判定交是否为空。1、半平面交是否为空R-L>1; 及如果有两个及以上向量,不为空2、加4个边框注意方向,而且注意让交点在框内,而不是保证大于系数就行3、题目很坑,要longdouble 而且加上fcmp就错了。#

2015-11-20 23:04:08 904

原创 bzoj 2306 幸福路径 【floyd】【dp】

期望值最大的dp,转移有环开始在想强连通分量缩点之后,块内高斯消元+拓扑图dp。但是高斯消元没有max的转移。所以用了处理有环最大值的方法:floyd总结一下:处理转移有环的方法:最短路(单源 floyd)主要是求max/min高斯消元 主要是求期望。强连通分量缩点 主要是题内有明显提示或强连通分量内部有特殊性质。#include#include#inclu

2015-11-20 22:57:47 583

原创 bzoj 4318 osu 【三次方问题】【dp】

二次方的问题可以说是经典了,三次方yy一下也就出来了。(x+1)^3=x^3+3x^2+3x+1所以维护x^2 x的期望值。注意x^2的期望值不等于x期望值的平方。#include#include#include#include#include#define ll long long#define inf 1e9#define eps 1e-10#define md#d

2015-11-20 22:52:38 932

原创 heheda练数据结构

联赛结束,自己的码力已经下降了不知多少个档次,再加上最近空闲时间比较多,我就开启了这个可以说最费时间的专题。//话说我未完成的数论专题还会继续的。最近看了以下知识点:线段树套线段树线段树套平衡树准备学习:替罪羊树块状链表复习:树链剖分树状数组套线段树一些高级的线段树可持久化tire可并堆bzoj 2957 楼房重建给定第一象限的n

2015-11-20 22:20:37 2264

原创 蒟蒻的noip2015滚粗记

oi就是一场实力与运气的博弈——题记       也不知道这会不会是自己的最后一年noip,也不知道2016夏绵阳见是什么样子。但是,第三年的noip,还是值得回味的。Day 0       又是一个阴雨连绵日,和往常不一样的是我弃掉了周五上午的课,回家学(tui)习(fei)。花了一个小时交上了屯题,在学校群里装了装逼。喝了一大碗羊汤,就出发了。       在车上,我们一对一对

2015-11-16 18:48:46 2280 2

原创 bzoj 2039 人员雇佣

2个月没写网络流,已经忘得干干净净了。经典最小割建模 x y 都选  B+D=ax+ay不选x, 选y A+D+F=ay+3exy选x,不选y B+C+E=ax+3exyx,y都不选 A+C=2exy这个东西我列错了3遍,两个选一个没有的是x对y,y对x的贡献和x对y的影响都不选是exy*2开始的时候忘要加双向边了。然后我光荣的写了 put(x,y,f); put(y,x,-f); 竟然过了7个点

2015-11-16 10:40:38 877

原创 bzoj 3997 组合数学

最小链覆盖等于最大独立集。两个点不相互可达则一个数在另一个数的左下角,dp即可。#include#include#include#include#include#define ll long long#define inf 1e9#define eps 1e-10#define md#define N 1010using namespace std;ll f[N][N],a[N][N];int m

2015-11-16 10:40:35 401

原创 heheda的数论专题练习

膜拜sd数论之神yts1999bzoj 2956 模积和这是bzoj第300道题,纪念一下再说其实并不难,把n%i变成n-(n/i)*i,然后不考虑i!=j就是n^2*m^2-n^2*sigma( (m/j)*j )-m^2*sigma( (n/i)*i )+sigma(i*j*(n/i)*(m/j)) i是从1到n枚举,j是从1到m枚举减去i=j情况n^2*m-n*sigma( (m/i)*i

2015-11-16 10:40:33 659

原创 bzoj 1818/1732 聚会

首先,答案的点一定在三组lca中的一个上它在那个最深的lca上,不要问我为什么或者,这三组lca一定有两个重复的,答案是那个不重复的。#include#include#include#include#include#define ll long long#define inf 1e9#define eps 1e-10#define md#define N 500010using namespace

2015-11-16 10:40:30 298

原创 bzoj 3594 方伯伯的玉米田

开始觉得自己好不容易想出一道题,后来发现自己是错的。用f[i][j]表示前i个玉米,发动j次技能最多能留下的玉米数。但是这个东西可以由j=1~i-1中任意一个数转移来,所以用树状数组优化dpf[i][j]=f[p][q]+1(p=p+q)#include#include#include#include#include#define ll long long#define inf 1e9#defin

2015-11-16 10:40:28 530

原创 bzoj 2734 集合选数

构造矩阵1 3  9  27…2 6 18 54…4 12 36 108………每个数是上面的数乘2,左面的数乘3。这样进行状压dp就是相邻的格子不能选的方案数。如何判断一个二进制数没有两个连续的1? x&(x如果有的数没有出现过,就以它为左上角元素再构造一个矩阵。这是怎么想到的?!!#include#include#include#include#include#define ll long lo

2015-11-16 10:40:25 452

原创 bzoj 2054 疯狂的馒头

想到了要用一种东西维护下一个没被染色的是什么东西,但是没想到是并查集。这道题就相当于在每一个集合里的数都会跳到一个相同的点,就相当于并查集的代表元素。如果将一个点染色,就把它的父亲设为i+1,这样并查集的代表元素就是下一个没有被染色的点。#include#include#include#include#include#define ll long long#define inf 1e9#defin

2015-11-16 10:40:22 354

原创 bzoj 2121 字符串游戏

BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删除,如果删除,则将删除后L分裂成的左右两部分合并。举个例子,L='abcdefg' , S={'de'},如果BX选择将'de'从L中删去,则删后的L='abcfg'。现在BX可以进行任意多次操作(删的次数,顺序都随意),他想

2015-11-16 10:40:20 850

原创 bzoj 1049 数字序列

首先将最长上升子序列转化为不下降,做出第一问。由于是随机数据,感觉可以转移到每个数的数个数不会太多,所以暴力就行了然后有一个性质,如果从j转移到i的话,那么中间一定有一个k(k>=j&&k开始wa了好几发,问题分别是(1)dp[i]维护的是所有数都变成小于等于i的值的答案,而最优解不一定是这样。用到了一个很常用的东西,找一个超级终点作为转移的末端(2)没有考虑好a[i]是负数的情况。#includ

2015-11-16 10:40:17 470

原创 bzoj 2669 局部极小值

bzoj 2669 局部极小值有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次。如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值。给出所有局部极小值的位置,你的任务是判断有多少个可能的矩阵。有一个和dp求n的排列中有k个逆序对的方案数一样的转化从小到大放数,那么如果一个是局部极小值的格子没有被放数,那么周围都不能放数。由于最多有8个位置是局部

2015-11-16 10:40:14 859

原创 bzoj 3743 kmap

这道题首先找出来虚树,算出虚树的边的总长。这样虚树内的点的答案就是总长*2-虚树中距它最远点的距离。然后距它最远点的距离是直径上的点。虚树外的点就是找到距它最近的虚树内的点的答案加上这个距离。开始的时候我按照奶牛集会的那道题写了。#include#include#include#include#include#define ll long long#define inf 1e9#define ep

2015-11-16 10:40:11 643

原创 dp专题训练

说最近模拟赛的状态不太好噢,总是犯一些从未出现过的奇奇怪怪的错误。还是自己太弱了。bzoj 3743 kmap这道题首先找出来虚树,算出虚树的边的总长。这样虚树内的点的答案就是总长*2-虚树中距它最远点的距离。然后距它最远点的距离是直径上的点。虚树外的点就是找到距它最近的虚树内的点的答案加上这个距离。开始的时候我按照奶牛集会的那道题写了。bzoj 2669 局部极小值有一个n行m列的整数矩阵,其中

2015-11-16 10:40:09 560

原创 bzoj 1060 时态同步 水题?神题?

一看好水-》敲完Wa-》一个小时没看出错-》数据错了此题的f要开int,因为标程开的int,然而ans要开long long#include#include#include#include#include#define ll long long#define inf 1e9#define eps 1e-10#define md#define N 500010using namespace std;

2015-11-16 10:40:06 385

原创 练贪心!贪心!贪心!

今天模拟赛好水的一道贪心还想了半天,所以我要练!练!练!bzoj 1052 覆盖用三个等大的正方形覆盖所有点,使正方形边长最小二分边长,贪心判定:用一个最小的矩形覆盖所有点,则第一个正方形的一个顶点一定是矩形的一个顶点,第二个正方形在剩下的点中这个性质依然成立。#include#include#include#include#include#define ll long long#define i

2015-11-16 10:40:03 632

原创 bzoj 3175 攻击装置 | 二分图最大独立集

显然日字是从黑点到白点,所以黑白染色做独立集就行了。注意连边的时候要让它先和位于它下面的点匹配,因为下面的点未匹配的概率更大,dfs的深度也更小。我开始先匹配的上面的点,t了。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#defi

2015-11-16 10:40:01 377

原创 bzoj 3032 七夕祭 | 中位数

显然行和列的交换是独立的。无解就是没办法均分。然后就变成了那年直升生面试的题了,给定一个圈,每个人可以给左右两个人分东西,问给出东西的最小值。然后是白书P5的模型。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 2

2015-11-16 10:39:58 688

原创 bzoj 2594 水管局长 | LCT | 最小生成树

将所有操作逆序,删边就成了加边,做LCT维护最小生成树即可。把边i表示成点i+n,那么加一条边x,y就相当于link(x,i+n) link(y,i+n) 删边同理。我的release写成了“上放标记”了 TAT#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#de

2015-11-16 10:39:55 577

原创 bzoj 3706 反色刷 | 一笔画

首先,对于一个连通子图,如果存在一个方案把所有边都变成白色,这个方案一定可以只经过黑边。然后对于每一个子图,就是小时候玩的一笔画了。一个一笔画存在回到原点的方案当且仅当所有点的度数都是偶数,这样就可以判定可行性,如果可行,答案就是有黑边的极大连通子图个数。#include#include#include#include#include#define md#define ll long long#d

2015-11-16 10:39:53 616

原创 bzoj 3108 图的逆变换

可以发现,不存在合法方案当且仅当存在边1->2,3->2,2->4,但是不存在边3->4我一直在想在现有图上一个一个加边如何判定可行性,想偏了#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 330using nam

2015-11-16 10:39:50 362

原创 bzoj 2660 最多的方案 | 斐波那契数列

用一个二进制串表示一个合法的方案,其中第i个数表示第i个斐波那契数是否选。例如16表示可以是001001 3+13001110 3+5+8110001 1+2+13110110 1+2+5+8可以看出,由贪心找出的3+13转化为其它合法方案就是当前位变成0,它左边的两个0变成1。每两个1之间的0互相独立,即不可能13分裂出的1到3的前面。于是f[i][0/1]表示贪心得到的第i个斐波那契数是否选,

2015-11-16 10:39:48 781

原创 bzoj 1187 神奇的游乐园 | 插头dp

很久以前写过一次,现在用hash再写一遍。打重变量名了。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 5010using namespace std;int a[110][10];struct ha{ int s

2015-11-16 10:39:45 392

原创 bzoj 2173 整数的lqp拆分 | dp | 找规律

这道题样例解释似乎有问题?f[1]=1 f[2]=1 f[3]=23=1+1+1 ->1*1*1=13=1+2->1*1=13=2+1->1*1=13=3->2=2为此纠结了好久…… 得出方程 dp[i]=sigma(dp[j]*f[i-j])#include#include#include#include#include #define md 1000000007#define ll long

2015-11-16 10:39:43 642

原创 poj 2411| 插头dp

经典题: 用1*2的木板铺满n*m的矩形的方案数。做一下插头dp的模板。0表示这个位置不可以放木板(也就是已经放上了木板),1表示这个位置可以放木板(也就是没放木板)。转移有两种1.当前位置上方的格子如果没放,那么在这个格子放竖着的,如果放了,什么也不放2.当前位置上方放了,左面没放,那么可以放一个横着的。//别看代码长,大部分都是哈希表(虽然这道题用不到,以后呢?)#include#includ

2015-11-16 10:39:40 512

原创 bzoj 2660 最多的方案 | dp

首先我们要把n分解为斐波拉契数的和,这里用贪心最大分解即可。保存的是斐波拉契数列的序列号。 比如9就分解为1,8序列号为1,5 然后我们注意到其实序列号n,n+1和n+2的分解是一样的,用二进制表示就是110和001是一样的。接着我们可以看到,比如1000000这里表示的是数字21贪心后用二进制表示的分解方案,那么他不同的分解方案就有 0110000 0101100 0101011 这里我们看到有

2015-11-16 10:39:37 380

原创 bzoj 3170 松鼠聚会 | 旋转坐标

这道题大意是选定一个点,使其它点到它的距离sigma(dis=max(x-x0,y-y0)) 最小。做法是旋转坐标,横纵坐标分开统计每个点的答案,取最小值。启示:以前知道旋转坐标可以将dis=abs(x-x0)+abs(y-y0)的◇区域变成一个dis=max(x-x0,y-y0)的正方形区域,这道题让我知道了逆着做也是可以的。以后做坐标+距离的题都多想一想旋转坐标吧。问题:想到了之后,速敲了一个

2015-11-16 10:39:34 361

原创 bzoj 1537 bus|cdq分治

一看就知道是离散化+j排序降维+线段树(树状数组)求前缀最大值炜神看到了这道题,吼道一定有不用数据结构的方法,我又想了一天,确实有。然后cdq分治被我大材小用了。想到cdq应该就能yy出来了,可是快排依赖症的我归并调了好久。#include#include#include#include#include#define md#define ll long long#define inf (int)

2015-11-16 10:39:32 409

原创 bzoj 2257 瓶子和燃料

首先能证明能倒出的最小值是这k个数的最大公约数。 好像是一个叫裴蜀定理的东西,说的是扩展欧几里德原理对于n个数同样适用。然后处理出每个数的约数,找最大的出现k次的元素。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N

2015-11-16 10:39:29 466

原创 bzoj 3398 牡牛和牝牛

牝(pin 4声) 母的意思。牡(mu 3声) 公的意思。看到这些字我直接愣了,其实放在牝鸡司晨和牡蛎这两个词里我绝对能认出来。(是不是该去颓语文了?)这道题f[i]表示最后一个是公牛的方案数,=sigma(f[j])(j问题是hzwer用了奇怪的排列组合。这道题可以用隔板法,设abcd是放公牛的位置,那么a,b-k,c-2*k,d-3*k单调递增,可以用隔板法解决。再想一想那个可以重复位置放的隔

2015-11-16 10:39:26 2034

空空如也

空空如也

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

TA关注的人

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