上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 34 下一页
摘要: 题意:给出一个字符串,要求在后面添加最少的字符是的新串是循环的,且至少有两个循环节。输出最少需要添加字符的个数。分析:假设所给字符串为p[0...l-1],其长度为l有这样一个结论:这个串的最小循环节为 l - next[l]感觉自己想得不是特别透彻,所以把别人的博客贴上来吧。里面有个小错误就是:n... 阅读全文
posted @ 2014-11-20 19:23 AOQNRMGYXLMV 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 题意:用两个字符串分别表示布条和图案,问能从该布条上剪出多少这样的图案。分析:毫无疑问这也是用KMP匹配,关键是一次匹配完成后,模式串应该向后滑动多少。和上一题 HDU 1686 不同,两个图案肯定不能在母串中有交叉的部分,所以当匹配成功一次后,应当滑动整个模式串的长度。和上一题比,代码几乎不变,只... 阅读全文
posted @ 2014-11-20 03:41 AOQNRMGYXLMV 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题意:求模式串W在母串T中出现的次数,各个匹配串中允许有重叠的部分。分析:一开始想不清楚当一次匹配完成时该怎么办,我还SB地让i回溯到某个位置上去。后来仔细想想,完全不用,直接让模式串向前滑动,即 j = next[j] 1 #include 2 #include 3 #include 4 ... 阅读全文
posted @ 2014-11-20 03:19 AOQNRMGYXLMV 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题意:用第二个数列去匹配第一个数列,输出第一次匹配到的位置,如果没有则输出-1.分析:这明显是一道裸的KMP。我是在这篇博客上学的KMP算法的,讲得比较透彻。http://blog.csdn.net/v_july_v/article/details/7041827 1 #include 2 #in... 阅读全文
posted @ 2014-11-20 02:20 AOQNRMGYXLMV 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题意:小明有一个贤妻良母型的女朋友,他们两个一起洗衣服。有M种颜色的N件衣服,要求洗完一种颜色的衣服才能洗另外一种颜色。两人可以同时洗,一件衣服只能被一个人洗。给出洗每件衣服所用的时间,求两个人洗完这些衣服所用的最短时间。分析:因为每种颜色是分开洗的,所以我们可以单独考虑一种颜色的衣服。因为洗完这些... 阅读全文
posted @ 2014-11-18 14:26 AOQNRMGYXLMV 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个n个节点m条边的有向图,求如图所示的菱形的个数。这四个节点必须直接相邻,菱形之间不区分节点b、d的个数。分析:我们枚举每个a和c,然后求出所有满足a邻接t且t邻接c的节点的个数记为r。那么分别以a、c为左右端点的菱形的个数就是r的二元组合。 1 #include 2 #include... 阅读全文
posted @ 2014-11-18 14:10 AOQNRMGYXLMV 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题意:找出m位且各个数位数字之和为s的最大和最小整数,不包括前导0(比如说003是非法的),但0是可以的。分析:这题是用贪心来做的,同样是m位数,前面的数字越大这个数就越大。所以写一个can(int m, int s)函数,来判断是否存在一个m位数其各位数字之和为s这里先不考虑前导0的事,代码看起来... 阅读全文
posted @ 2014-11-18 13:40 AOQNRMGYXLMV 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 题意:有m个男孩和n个女孩,每个人都有一个舞蹈熟练度,用一个不超过100的正整数来表示。一个男孩和一个女孩能够结为舞伴当且仅当两人的熟练度相差不超过1.问最多能结成多少对舞伴分析:这是一个二分图最大匹配问题,如果男孩和女孩满足条件则添加一条边,然后用匈牙利算法求最大匹配即可。这是匈牙利算法的模板ht... 阅读全文
posted @ 2014-11-18 13:24 AOQNRMGYXLMV 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 题意:给n个整数(可能有重复),输出一个不超过n次交换的方案,使得经过这n次交换后,整个序列正好是非递减的。分析:首先说题解给的算法。从左到右扫一遍,交换第i个数和它后面最小的那个数。代码看起来大概是这个样子的: 1 for (int i = 0; i a[t]) 6 ... 阅读全文
posted @ 2014-11-18 13:01 AOQNRMGYXLMV 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题意:有n朵花排成一排,小明要么吃掉连续的k朵白花,或者可以吃单个的红花。给出一个n的区间[a, b],输出总吃花的方法数模 109+7 的值。分析:设d(i)表示吃i朵花的方案数。则有如下递推关系:d[i] = d[i-1] + d[i-k], (i ≥ k, d[0] = 1)我们在计数i+1的... 阅读全文
posted @ 2014-11-17 17:29 AOQNRMGYXLMV 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个长为m的各不相同的二进制数(允许存在前导0),别人已经事先想好n个数中的一个数W,你要猜出这个数。每次只可以询问该数的第K为是否为1.问采用最优询问策略,则最少需要询问多少次能保证猜到。比如有1100 和 0110两个数,只需要询问第一或第三位数是否为1,即可猜中,因此答案为1.分析:d... 阅读全文
posted @ 2014-11-02 10:40 AOQNRMGYXLMV 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 题意:一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师。每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门。要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两个老师教而且使得总工资最少。分析:因为s很小,所以可以用状态压缩。dp(i, s1, s2)表示考虑了前i... 阅读全文
posted @ 2014-11-01 19:09 AOQNRMGYXLMV 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 一、莫比乌斯(Möbius)函数 对于每个正整数n(n ≥ 2),设它的质因数分解式为: 根据这个式子定义n的莫比乌斯函数为: 也就是如果n有平方因子,则为0. 否则是-1的质因数个数次方。 举个简单的例子:6 = 2 × 3,所以; 9 = 3×3, 所以 【命题一】 对于正... 阅读全文
posted @ 2014-10-31 20:12 AOQNRMGYXLMV 阅读(2454) 评论(3) 推荐(2) 编辑
摘要: 题意:给出三角形ABC顶点的坐标,DEF分别是三边的三等分点。求交点所形成的三角形PQR的面积。分析:根据梅涅劳斯定理,我们得到:,解得 另外还有:,解得 所以AR : RP : PD = 3 : 3 : 1同理,BE和CF也被分成这样比例的三段。△ADC = (2/3)△ABC△CDR = (4/... 阅读全文
posted @ 2014-10-28 10:50 AOQNRMGYXLMV 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 题意:平面上有n条线段,一次给出这n条线段的两个端点的坐标。问怪兽能否从坐标原点逃到无穷远处。(两直线最多有一个交点,且没有三线共交点的情况)分析:首先说明一下线段的规范相交:就是交点唯一而且在两条线段的内部。如果输入中有一条线段uv没有和其他任何一条线段规范相交,那么怪兽一定是可以从u走到v的。所... 阅读全文
posted @ 2014-10-23 20:28 AOQNRMGYXLMV 阅读(640) 评论(1) 推荐(0) 编辑
摘要: 题意:有n个瞭望塔构成一个凸n边形,敌人会炸毁一些瞭望台,剩下的瞭望台构成新的凸包。在凸多边形内部选择一个点作为总部,使得敌人需要炸毁的瞭望塔最多才能使总部暴露出来。输出敌人需要炸毁的数目。分析:在炸毁同样数量的瞭望塔时,如何爆破才能使暴露出的面积最大。那就是集中火力炸掉连续的几个瞭望塔。直觉上是这... 阅读全文
posted @ 2014-10-22 23:14 AOQNRMGYXLMV 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个选手,铁人三项有连续的三段,对于每段场地选手i分别以vi, ui 和 wi匀速通过。对于每个选手,问能否通过调整每种赛道的长度使得他成为冠军(不能并列)。分析:粗一看,这不像一道计算几何的题目。假设赛道总长度是1,第一段长x,第二段长y,第三段则是1-x-y那么可以计算出每个选手完成比赛... 阅读全文
posted @ 2014-10-21 22:27 AOQNRMGYXLMV 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个凸n边形,求多边形内部一点使得该点到边的最小距离最大。分析:最小值最大可以用二分。多边形每条边的左边是一个半平面,将这n个半平面向左移动距离x,则将这个凸多边形缩小了。如果这n个半平面交非空,则存在这样距离为x的点,反之则不存在。半平面交的代码还没有完全理解。和凸包类似,先对这些半平面... 阅读全文
posted @ 2014-10-21 11:19 AOQNRMGYXLMV 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题意:求平面上的最远点对距离的平方。分析:对于这个数据量枚举肯定是要超时的。首先这两个点一定是在凸包上的,所以可以枚举凸包上的点,因为凸包上的点要比原来的点会少很多,可最坏情况下的时间复杂度也是O(n2).于是就有了旋转卡壳。可以想象有两条平行直线紧紧地夹住这个凸包,那直线上的点就是对踵点对。对踵点... 阅读全文
posted @ 2014-10-20 20:47 AOQNRMGYXLMV 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个红点,m个蓝点。问是否存在一条直线使得红点和蓝点分别分布在直线的两侧,这些点不能再直线上。分析:求出两种点的凸包,如果两个凸包相离的话,则存在这样一条直线。判断凸包相离需要判断这两件事情:任何一个凸包的任何一个顶点不能在另一个凸包的内部或者边界上。两个凸包的任意两边不能相交。二者缺一不... 阅读全文
posted @ 2014-10-20 01:08 AOQNRMGYXLMV 阅读(374) 评论(0) 推荐(1) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 34 下一页