摘要: SD集训divisors 题目大意:给定一个1~n的排列p,求l<=a,b<=r中pa%pb=0的(a,b)数对个数。 思路:离线操作。对于1~n所有数在n以内的约数个数n/1+n/2+n/3+...+n/n=nlogn,那么我们可以保存下所有的这样成倍数的关系,按左端点排序,然后暴力插入。对于查询 阅读全文
posted @ 2015-08-11 20:02 Rivendell 阅读(356) 评论(0) 推荐(0) 编辑
摘要: bzoj3679 数字之积 题目大意:给定n、l、r,f(i)表示i的各位数字之积(不含前导0),求出0<f(i)<=n(l<=i<r)的个数。 思路:这是在夏令营中学长讲的题目,听到一种相对简单的方法。很显然要用1~r的个数-1~l的个数我们先用2、3、5、7(因为每一位都是0~9,所以只能有这几 阅读全文
posted @ 2015-07-29 19:39 Rivendell 阅读(365) 评论(0) 推荐(0) 编辑
摘要: CODEVS1198国王游戏 题目描述 Description 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干 阅读全文
posted @ 2015-07-28 16:04 Rivendell 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 后缀数组 bzoj1031 JSOI字符加密Cipher 题目大意:给一个字符串,圈成圆圈,从任意位置断开,组成len个字符串,按字典序升序排序后,输出尾字母。 思路:将字符串加倍后,对所有后缀排序,用后缀数组的思想,O(nlogn),输出的时候只要输出长度>=len的相应位置的字母就可以了。 #i 阅读全文
posted @ 2015-07-25 14:33 Rivendell 阅读(365) 评论(0) 推荐(0) 编辑
摘要: CODEVS1156作业调度方案 题目描述 Description 我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。 每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中j为1到n中的某个数字,为工件号 阅读全文
posted @ 2015-07-13 23:44 Rivendell 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 很久之前就学习过的算法,但是最近发现很多题目都可以用倍增的方法解决,并且十分好写,所以总结一下。 noip2013 货车运输 题目大意:n各点构成一个无向图,每条边有一个最大负载,有q辆货车,分别从不同的点到不同的点,求每辆货车最大运载量。 思路:为了满足最大负载,肯定是走图的最大生成树上的路径,并 阅读全文
posted @ 2015-07-06 16:45 Rivendell 阅读(857) 评论(2) 推荐(0) 编辑
摘要: 某次模拟赛的T2 强迫症 题目大意:判断一棵树是否对称。 思路:首先,一棵树的重心一定在对称轴上。一棵树是否对称有两种情况:有点在对称轴上和没有点在对称轴上。没有点在对称轴上的情况一定有两个重心(但有两个重心并不一定没有点在对称轴上)。有两个重心时,我们只需要算出两个重心对应子树的hash值,然后比 阅读全文
posted @ 2015-07-05 18:04 Rivendell 阅读(599) 评论(0) 推荐(0) 编辑
摘要: bzoj1047 理想的正方形题目大意:求a*b的矩阵中一个n*n的子矩阵,使得子矩阵的最大值和最小值的差最小。思路:一开始认为能用二维线段树a掉,但lcomyn大神写了一下,结果T了,于是就寻找新的写法。借鉴了斜率优化的思路,发现单调队列可以优越的做到O(ab)的求出整个矩阵中每个点左面延伸n位的... 阅读全文
posted @ 2015-07-04 18:55 Rivendell 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 今天学习了一种用hash求解lcp问题的方法。把一段内的hash表示为某个数x的递增次方乘上字符串相应位置的字母对应值,然后二分长度,判断两段的hash值是否相等就可以了。hash值可以用unsigned long long保存,这种类型能在溢出的时候自动mod2^64(看到书上说的)。cogs18... 阅读全文
posted @ 2015-07-04 18:50 Rivendell 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 求解a^x=b(mod p),p为质数时,直接bsgs就可以了。将x写作km-j,m=sprt(p)时复杂度最优,a^(km)=ba^j(mod p),我们预先求出a^j(j=0~m-1)存入map,然后穷举k=1~p/m,如果map中有值,返回km-cnt[]就可以了。bzoj4128 Matri... 阅读全文
posted @ 2015-07-01 20:51 Rivendell 阅读(466) 评论(0) 推荐(0) 编辑