关闭

[置顶] 数论

int euler_phi(int n) { int ans=n; int m=sqrt(n+0.5); for(int i=2;i1) ans=ans/n*(n-1); //针对...
阅读(778) 评论(0)

LA7147 World Cup 数学

题目链接 题意:给定样例数T             给定球队数n,晋级球队数m             给定A,B,C(分别代表获胜、平局、失利获得的分数)             分别求不能晋级的可获得的最大得分,能晋级的可获得的最小得分。 思路:考虑不能晋级的可获得的最大分的情况,(1) B>=max(A,C) 那么Max=(n-1)*B;  (2) B 开后面的队伍,即Ma...
阅读(554) 评论(0)

codeforces535D Tavas and Malekas kmp

题目链接 题意:给定字符串s的长度n, x1, x2, ... xk中选取m个位置             给定字符串p             y1, y2, ..., ym             x1, x2, ... xk中每个xi满足sxisxi + 1... sxi + |p| - 1 = p             求满足条件的字符串有多少种,对10^9+7取...
阅读(598) 评论(0)

poj2503 Babelfish BKDRhash+链式hash

题目链接 题意:给定字符串以及对应的字符串,再给字符串找到对应的字符串,不存在输出"eh"。 思路:造模板。 /********************************************************* file name: poj2503.cpp author : kereo create time: 2015年04月12日 星期日 17时13分1...
阅读(377) 评论(0)

spoj3267 D-query 主席树(可持久化线段树)

题目链接 题意:给n个数,m次查询,求[l,r]之间不重复数的个数。 思路:主席树。用一个map记录每个值在当前操作下最新的位置,从前往后插入主席树。对于查询[l,r],窝们在root[ l ]下查询在r之前的不重复数的个数。详见代码:/********************************************************* file name: spoj3267...
阅读(943) 评论(0)

spoj12943 Counting dp

题目链接...
阅读(594) 评论(0)

poj 1147 Binary codes BWT压缩算法

题意:一个长度为N的01序列,会有N个不同的轮换(当然,字符相同,其中也可能会有相同的),将这N个不同轮换按字典序排 序,取排序后的每个轮换的最后一排,组成一个序列。题中给出压缩后的序列,求原始序列,输出的是字典序最小的那个序列。 思路:这题基于一个性质:在已经排序好的矩阵中,对于首位相同的两行,经过左移一位的操作后,形成的新的两行的先后次序不发 生改变。即:设i行在j行前面,i行左移一位变...
阅读(580) 评论(0)

hdu2475 Box splay || 动态树

题意:一开始给定n个盒子的摆的嵌套关系。有两种操作,1.MOVE x y:把编号x的箱子及其包含的箱子放进编号为y的箱子; 2.QUERY x :查询编号x的箱子所在的最靠外的箱子。 思路:将全部的树逐个dfs,这样对于每一棵树都可以得到一个括号序列,对于MOVE操作,我们将那个根所在的左右括号的一整段 取出,连接到新的结点的左括号右边,这么做我们可以保证得到的一定也是一个括号序...
阅读(519) 评论(0)

hdu3081 Marriage Match II 二分+最大流

题意:n个男孩n个女孩,女孩选男孩,每个女孩都要选到不同的人k对女孩有相同选择标准,女孩每轮都选择没选过的男孩,问总共能选几轮。思路:女孩1..n,男孩n+1..2*n编号由女孩到男孩建容量为1的边起点st=2*n+1,到1..n建边;n+1..2*n到终点ed=2*n+2建边二分搜索最大容量即为答案。详见代码: /****************************************...
阅读(524) 评论(0)

hdu 3998 Sequence LIS+最大流

题意:给定一个序列,求最长上升子序长度以及有多少组,每个元素只能用一次。 思路:先求LIS,记为num,求出以每个点为末尾的最长子序列长度。窝们将每个点点拆成i和i',i --> i' 容量为1,源点连接d[ i ]=1的点,容 量为1,汇点连接d[ i ]=num的点,容量为1。对于j i 连一条容量为1的边,跑最大流即可。详见代码: /**********************...
阅读(535) 评论(0)

bzoj 2301 Problem b 莫比乌斯反演+容斥

题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数 思路:在hdu1695的基础上加上容斥,即:ans=solve(b/k,d/k)-solve((a-1)/k,d/k)-solve((c-1)/k,b/k)+solve((a-1)/k,(c-1)/k),详见代码: /************...
阅读(1442) 评论(2)

hdu 1853 Cyclic Tour 最小费用最大流

题意:一个有向图,现在问将图中的每一个点都划分到一个环中的最少代价(边权和)。 思路:拆点,建二分图,跑最小费用最大流即可。若最大流为n,则说明是最大匹配为n,所有点都参与,每个点的入度和出度又是1,所以就是环。 /********************************************************* file name: hdu1853.cpp autho...
阅读(472) 评论(0)

hdu 4389 X mod f(x) 数位dp

题意:给定函数f(x)为x的数位和,求[A,B]中的x能被f(x)整除的个数。 思路:数位dp。设dp[pos][i][j][k]表示当前考虑pos位,考虑对i的整除,之前的数位和为j,之前对i的余数为k,与之后(pos+1)位组合      构成满足条件的数的个数。详见代码: /**************************************************...
阅读(723) 评论(0)

hdu 1695 GCD 欧拉函数+容斥 ||莫比乌斯反演

题意:给定a,b,c,d,k             x属于[1 , c],y属于[1 , d],求满足gcd(x,y)=k的对数。其中和算相同。 思路:不妨设c             那么假如yc/k,就只能从[ c/k+1 , d ]枚举,然后利用容斥。详见代码: /*******************************************************...
阅读(1057) 评论(0)

hdu 4406 GPA 最大费用最大流

题意:给定n,k,m分别代表天数,每天上的课,以及科目数。             给定每门课的学分,已经基础分数。             给定n天每天有哪些课能学。             求如何安排复习,使得GPA尽可能大且没有挂科,算出GPA。 思路:最大费用最大流。定义函数f(score,credit)=credit×(4-3.0/1600×(100-score)^2)。每一...
阅读(615) 评论(0)

poj 2001 Shortest Prefixes trie

题意:给一堆字符串,输出对应字符串能区别于别的字符串的缩写。 思路:记录下每个点经过的次数,那么对每个字符串,直到找到p->cnt=1为止。详见代码: /********************************************************* file name: poj2001.cpp author : kereo create time: 2015年...
阅读(584) 评论(0)
210条 共14页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:140657次
    • 积分:3465
    • 等级:
    • 排名:第10568名
    • 原创:208篇
    • 转载:2篇
    • 译文:0篇
    • 评论:10条
    最新评论