
-------------各大网站-------------
CHN_JZ
爆0 forever
展开
-
[组合数学]BZOJ 1008——[HNOI2008]越狱
#1008: [HNOI2008]越狱题目描述---- 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。原创 2017-06-27 20:31:13 · 1081 阅读 · 0 评论 -
[Trie]BZOJ 4896——[Thu Summer Camp2016]补退选
4896: [Thu Summer Camp2016]补退选题目大意给定n个操作。 如果k=1,加入一个字符串S。 如果k=2,删除一个字符串S。 如果k=3,查找最早什么时候以字符串S为前缀的字符串数超过(a∗|ANS|+b)(a*|ANS|+b)%c,ANSANS是上一次查找的答案。解题思路不难想到维护一棵Trie树,但是对于每个节点不仅要维护出现次数,还要开一个数组记录每个出现次数最早达原创 2017-06-29 14:29:46 · 773 阅读 · 1 评论 -
欧拉筛——线性筛素数和欧拉函数
欧拉筛(线性筛)ps:以下内容来自一个蒟蒻,如果有错误请各位大佬指出。 先来看下我以前用的埃氏筛法for (int i=2;i<=n;i++) if (!vis[i]){ for (int j=i+i;j<=n;j+=i) vis[j]=1; p[++p[0]]=i; }这种写法显然会将一个数挖去多次,效率显然不是线性的,有dalao指出是O(nlog2n)O(nlog^2 n原创 2017-06-30 09:28:39 · 1706 阅读 · 1 评论 -
[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 · 1037 阅读 · 0 评论 -
[并查集]BZOJ 1050——[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf题目描述给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出这个比值,如果需要,表示成一个既约分数。 备注: 两个顶点之间可能有多条路径。解题思路非常水的题目,为什么我原创 2017-06-30 13:44:30 · 2242 阅读 · 2 评论 -
最小费用最大流总结
最小费用最大流在费用流的图上,边不仅有流量还有权值。 最小费用最大流就是在最大流不唯一时,求权值最小的方案,其基本思想就是在最大流的基础上考虑费用最小。解决这种问题的操作可以描述为多次迭代的过程,下面来介绍解决这种问题的一种方法——Spfa增广。Spfa增广基本思想是:从零流为初始可行流开始,在每次迭代过程中对每条边赋予与cap(容量)、w(单位流量运输费用)、flow(现有流的流量)有关的权数d原创 2017-06-06 22:09:18 · 2100 阅读 · 1 评论 -
[中国剩余定理]Hdu 1573——X问题
题目传送门 这道题给出了多个同余方程,所以马上联想到中国剩余定理。中国剩余定理求解同余方程组的算法。 设m1,m2,…,mr两两互质,N=m1*m2*…*mr。 考虑方程组的特殊解: X≡0(modX≡0 (mod m1)m1) … X≡1(modX≡1 (mod mi)mi) … X≡0(modX≡0 (mod mr)mr) 由于所有mi互质,所以x=(N/mi)*y等价于(N原创 2017-06-04 21:45:31 · 606 阅读 · 2 评论 -
二分图最佳完美匹配——KM算法总结
KM 算法求解二分图最佳完美匹配的算法。 先来看一道例题Hdu 2255。 显然是KM的裸题。假设我们要匹配集合X和Y的点,先给每个点一个顶标Lx和Ly。 为什么要给顶标? 首先顶标是我们限制边的一个条件,我们走过的边一道要满足dst[i][j]==Lx[i]+Ly[j],其次所有顶标的加和就是我们答案,我们肯定希望顶标的加和越大越好,所以Lx的初值给的就是连向Y集合所有边的最大值,那么Ly原创 2017-06-03 21:14:24 · 3124 阅读 · 0 评论 -
BZOJ 2523 [Ctsc2001]聪明的学生
2523: [Ctsc2001]聪明的学生题目大意有三个人A,B,C头上分别贴着三个正整数,显然对于任意一个人只能看见其他两个人头上的数字。存在两个数的加和等于另一个,这时候询问A是否知道头上贴着什么数字,在询问B,询问C……直到第n次询问一个人回答出来是m。假设这三个人很聪明,都能以最小的询问次数回答出头上的数字(如果可以)。给定多组n,m求所有可能情况。解题思路题目中有个很关键的提示:总是头上贴原创 2017-05-31 07:40:50 · 863 阅读 · 0 评论 -
[BFS+康托展开]Hdu 1043 Eight
题目传送门这道题就是我们耳熟能详的八数码问题,如果写BFS必然涉及到如何判断一个状态是否进队,可以把序列表示成一个9进制的数,用set或者直接hash,但是这样操作效率过低。0~8的排列最多只有9!种排列方式,所以如果我们能很快求出每个序列的大小,那么直接开vis标记就可以了。所以引进了康托展开。康托展开假设我们拿到一个序列是32451,求这个序列的在所有排列中的次序。 其实我们只要确定有几个排列原创 2017-05-26 18:41:20 · 639 阅读 · 0 评论 -
Hdu 3068最长回文——Manacher算法
Manacher算法概念这是一种能够在将近O(n)的时间里求出给定字符串的最长回文子串的算法。思想首先我们知道字符串的长度分奇偶,这对我们考虑问题影响很大,所以在给定字符串的所有字符之间插入一个无关字符(包括首尾),这样对答案没有什么影响,而且字符串的长度都变为n*2+1,是个奇数。 然后定义一个f数组,f[i]表示以i为中心向右/向左扩展的长度(包括i),定义mx,id...原创 2017-05-23 21:22:00 · 748 阅读 · 2 评论 -
POJ 2449 Remmarguts' Date——A*
解题思路本题的题目题目要求就是求给定图的K短路。 在此之前,我只可以求解最短路问题,而学了A*之后就可以求解这一类问题。A*的概念A*是一种广泛用于寻路的算法。之所以其能运用广泛是因为A*效率极高。主要思想就是通过当前最小成本(最小距离或时间)来解决方案。A*的实现过程A*有点类似于spfa,但是A*选择最短的路径是通过函数f(n)=g(n)+h(n)f(n)=g(n)+h(n),其中g(n)是起原创 2017-05-21 21:08:55 · 555 阅读 · 0 评论 -
BZOJ 4720 [Noip2016]换教室——期望DP
4720: [Noip2016]换教室题目描述对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。在可以选择的课程中,有2n节课程安排在n个时间段上。在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室ci上课,而另一节课程在教室di进行。在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的n节安排好的课程。如果学生想原创 2017-05-17 20:55:14 · 656 阅读 · 0 评论 -
[HDU 5618]Jam's problem again——CDQ分治
题目传送门解题思路本题为裸的三维偏序,直接用CDQ分治解。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=100005;struct jz{ int x,y,z,id; bool operator==(const jz&b){return x==b.原创 2017-05-14 21:41:19 · 460 阅读 · 0 评论 -
BZOJ 4443 [Scoi2015]小凸玩矩阵——二分+二分图匹配
4443: [Scoi2015]小凸玩矩阵题目描述 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或同一列,现小凸想知道选出来的N个数中第K大的数字的最小值是多少。 输入 第一行给出三个整数N,M,K 接下来N行,每行M个数字,用来描述这个矩阵 输出 如题 解题思路 看到这样选择方式马上就会想到二分图匹配,但是因原创 2017-05-11 19:33:37 · 730 阅读 · 0 评论 -
BZOJ 2190 [SDOI2008]仪仗队——欧拉函数
题目传送门解题思路 假设原点为(0,0),可以发现对于坐标(i,j),如果满足gcd(i,j)=1,这个点就肯定能看到,所以有2∗∑i=2nphi(i)2*\sum_{i=2}^{n}phi(i)个点肯定满足。然后不要忘记(0,1),(1,0),(1,1)这三个点。#include<cstdio>using namespace std;int n,ans;int phi(int x){原创 2017-05-03 08:10:37 · 576 阅读 · 0 评论 -
主席树——总(mu)结(ban)
以poj2104为例。 主席树就是可持久化线段树,也叫作函数式线段树,然后。。。 该干嘛干嘛,贴代码 我们先考虑每次询问都是对于1~n,我们肯定会想到离散数字,然后建一个线段树,然后寻找。 如果我们能对每个前缀【1~i】(1<=i<=n)都能建一颗线段树,那么遍历的时候不断a[R]-a[L-1]不就好了。 然后主席树就可以做到。为什么呢?因为你会发现相邻的两颗线段树有很多节点是重复的,共用原创 2017-05-01 21:14:33 · 525 阅读 · 0 评论 -
BZOJ 1854 [Scoi2010]游戏——二分图匹配
1854: [Scoi2010]游戏题目描述lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害原创 2017-04-25 23:11:28 · 763 阅读 · 0 评论 -
BZOJ 1878 [SDOI2009]HH的项链——离线+树状数组||莫队算法
1878: [SDOI2009]HH的项链题目描述HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入第一行:一原创 2017-04-23 14:56:25 · 815 阅读 · 0 评论 -
BZOJ 1787 [Ahoi2008]Meet 紧急集合——LCA
1787: [Ahoi2008]Meet 紧急集合原创 2017-04-20 21:18:56 · 429 阅读 · 0 评论 -
BZOJ 1588 [HNOI2002]营业额统计——双向链表
1588: [HNOI2002]营业额统计题目描述营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低原创 2017-04-19 21:32:01 · 655 阅读 · 1 评论 -
BZOJ 1015 [JSOI2008]星球大战——并查集+离线处理
1015: [JSOI2008]星球大战starwar题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被原创 2017-04-16 19:38:42 · 646 阅读 · 1 评论 -
BZOJ 1192 [HNOI2006]鬼谷子的钱袋——水题
1192: [HNOI2006]鬼谷子的钱袋题目描述 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,原创 2017-03-30 19:43:34 · 522 阅读 · 0 评论 -
BZOJ 1036 [ZJOI2008]树的统计——树链剖分
1036: [ZJOI2008]树的统计Count题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节原创 2017-03-30 17:56:39 · 633 阅读 · 0 评论 -
Poj 1741——treap的启发式合并
TreeDescription Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an integer k,for every pair (u,v)原创 2017-03-10 18:47:35 · 1282 阅读 · 2 评论 -
BZOJ 3224 Tyvj 1728 普通平衡树——treap
3224: Tyvj 1728 普通平衡树Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的原创 2017-03-06 20:43:10 · 899 阅读 · 1 评论 -
POJ2274——The Race
The Race描述 During the Annual Interstellar Competition for Tuned Spaceships, N spaceships will be competing. Each spaceship i is tuned in such a way that it can accelerate in zero time to its maximum s原创 2017-03-02 18:26:13 · 818 阅读 · 0 评论 -
POJ1845——等比数列的分治思想
Sumdiv 描述 Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S modulo 9901 (the rest of the division of S by 9901). 题意 给定a,b求a,b的因子和 方法 将a进行质因子分解,变为p原创 2017-02-16 22:30:04 · 692 阅读 · 0 评论 -
[差分约束]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 · 616 阅读 · 0 评论 -
[差分约束]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 · 551 阅读 · 0 评论 -
POJ 1273 Drainage Ditches——最大流
题目传送门 这道题就是裸的最大流,因为各路大神强烈推荐Dinic算法,所以我舍弃EK算法。Dinic 算法Dinic也是一种增广路算法,通过对残量网络进行分层之后用DFS求增广路直到无法增广。 层次图:层次就是起点到每个点的最短路径的长度,只走层与层之间的边,显然可以用BFS求层次图。时间复杂度对于n个点的层次图最多只有n层,所以最多重新建图n次,然后每次增广的效率为O(nm),s所以Dinic原创 2017-05-31 20:49:35 · 983 阅读 · 0 评论 -
[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 · 577 阅读 · 0 评论 -
[最大流]BZOJ 1066——[SCOI2007]蜥蜴
1066: [SCOI2007]蜥蜴题目描述 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果该石柱原来高度为1,则蜥蜴离开后消失。以后原创 2017-07-02 19:05:39 · 628 阅读 · 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 · 592 阅读 · 1 评论 -
[母函数]HDU 1521——排列组合
Holding Bin-Laden Captive!Problem DescriptionWe all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Chin原创 2017-06-11 19:24:55 · 1502 阅读 · 0 评论 -
[母函数]HDU 1085——Holding Bin-Laden Captive!
Holding Bin-Laden Captive!Problem DescriptionWe all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Chin原创 2017-06-11 20:02:43 · 1688 阅读 · 2 评论 -
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 · 710 阅读 · 0 评论 -
斜率优化总结
斜率优化斜率优化是用于优化一些线性DP,主要思想类似于凸包。 下面来看一个例题:HDU 3507 由题意不难想到是DP,也很容易退出转移过程f[i]=min(f[j]+(s[i]−s[j])2)+M(i∈[0,i−1])f[i]=min(f[j]+(s[i]-s[j])^2)+M (i\in[0,i-1]) 但是一看nn的范围马上就萎了,下面来看看用斜率怎么优化。 现将推出的转移方程化简:f[原创 2017-06-13 19:39:40 · 2225 阅读 · 2 评论 -
[斜率优化]BZOJ 1096——仓库建设
1096: [ZJOI2007]仓库建设题目描述 L公司有N个工厂,由高到底分布在一座山上。如图所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L先生决定紧急在某些工厂建立一些仓库以免产品被淋坏。由于地形的不同,在不同工厂建立仓库的费用可能是不同的原创 2017-06-13 20:08:14 · 807 阅读 · 2 评论 -
[斜率优化]BZOJ 1010——玩具装箱toy
1010: [HNOI2008]玩具装箱toy题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一原创 2017-06-13 20:26:54 · 950 阅读 · 2 评论