- 博客(177)
- 资源 (2)
- 收藏
- 关注
原创 hihocoder 1378(有向图求最小割集)
在最大流模板的基础上,求出最小割集题目链接:hihocoder 1378#include#include#include#include #include#include#include#include#include#include#include#includeusing namespace std;#define maxn 20005#define max
2017-04-28 11:25:50 3112
原创 hihocoder 1183(tarjan求缩点和桥)
题目链接:hihocoder 1183利用tarjan模板求无向图的割点和桥。#include#include#include#include #include#include#include#include#include#include#include#includeusing namespace std;#define maxn 20005#define
2017-04-27 12:02:35 480
原创 hihocoder 1185(tarjan缩点)
复习复习tarjan算法题目链接:hihocoder 1185#include#include#include#include #include#include#include#include#include#include#include#includeusing namespace std;#define maxn 20005#define maxm 100
2017-04-26 20:41:56 389
原创 poj3237(树链剖分—边权)
又写了一遍poj3237,回顾了一下树链剖分思想。在我看来是精简了很多代码,但是代码行数不减反增。#include#include#include#include #include#include#include#include#include#include#include#includeusing namespace std;#define maxn 1000
2017-04-26 16:36:32 402
原创 hdu 4622 Reincarnation(后缀树组求子串个数)
题意:求字符串任意区间子串个数。思路:首先对整个字符串求一次sa[]以及height[],之后对于任意区间[L, R],遍历一遍sa[],只要起点在[L, R]内的后缀就需要进行统计法,不过有一个地方要特别注意的就是全部的sa[]不一定就是区间内的sa[],这是因为区间内的后缀比较时有额外的长度限制。可以证明遍历的过程要遵循如下的规则:后缀s1和后缀s2现在是两个待比较的后缀,
2015-11-07 12:13:41 594
原创 uva 1401Remember the Word(trie树+dp)
题意:给一个由s个单词组成的字典和一个长字符串。把这个字符串分解成若干个单词的连接(单词可重复使用),有多少种方法?思路:令d(x)表示从字符i开始的字符串(即后缀s[i....L])的分解方案数,则d(i)=sum{d+len(x) | 单词x是s[i...L]的前缀}。 所以可以先把单词写入trie树,然后从从后往前在长串的每个位置找前缀即可。#include#i
2015-11-07 12:05:20 380
原创 计算客444 (2015计蒜之道 京东的物流路径)
题目链接作为一个电子商务为主体的公司,京东一直努力实现自己“多、快、好、省”的承诺。其中,“快”的特质更是被京东发挥到了极致。京东建立了一个非常高效的物流网络,物流网络构成了一个树结构,由很多的物流点和将物流点连结起来的道路组成。京东物流网络中每个物流点有一个权值 di,物流点间的道路也都有一个权值 wi。对于一条物流网络中的路径,令路径上所有物流点权值 di 的最小值为 mi
2015-10-13 17:41:04 1361 1
原创 bnuoj 24258 Journey(lca倍增法 弱校联萌十一大决战之背水一战J)
题目链接题意:在一棵n个节点的树上,每条边有权值,x->y的路径长度为路径上权值相加。现在在树上添加一条u->v的边,问q个询问两点间的最短路径长度是否减少,减少了多少。思路:添加边之前,任意两点间的路径长度可通过倍增法求LCA在logn的时间求出,现在加了一条新边用同样的方法强行通过新边进行比较即可。
2015-10-09 15:12:48 450
原创 bnuoj 39566 Do use segment tree(树链剖分)
题目链接给一棵树,有两种操作:1 将a->b路径上的点权值改为c;2 求a->b路径上的最大连续区间和。思路:树链剖分。通过不断合并区间,维护区间最大左区间和、最大右区间和、区间最大连续和、区间和即可。//#pragma comment(linker, "/STACK:10240000000,10240000000")#include#include#include#i
2015-10-06 17:09:14 397
原创 poj-5497
题目链接题意:你有一个序列\{a_1,a_2,...,a_n\}{a1,a2,...,an},然后你可以删除一个长度为mm的连续子序列. 问如何删除才能使逆序对最少.//#pragma comment(linker, "/STACK:102400000,102400000")#include#include#include#include #in
2015-10-06 16:49:04 343
原创 hdu-5489(2015网络赛合肥赛区)***
题目链接题意:给定一个长度为N=105的序列 求删去连续长度为0=L=N的序列后的LIS思路:假设你已经会O(nlogn)的LIS, 删去i 前面连续一段长度为L 即[i−L,i-1]的 序列, 左边是i−L−1, 右边是i, 求剩下的LIS 首先预处理出: f[i]:=以a[i]结尾的LIS的最大长度 g[i]:=以a[i]开头的LIS的最大长
2015-09-30 19:34:44 500
原创 hdu-4812(树分治 点权)
题意:给出n个点的树,每个结点有权值,求一条路径,使得路径上点的乘积对1e6+3取模的结果为K。思路:树上的基于点的分治,如何计算乘积为K的路径呢?对于每个分支的点,计算从根节点到当前点的乘积x,然后利用逆元可以算出y=K*x^(-1),然后通过hash去查找y的值是否出现过即可,逆元可以用扩展欧几里得预处理出来,对于相应的值要标记最小能得到它的点,边搞边去更新ans就行了。注意:为了防止
2015-09-30 13:36:45 470
原创 hdu 3555(数位dp入门)
题意就是求从整数1到N中有多少个含有“49”的数? 比如N=500,那么 "49","149","249","349","449","490","491","492","493","494","495","496","497","498","499",dp[i][1]=dp[i-1][0]; //在不含49的情况下高位加9dp[i][2]=dp[i-1][2]*10+dp[i-1][1];
2015-09-29 21:39:52 453
原创 poj-1741(树分治 点权)
题目链接思路: //#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include #include#include#include#include#include#include#include#includeusing na
2015-09-29 19:10:35 373
原创 poj 1091-跳蚤(数论+容斥)
题目链接题意:可转化为已知N+1个数,x1, x2, .. xn, m;使得gcd(x1, x2, ..., xn) = 1的解的个数(xi思路:m^n为所有不同序列个数,然后减去公因数>1且为m的素因子的解数,通过容斥原理思想,答案为ans=m^n-(奇数个m的素因子相乘作为公因子的n元组)+(偶数个m的素因子相乘作为公因子的n元组)。公因数为d的n元组,每个位置上有
2015-09-28 16:39:13 485
原创 2015网络赛北京赛区G题(bfs+预处理)
题目链接题意:给n个不同大小的盒子,小盒子可以叠在大盒子上,每次可向左或右相邻的位置移动该位置最顶的盒子,求使所有盒子从小到大有序所需最少移动次数。思路:从终态bfs爆搜预处理出到达所有状态需要的步数。#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include
2015-09-21 13:56:52 467
原创 hdu-5442(后缀数组,2015网络赛长春赛区)
题目链接题意:给一个字符串,可以将其旋转,求旋转后的正或反方向字典序最大,如abca 正方向最大为 caba,反方向最大为cbaa,所以最大为cbaa。对于结果下标越小越好,相同下标优先选正方向。思路:后缀自动机,对于正向,将串复制为两倍,用后缀数组得出最大后缀位置即可;对于反向,先将串翻转再x2,然后通过后缀数组得出的最大后缀位置为下标最大的字典序最大串,然后通过height数组>=le
2015-09-15 15:13:56 486
原创 cf 577B
B. Modulo Sumtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a sequence of numbers a1, a2, .
2015-09-11 11:11:50 2940
原创 hdu-5429(大数java练习)
题目链接题意:输入n个大数,判断是否为等比数列。思路:大数+等比数列性质,a[i]*a[i]=a[i-1]*a[i+1]。import java.io.*;import java.util.*;import java.math.*;public class Main { public static void main(String []arg){ Scanner cin=n
2015-09-08 13:24:46 386
原创 cf 575H Bots
H. Botstime limit per test1.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputSasha and Ira are two best friends. But they aren
2015-09-07 20:15:07 1024
原创 hdu-5430
题目链接题意:在一个圈里从一个点出发,求反射n次回到起始点的方法数。思路:既约分数,即分子分母互质的分数,如果不是既约分数的话相当于同一种反射方案循环多次。//#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include #include #i
2015-09-06 13:28:52 596
原创 hdu-3436 Queue-jumpers(伸展树)
题目链接伸展树讲解题意:一串数字,有三种操作:Top x 将x移至数列首;Query x 询问x的位置;Rank x 询问位置x的数。思路:伸展树。top操作需要先删除再插入;rank操作根据size和节点代表的区间长度(len)二分查找;query操作先将x旋转至根,然后根据size+1便为答案。需要注意的是,数据范围大,需离散化,所以对于top和query询问的
2015-09-04 19:19:02 293
原创 573B - Bear and Blocks
B. Bear and Blockstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputLimak is a little bear who loves to play.
2015-09-01 17:23:48 790
原创 cf Div#317 Lengthening Sticks
A. Lengthening Stickstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given three sticks with positi
2015-08-26 21:24:21 496
原创 SPOJ COT Count on a tree(树上路径第k小 主席树)
题意:求树上A,B两点路径上第K小的数分析:同样是可持久化线段树,只是这一次我们用它来维护树上的信息。我们之前已经知道,可持久化线段树实际上是维护的一个前缀和,而前缀和不一定要出现在一个线性表上。比如说我们从一棵树的根节点进行DFS,得到根节点到各节点的距离dist[x]——这是一个根-x路径上点与根节点距离的前缀和。利用这个前缀和,我们可以解决一些
2015-08-26 15:57:43 782
原创 zoj-2112(主席树动态求区间第k小数)
总算是把动态求区间第k个数的算法看明白了。在主席树的基础上,如果有修改操作,则要通过套树状数组来实现任意区间求第k小的问题。刚开始看不明白什么意思,现在有一点理解。树状数组的每个元素是一个线段树,来维护修改后的前后缀和,树状数组能在log时间内更整个数组,现在用相同的方式更新整个线段树数组,每次更新一个点时,要更新这个点代表的整个线段树。同样的,求和时用一个use数组记录所要更新的点的下标
2015-08-25 19:30:14 2431 1
原创 poj-2104(主席树)
主席树,函数式线段树。新建的线段树相对前面的改变较少,建树时便可充分利用与前面重叠部分的空间,在新加入节点时便只需开辟需要改变的树节点。第i个线段树代表了原数列前i个数的存储,所以在求解原数列任意l~r区间的第k小值问题时,通过sum[r].l-sum[l].l的值与k比较即可知道该值在左或右区间,逐步缩小区间便可。很好的数据结构。题意:给一段序列和m个询问,问l~r区间的第k小数
2015-08-25 15:11:55 391
原创 HYSBZ-2243(树链剖分)
染色Time Limit:20000MS Memory Limit:524288KB 64bit IO Format:%lld & %lluSubmit Status Practice HYSBZ 2243Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;
2015-08-22 17:44:50 310
原创 hdu-3966 Aragorn's Story(树链剖分,点权)
给一棵树,有三种操作:Q a 查询树节点a上的值;I a b c 将树上a->b路径上的节点值+c;D a b c 将树上a->b路径上的节点值-c(和第二种一样);//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include #include#inc
2015-08-22 14:51:55 808
原创 poj-3237(树链剖分)
对树有三种操作:Q~ a b 询问a~b路径的最大值;N~ a b 对a~b路径上的数进行取反操作;(a=-a)C~ a b 将第a条边的值改为b;对于取反操作,记录区间的最大和最小值和标记k,更新线段即可。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#inc
2015-08-22 10:48:53 668
原创 hdu-5416(多校2015)
CRB and TreeTime Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 587 Accepted Submission(s): 187Problem DescriptionCRB has a tree,
2015-08-21 12:58:40 357
原创 acmoj*
新版非诚勿扰题目描述非诚勿扰改版啦,不采取灭灯形式了,大家都相信缘分,新版规则如下:一场节目有n个女嘉宾和m个男嘉宾,女嘉宾都被帘子遮住,每位男嘉宾有一次选择机会,如果选中的帘子后有女嘉宾那么他们将牵手成功,如果没有那么只能遗憾唱起可惜不是你。当然如果某帘子后面的女嘉宾被带走那么这个帘子就会一直空着,不会补充男嘉宾无法确定帘子后是否有女嘉宾。问一场节目被带走的女嘉宾
2015-08-21 09:55:25 599
原创 hdu-5407(多校2015)
CRB and CandiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 193 Accepted Submission(s): 73Problem DescriptionCRB has N d
2015-08-20 21:03:38 875
原创 poj-3678(2-SAT)
poj3678题意:给n个位置赋值0或1使其满足给定的m个布尔表达式。思路:2-sat问题判断是否存在解,tarjan求强连通分量,判断对应的位置是否冲突(即存在i和i^1在一个连通分量里)。把每个值是1(a)和0(~a)为两种状态AND 结果为1:建边 ~x->x,~y->y (两个数必须全为1)AND 结果为0:建边 y->~x,x->~y (两个数至少
2015-08-19 18:24:51 373
原创 hdu-1814(2-SAT)
题意:给1~n*2个人,两两为一组,每组选一人,求在满足m个限制条件的情况下输出字典序最小的数列。思路:典型的2-sat问题,因为是字典序最小问题,暴力解决便可;若是判断能否存在,则用判断强连通分量的方法判断。#include#include#include#include #include#include#include#include#include#include
2015-08-19 16:40:10 631
原创 hdu-5402(多校2015)
Travelling Salesman ProblemTime Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 258 Accepted Submission(s): 95Special JudgeProblem Des
2015-08-18 20:44:12 719
原创 Matching Names(Trie树)-(VK Cup 2015 - Finals, online mirror)
A. Matching Namestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputTeachers of one programming summer school
2015-08-17 20:39:33 564
原创 570E Pig and Palindromes(#316 (Div. 2))dp**
E. Pig and Palindromestime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPeppa the Pig was walking and walked
2015-08-16 19:40:58 620
原创 hdu 5392-Infoplane in Tina Town(质因子分解求最小公倍数)
题意:给一个置换,求它的循环长度。即给一个1~n的任意排列,求使其置换为同一序列的循环长度。例如下面一组测试数据:62 1 5 3 4 6第一个循环节为1->2->1,即长度=2;第二个循环节为3->5->4->3即长度为=3;第三个循环节6->6;即长度为1;所以要将该序列重新转换为2 1 5 3 4 6,需要的循环长度为三个循环节长度的最小公倍数。注意:求最小公
2015-08-16 11:08:21 1125 2
原创 Tree Requests-Codeforces Round #316 (Div. 2)
D. Tree Requeststime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputRoman planted a tree consisting of n verti
2015-08-15 13:21:09 992
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人