04 2015 档案

hdu3864 Miller_Rabin快速判断素数&Pollard_rho快速分解素因数
摘要:额随机开了场多校,做到第二题傻眼了。。这么大的数据搞毛线===试着来了一发暴力T了,没有尝试随机(我来瞅瞅题解==看到了新的算法,哎欠的终究要补,把Miller_Rabin和Pollard_rho算法看了一晚上---->并看不懂2333其实大部分还是可以看懂的,主要就是Miller_Rabin那里的... 阅读全文

posted @ 2015-04-30 01:48 xiao_xin 阅读(187) 评论(0) 推荐(0)

hdu3832 我难以想到是最短路/dijkstra
摘要:题意是给定n个点,包括坐标和这个点照亮范围,使1、2、3三点连通最多删去几个点,也就是最少留下几个点构造两两之间的边,如果同一个点边权是0,如果可以照亮其中一个边权为1求出1和2和3到所有点最短路,d=min(dist[1][i]+dist[2][i]+dist[3][i]+1),可连通的话n-d-... 阅读全文

posted @ 2015-04-29 17:41 xiao_xin 阅读(207) 评论(0) 推荐(0)

hdu3836 有向图最少加多少边使强联通/缩点
摘要:题意比较抽象,说两个集合相等判定是A是B子集且B是A子集,然后给你m个集合关系,表示第一个是第二个的子集,问至少添加多少个关系使所有集合想等把集合想象成点,就变成了:n个点m条有向边,最少加多少条边使只有一个强联通分量思路:先tarjan缩点,然后从出度为0的点向入度为0的点连边,然后其实就是max... 阅读全文

posted @ 2015-04-29 15:51 xiao_xin 阅读(328) 评论(0) 推荐(0)

hdu3829 二分图最大独立集/思考建图
摘要:每个人喜欢某个动物,讨厌某个动物。一个人只有喜欢动物在,讨厌动物不在才会开心==问减去一些动物最多可以让多少人开心==想到->对人建图对于两个人,如果A讨厌的是B喜欢的,或者A喜欢的是B讨厌的,就A->B连边,表示互斥求一遍最大匹配ans,因为一个人被拆成两个,所以(2*n-ans)/2就是最多开心... 阅读全文

posted @ 2015-04-29 00:02 xiao_xin 阅读(362) 评论(0) 推荐(0)

whu1564 求字符串的所有循环子串第k大 :后缀数组模板
摘要:原题少了当前的字符,不过并无差别利用sa数组可以很方便的求出来== 1 #include 2 #include 3 #include 4 using namespace std; 5 struct SA{ 6 int sa[2000005],t[2000005],t2[2000005],c[20... 阅读全文

posted @ 2015-04-28 11:25 xiao_xin 阅读(200) 评论(0) 推荐(0)

hdu3572 给定n个任务的初末时间,每个任务要p[i]天数完成,问能否按规定完成所有任务 :经典建图/网络流
摘要:设定源点st,汇点ed将任务和每天当作两部分点建图源点连向每个任务,流量为该任务所需时间每个任务连向他可以可以做的每一天,流量为1每天连向汇点,流量为m,表示一天最多做m个任务==跑一遍最大流,如果最大流==所有任务需要天数之和即Yes,否则不能完成任务熟悉各种模型! 1 #pragma comm... 阅读全文

posted @ 2015-04-28 11:16 xiao_xin 阅读(257) 评论(0) 推荐(0)

hdu1733 需要多少时间逃出迷宫 :拆点/分层网络流
摘要:枚举时间来对于拆的点分层,每增加一个时间,就将所有1s能到达他的上个时间分层点->这个点的该时间分层点连一个边。源点只向第1s的‘X’连边,所有'@'直接终点在任何时间都向汇点连边。假设需要时间为ans,拆出来的点不包括源点汇点应该是ans*n*m*2点,为什么*2呢,因为每个除了'#'点拆成2个点... 阅读全文

posted @ 2015-04-28 01:10 xiao_xin 阅读(170) 评论(0) 推荐(0)

CodeForces Round 300 我是煞笔!
摘要:代码。。能力。。为何。。这么。。弱。。英语。。为何。。这么。。渣。。前期打的非常顺,在1个小时的时候甚至到了200+名,然而。。我为何这么弱A.Cutting Banner 我看错了题意,然而却A掉了,一个串只能切一次,后来Hack+4也是靠的这个 1 #include 2 #include 3 #... 阅读全文

posted @ 2015-04-27 03:23 xiao_xin 阅读(593) 评论(0) 推荐(0)

hdu2732 拆点最大流/dinic
摘要:看题意看了半天你敢信===L代表几只蜥蜴的初始位置,一次可以跳到距离 3 #include 4 #include 5 #include 6 #include 7 #define maxn 100005 8 #define maxm 200005 9 #define inf 0x3f3f... 阅读全文

posted @ 2015-04-26 01:10 xiao_xin 阅读(90) 评论(0) 推荐(0)

hdu4289 最大流:拆点/最小割
摘要:把以前没做的网络流模型现在都补一下==本题是比较经典的只有点权,题目问在哪些点放置东西使不流通代价最小,拆点然后就是最小割,跑一遍最大流即可对于点i,i->i+n x对于双向边 x+n->y inf y+n->x inf 1 #include 2 #include 3 #include 4... 阅读全文

posted @ 2015-04-25 11:13 xiao_xin 阅读(90) 评论(0) 推荐(0)

hdu4280 最大流模板题:邻接表形式dinic
摘要:额这题卡了dinic的时间==不过还是强行用dinic过了,把stl语句全部换了,包括vector也改成了邻接表还是比较慢,8000+ms,很奇怪的是,我的邻接表中加了当前弧优化竟然慢了1s===至于sap,过两天再写吧== 1 #pragma comment(linker,"/STACK:1677... 阅读全文

posted @ 2015-04-24 01:49 xiao_xin 阅读(362) 评论(0) 推荐(0)

邀请赛前计划(更新于2015.4.23)
摘要:主要是算法的进阶专题和数据结构没学的算法: 网络流专题,后缀数组专题,AC自动机专题 树的学习(总觉得这个要拖到暑假== ※※※比赛!因为太弱还有好多东西没学。。。都不会啊!想想今年打完估计就不玩了。。。可退役了还这么弱说不过去啊!学弟进步都这么快。。。再这样下去就要被学弟虐了啊!哎日常吐槽一... 阅读全文

posted @ 2015-04-23 22:58 xiao_xin 阅读(129) 评论(0) 推荐(0)

hdu1426/poj3074 数独:DLX精准覆盖
摘要:之前就听说过数独用DLX解较方便,今天学习了==建立一个N=n*n*n M=n*n*4的bool矩阵,然后跑DLX,这个建图学习了bin巨的,感觉好厉害==对于每一个位置,每放一种数字,都对应要覆盖四个东西-->该位置有这个数字,该行有这个数字,该列有这个数字,该方块有这个数字 think话说,hd... 阅读全文

posted @ 2015-04-23 22:17 xiao_xin 阅读(157) 评论(0) 推荐(0)

hdu3335 n个数最多选多少个使所选的数两两不能整除 DLX可重复覆盖
摘要:额,感觉建立矩阵好强==最多选多少个两两不能整除->将可以整除的记为true,这样跑最大可重复覆盖就是最多可以选的数==看到好多二分图匹配做的,不写了== 1 #include 2 #include 3 #include 4 #include 5 #define eps 1e-8 6 #define... 阅读全文

posted @ 2015-04-22 23:11 xiao_xin 阅读(214) 评论(0) 推荐(0)

hdu5046 从n个村庄选k个机场使->所有村庄到他最近的机场的最大距离最小 :二分距离/DLX可重复覆盖
摘要:这是去年上海赛区网络赛的题目,当时过了好多队我们赛后才知道是DLX,太low了现在回来做竟是一道裸的二分距离+DLX重复覆盖(忽然想起来是kuangbin巨巨出的题2333 1 #include 2 #include 3 #include 4 #include 5 #define eps ... 阅读全文

posted @ 2015-04-22 21:13 xiao_xin 阅读(211) 评论(2) 推荐(0)

hdu2295 求最小半径使->最多k个点可以覆盖所有点 : 二分半径+DLX可重复覆盖模板
摘要:可重复覆盖与精准覆盖的区别在于remove和resume函数本题为了优化可以在每次枚举要删点前做一次类似A*的估价函数,看是否可以炸完= 1 #include 2 #include 3 #include 4 #include 5 #define eps 1e-8 6 using name... 阅读全文

posted @ 2015-04-22 19:34 xiao_xin 阅读(197) 评论(0) 推荐(0)

hdu4407 n(n<=400000)个数,a[i]=i,m个询问及更改(m<=1000),更改某个位置的数,询问区间与这个数互质数的和:容斥/离线
摘要:注意到m的范围很小,允许m2,然后重要的起始条件a[i]=i,这样可以k=1的时候用容斥预处理算出答案,然后离线保存在k=2的时候暴力m2更改答案 1 #include 2 #include 3 #include 4 #include 5 #define LL long long 6 using n... 阅读全文

posted @ 2015-04-22 01:11 xiao_xin 阅读(127) 评论(0) 推荐(0)

CodeForces 536B Tavas and Malekas :构造长为n的串,使m个串的开头是给定的某个字符串,求构造方案数 kmp/hash
摘要:本题的难点在于--->看懂题意因为比赛纠结于A的二分,比赛还没结束就暴走睡觉了TUT今天起来看了看B===卧槽题意和A一样恶心啊有木有==回到本题,看明白之后首先映入眼前的就是--->暴力大法好这样必然是可以hack超时的,必须要对串进行处理哪些后缀和前缀相等最常规的莫过于kmp里面的next,从结... 阅读全文

posted @ 2015-04-15 18:05 xiao_xin 阅读(440) 评论(0) 推荐(0)

CodeForces 536A Tavas and Karafs :n个数每次最多将m个数-1,快速计算减完次数:二分/贪心
摘要:英语弱是硬伤啊==比赛看了A半小时活生生没看懂题意,后来带数据带猜才明白题意输入A,B,n,表示一个首项为A公差为B的数,n个询问每个询问给出l,t,m你需要算出最大的r,使l-r之间的数通过(标题上面)的规则在t次内减完==看明白题意,首先想到就是一个二分,然后在二分中需要快速check出是否可行... 阅读全文

posted @ 2015-04-15 17:49 xiao_xin 阅读(431) 评论(0) 推荐(0)

hdu1695 两个区间各取一个数gcd==k对数:莫比乌斯反演
摘要:首先(1,b)(1,d)->(1,b/k)(1,d/k)转化为互质对数设F(k)为gcd(x,y)为k的倍数的对数->F(k)=(b/k)*(d/k)f[1]=mu[1]*F[1]+mu[2]*F[2]+...mu[m]*F[m]再减去重复计算的,变了F[i]再做一遍== 1 #include 2 ... 阅读全文

posted @ 2015-04-14 03:49 xiao_xin 阅读(256) 评论(0) 推荐(0)

C(n,m)%p n,m<=10^5,p<=10^9 p非质数
摘要:(a/b) mod m:gcd(b,m) = 1 求b相对m的逆元b^(-1),即b*(b^(-1))= 1 (mod m),然后计算a*b^(-1) mod m,其值与(a/b) mod m相同gcd(b,m)!=1 不可以用逆元了,倒可以把a/b分解质因数相乘,然后快速幂,将除法取模转化为乘... 阅读全文

posted @ 2015-04-13 16:11 xiao_xin 阅读(237) 评论(0) 推荐(0)

hust1017 Exact cover :DLX精准覆盖模板题
摘要:题目链接:http://acm.hust.edu.cn/problem/show/1017上个星期在空闲时间看了一下DLX博客http://www.cnblogs.com/grenet/p/3145800.html然后今天昨天学习了bin巨的DLX模板,关于模板的个人理解代码已标出,下面开始做几道D... 阅读全文

posted @ 2015-04-09 12:54 xiao_xin 阅读(144) 评论(0) 推荐(0)

hdu4685 n个男生m个女生问男生可以娶哪些女生使最大匹配数不改变:二分图匹配/tarjan
摘要:(男生喜欢特定的女生,女生可以嫁给任何男生=先按题意求出最大匹配,然后在左边增加n-res个虚拟男生喜欢所有女生,m-res个虚拟女生喜欢所有男生,再求最大匹配,这个时候肯定是个完全匹配,求匹配只是确定新的二分图里面每个男生对应的女生是谁=在所有女生女生里面建有向图,将某男生匹配的女生连向所有他喜欢... 阅读全文

posted @ 2015-04-08 19:24 xiao_xin 阅读(357) 评论(0) 推荐(0)

hdu5200 n棵树m次询问,每次询问独立砍掉小于b[i]的树,输出每次砍过的连通区域个数:技巧/离线
摘要:将询问的高度和树的高度都变成离线排个序,然后就可以把砍树变成加树对于一个询问高度b[i],将还未加入的所有大于这个高度的树都加入,加入的树1.左右相邻都有树?连通区域-12.左右相邻都没树?连通区域+1再把这个位置种上树,最后输出答案== 1 #include 2 #include 3 #inclu... 阅读全文

posted @ 2015-04-07 23:52 xiao_xin 阅读(114) 评论(0) 推荐(0)

hdu5201 n个桃子分给m个猴子使第一个猴子的桃子严格最大的方案:容斥/组合数/费马小定理求阶层逆元
摘要:先预处理阶层逆元算组合数=首先来枚举第一个猴子得到的桃子x,这样就变成了剩下的n-x个桃子分给m-1个猴子且不能有猴子得到桃子大于x的方案,最后求和>>先来看这样一个简单问题:n个桃子分给m个猴子有多少种方案?很简单隔板法因为允许为0所以是C(x-1+y,y)回到这个问题,再来枚举剩下的m-1个猴子... 阅读全文

posted @ 2015-04-07 23:40 xiao_xin 阅读(525) 评论(0) 推荐(0)

hdu1827 有向图的强连通分量/缩点-tarjan
摘要:很明显缩完点之后入度为0的点是必须要通知的,也仅需要通知入度为0的点==其实第二个邻接表是不用的,只用统计into数组即可 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 stacks; 7 int Now,H... 阅读全文

posted @ 2015-04-07 16:59 xiao_xin 阅读(113) 评论(0) 推荐(0)

hdu1269 有向图强连通分量 模板
摘要:额裸的强连通,判断是不是一个强连通分量== 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 stacks; 7 int Now,dfs_clock,scc_cnt,Head[200005],Next[20000... 阅读全文

posted @ 2015-04-07 12:57 xiao_xin 阅读(132) 评论(0) 推荐(0)

hdu4612 在无向图中加一条边使桥最少 :tarjan预处理求桥/缩点/树直径
摘要:很显然加在缩点后的树直径首尾可以最大限度减少桥的数量==所以就是个无向图tarjan求桥和bfs求树直径裸题了明天继续看TUT 1 #pragma comment(linker,"/STACk:10240000,10240000") 2 #include 3 #include 4 #incl... 阅读全文

posted @ 2015-04-02 00:50 xiao_xin 阅读(162) 评论(0) 推荐(0)

hdu2460 tarjan无向图边双连通分量(桥)+lca
摘要:题意需要求出每加一条边求出桥的数目,因为询问数不多,所以可以在tarjan预处理之后在每个询问后面暴力查询lca=和有向图强连通分量差不多,反正都是tarjan搞的TUThdu又需要手动扩栈== 1 #pragma comment(linker,"/STACk:10240000,10240000")... 阅读全文

posted @ 2015-04-01 18:56 xiao_xin 阅读(147) 评论(0) 推荐(0)

导航