自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CHN_JZ的博客

while(!die) is_a_oier();

  • 博客(27)
  • 收藏
  • 关注

原创 [暴力]HDU 4473——Exam

题目梗概求正整数a,b,c,a*b*c<=n的方案数。解题思路这题的数据有点水

2017-07-31 16:12:57 504

原创 关于二分图的姿势

二分图最大匹配求二分图最大匹配常用简单算法为匈牙利算法。交错轨:从二分图右边的某个没有匹配的点,走出一条“一条没被匹配、一条已被匹配、一条没被匹配、……、一条没被匹配”交替出现的路径。大致思路:每次从一个还没有匹配过的点开始寻找交错轨,然后将路径上匹配的边和没有匹配的边反向,这样可以使匹配数加一,直到找不到为止。下面介绍二分图匹配的一些运用:解决最小边覆盖、最小路径覆盖、 最小

2017-07-30 12:10:25 603

原创 [数学+枚举]BZOJ 4921——互质序列

题目描述现在给定一个长度为n的序列,你需要从中删除一个非空连续子序列,使得剩下至少2个数,令E为剩下数的最大公约数的期望值,S为合法的方案数,请计算E*S的值。因为这个值可能非常大,请对998244353取模输出。解题思路最后答案是E*S,所以跟概率没有毛线关系,答案就是所有gcd情况的加和。 因为是删除一个连续的子序列,所以剩下的数肯定是一段前缀和一段后缀的gcd。 其次我们知道前缀或后缀的g

2017-07-28 22:29:02 1178

原创 [并查集+启发式合并]BZOJ 2733——[HNOI2012]永无乡

Ps:又水听博主解释一下:昨天模拟赛遇到启发式的裸题,愣是打成左偏树的合并,惭愧惭愧。于是今天找到裸题练习一下。题目梗概有n个节点,每个节点有一个独一无二的权值。 合并一些节点。 询问一个节点所在联通块的权值第k大的节点,不存在则输出-1。解题思路什么SB题 这显然是平衡树的一道模板题,并且涉及到启发式合并。 启发式合并听着高大上其实是非常暴力过程。 当两棵平衡树合并时,把节点数较少的平衡

2017-07-28 14:31:53 769

原创 [霍尔定理]「2017 山东一轮集训 Day2」LOJ 6062——PAIR

什么是霍尔定理这是关于二分图的一个非常重要的定理。 但是博主今天第一接触,真不愧是蒟蒻。 主要内容: 设M(U1)M(U1)为与U1U1中的点相连的点集,一个二分图U,V(|U|<=|V|)U,V(|U|<=|V|)存在完美匹配,满足对于任意点集x∈Ux∈U都有|M(X)|>=|X||M(X)|>=|X| 感谢法老学长的PPT。题目梗概给出一个长度为 n 的数列a和一个长度为m的数列b,求a

2017-07-26 22:15:47 3380

原创 [二分图匹配] [NOI2009] BZOJ 1562——序列变换

题目梗概对于N个整数0~N-1,对于每个数i,求字典序最小序列Ti,满足Ti都是0~N-1不重复的数,且dis(i,Ti)=Didis(i,Ti)=Di,其中dis(i,Ti)=min(|i−Ti|,N−|i−Ti|)dis(i,Ti)=min(|i-Ti|,N-|i-Ti|),D为给定序列。不一定存在解 1≤n≤100001≤n≤10000解题思路题目对最后的答案有一个限制条件,显然满足这种条件

2017-07-26 21:52:29 545

原创 [左偏树]CODE[VS] 1063——合并果子

Ps:博主又来水blog辣题目梗概不需要了吧。 二叉哈夫曼树。解题思路直接上代码 今天复习堆QuQ,额、 于是很想码左偏树,发现竟然没有水左偏树的blog,所以来一发不要建议。 看到CODE[VS]有道合并果子++,数据大了100倍,那只能用单调序列了。#include<cstdio>#include<algorithm>using namespace std;const int ma

2017-07-25 11:33:49 589

原创 [树状数组]code[vs] 1082——线段树练习 3

ps:博主又A这种水题显然是为了水blog有新姿势。题目梗概区间加,询问区间和。解题思路什么垃圾,直接线段树。 树状数组也可以区间加的啊,代码短小,常数小。 当然与普通树状数组有所不同。 设a[i]=w[i]−w[i−1]a[i]=w[i]-w[i-1],这样修改区间[L,R][L,R]显然只需要修改a[L],a[R+1]a[L],a[R+1],[1,x][1,x]的

2017-07-24 14:55:58 564

原创 [拓扑+LCA]BZOJ 2815——[ZJOI2012]灾难

Ps:八中上这题还没有题目描述,这是要靠OIerYY的节奏吗QuQ题目梗概给定一个DAG。 DAG表示的意思就是x吃y(就像一张食物网),求第i种生物灭绝后有多少生物跟着灭绝。 数据范围:模拟肯定是过不了的啦。解题思路从食物网的最低端生物开始考虑,因为其是生产者,所以我们可以假设一个有个节点叫做太阳(没有太阳所有生物都会挂QAQ),然后我们构造一棵树,这棵树上的每个节点的fa是如果要灭绝这个生物

2017-07-24 11:01:35 534

原创 [状态压缩||折半搜索]51nod 算法马拉松3 A

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-07-17 22:01:40 783

原创 [高斯消元]BZOJ 1013 [JSOI2008]——球形空间产生器sphere

1013: [JSOI2008]球形空间产生器sphere题目描述  有一个球形空间产生器能够在n维空间中产生一个坚硬的球体。现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产生器。  解题思路   这个n维球的球心为O1O2O3…On。 因为所以点在球面上,所以点到球心的距离显然是相等的,通过

2017-07-14 21:44:21 800

原创 浅谈高斯消元

高斯消元解一个n元的一次方程组,显然解这样的方程组我们需要得到n个方程。大致思想就像初中的时候解二元方程一样,先将所有方程某同一元前面的系数化为相同系数,抵消后只剩下n−1n-1个方程和n−1n-1个系数,当我们发现消到只剩一个元的时候显然可以直接求出,然后回代到两元的方程中,继续向多元回代直到解出nn个元。 操作过程十分简单,但是不难发现存在非常严重的精度问题。基本过程把方程组的系数和值转换为一

2017-07-13 19:06:03 723

原创 SPOJ ACPC13——Increasing Shortest Path

题目传送们题目梗概给出一个有mm条边(有边权)nn个点的有向图。 给出QQ个询问ai,bi,ciai,bi,ci,询问aiai到bibi边数不超过cici的路径和的最小值,且要求该路径上的边权递增。解题思路因为有边权递增的限制,不难想到把所以边排序之后一条条插入。 考虑一个数组f[i][j][k]f[i][j][k]表示从ii到jj的路径经过边数为kk的最小值。 以每个节点为起点来考虑这个问题

2017-07-12 17:18:56 659

原创 [bitset]BZOJ 3687——简单题

题目梗概给定nn个数字,求所有区间和的异或值。解题思路我首先想到的就是一个动态规划,f[i]f[i]表示加和为i出现的次数。 我们考虑加入xx,那么可以得到f[i+x]=f[i+x]+f[i]f[i+x]=f[i+x]+f[i](分别表示x取或不取的情况) 因为最后需要我们求异或值,一个数异或两次等于没有异或,所以我们可以把f[i+x]f[i+x]和f[i]f[i]异或起来(因为异或就是不进位的

2017-07-11 19:07:16 519

原创 [差分约束]POJ 1201——Intervals

题目梗概给定n个要求,在[ai,bi]的区间里必须要有ci个数。 求最少需要的数字个数。解题思路构造前缀和s[i]。题目要求为s[bi]-s[ai-1]>=ci,马上联想到差分约束。 构造ai-1->bi的边边权为ci。 因为要求答案最小,显然要刷最长路。 不要忽略题目中内在的条件,s[i+1]-s[i]<=1 —> s[i]-s[i+1]>=-1,s[i+1]-s[i]>=0。 因为

2017-07-11 14:10:27 506

原创 [差分约束]POJ 3159——Candies

题目概述有nn个数,给定mm个约束条件,类似xi−xj<=kxi-xj<=k。 使最大差值最大。解题思路不难看出这是一道差分约束的问题。 因为要使最大差值最大,所以先给任意一个值0,其他数给INFINF,刷最短路。 但是zzkdalaozzkdalao告诉我POJPOJ这题卡SpfaSpfa的,于是我写了Dij+heapDij+heap。#include<cstdio>#include<cs

2017-07-11 10:49:20 548

原创 [LCT]BZOJ 2002——[Hnoi2010]Bounce 弹飞绵羊

2002: [Hnoi2010]Bounce 弹飞绵羊题目描述某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹

2017-07-10 15:35:19 979

原创 [tarjan+bitset]BZOJ 2208——[Jsoi2010]连通数

2208: [Jsoi2010]连通数题目描述解题报告这题的题目描述非常清晰,看到网上有dalao用bitsetbitset优化FloydFloyd就过了。博主用tarjantarjan缩点然后用bitsetbitset优化传递闭包就可以。但是看到很多人缩点完刷拓扑啊,其实这个操作很鸡肋。学过2−sat2-sat应该有所了解,拓扑序就是tarjantarjan刷出来的sccscc序(画个图就知道了)

2017-07-07 16:28:20 733 1

原创 [DP]LOJ NOI Round #1——接竹竿

题目描述一天,神犇和 LCR 在玩扑克牌。他们玩的是一种叫做“接竹竿”的游戏。游戏规则是:一共有 n 张牌,每张牌上有一个花色 c 和一个点数 v,花色不超过 k 种。将这些牌依次放入一列牌的末端。若放入之前这列牌中已有与这张牌花色相同的牌,你可以选择将这张牌和任意一张花色相同的牌之间的所有牌全部取出队列(包括这两张牌本身),并得到与取出的所有牌点数和相同的分数。现在已知 LCR 把这 n 张牌放入

2017-07-07 14:01:30 1616 1

原创 [bitset] POJ 2443——Set Operation

题目传送门博主又来水blog啦 博主上一篇blog好像有提到这个bitset,其实那是博主并不是很懂,所以向Matchperson学习了这个操作。题目概述给定nn个集合。 在提出QQ个询问,询问x,yx,y在nn个集合中出现的集合有交集。解题思路读入的时候标记一下,然后并起来判断有没有1。 所以就可以bitset乱搞。 bitset大法好啊。#include<cstdio>#include

2017-07-07 08:43:15 646 1

转载 bitset简介

原blog链接作用stl黑科技之一bitset,是可以自定长度的“二进制数”(当然可以充当bool使用)。可以让时间复杂度除以32或64,比如O(1e9)O(1e9)的程序除以32就变成O(3∗1e7)O(3*1e7),暴力变标程!底层实现底层实现挺简单的吧,就是把unsigned int(unsigned long)或者unsigned long long用来充当32(64)个二进制位,从而让复杂

2017-07-07 07:55:11 981 1

原创 一道值得分享(interesting)的题目

ps:前几天,博主不知道通过什么方式拿到了一个题目。题目梗概给你一个n∗nn*n的矩阵,要求判断其是否满足一下要求: 1对于任何ii满足.a[i][i]=0a[i][i]=0 2.对于任何i,ji,j满足a[i][j]=a[j][i]a[i][j]=a[j][i] 3.对于任何i,j,ki,j,k满足a[i][j]<=max(a[i][k],a[j][k])a[i][j]<=max(a[i][

2017-07-06 21:44:37 1038 1

原创 [2-sat]POJ 3683——Priest John's Busiest Day

题目传送门题目概述安排n个婚礼是这n个婚礼没有时间相交。 每个婚礼有2个安排时间段。解题思路不难看出这题是一道求2-sat任意解问题。 如果时间段i,ji,j相交,则有i−>j′i->j'j−>i′j->i' 如果看不懂上面这句话点这里接下来用tarjan缩点是毋庸置疑的,因为如果你选择了ii则所有与ii处在同一环上的点都要被选择。接下来就是如何求答案的问题。 网上有介绍刷拓扑然后染色。

2017-07-04 22:17:05 837 2

原创 [二分+2-sat]Hdu 3622——Bomb Game

题目传送门题目概述在一个无限大的平面里画n个圆。 每个圆有2个待选的放置位置。 限制条件为圆不相交,求最小半径的最大值。解题思路显然如果R满足限制条件,那么任意r(r<<R)肯定满足限制条件,想到用二分枚举答案。 接下来考虑如何验证。 不难发现这是一个2-sat问题。 假设位置i,ji,j以当前最小半径做圆相交,显然可以得到i−>j′i->j' j−>i′j->i' 如

2017-07-04 21:49:04 800 1

原创 关于树状数组的姿势

Q:博主为什么突然会来一个这么SB的算法。 A:当然是为了水一篇博客辣 有什么新发现,顺便补上我欠树状数组的一篇总结。树状数组树状数组作为一种数据结构,相比其他数据结构代码清晰简单,这里就不再阐述,它可以用来解决求前缀极值或区间和,并支持插入一个数和区间增减。(来自蒟蒻的)新姿势今天参加了某高校的模拟赛,看当场rank1的代码…… 一个小时后…… 谁来恭喜我发现了一个很有用 (鸡肋)的姿势。当

2017-07-03 19:01:02 560 1

原创 [2-sat]HDU 1814——Peaceful Commission

题目传送门题目概述有n个党派,每个党派有两名成员且必须派出一名成员参加和平会议,给出m个不合的人,求字典序最小的方案。解题思路裸的2-sat,假设每个党派有成员A,BA,B,如果有AA和A′A'不合,则可以推出A−−>B′A-->B'A′−−>BA'-->B −−>-->表示选择前者就必须选择后者,显然也是这么建边的。 因为要求字典序最小的方案,所以O(NM)刷了。#include<cstdio

2017-07-02 21:07:36 512 1

原创 [最大流]BZOJ 1066——[SCOI2007]蜥蜴

1066: [SCOI2007]蜥蜴题目描述  在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果该石柱原来高度为1,则蜥蜴离开后消失。以后

2017-07-02 19:05:39 545 1

空空如也

空空如也

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

TA关注的人

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