1.题目描述:点击打开链接
2.解题思路:本题利用multiset解决。根据题意,如果我们用P(x,y)表示一个人,因为人可以相同,所以用multiset。我们会发现,如果所有人群都是有优势的,那么这些点呈现一个递减的趋势。如果刚刚插入一个人,他是否有优势该如何判断呢?只需要看他左边相邻的点的y坐标是否比他小即可。而如果这个人是有优势的,那么需要先把这个人插入到集合中,然后从upper_boun...
分类:
其他好文 时间:
2015-08-30 23:11:19
阅读次数:
225
来源:《算法竞赛入门经典》例题5.4.2 题目:输入正整数n(2≤n≤100),把阶乘n!=1*2*3*...*n分解成素因子相乘的形式,从小到大输出各个素数(2、3、5...)的指数。例如,5! 表示为 3 1 1(5!=23*31*51=120),程序忽略比最大素因子更大的素数(否则末尾会...
分类:
编程语言 时间:
2015-08-30 22:48:36
阅读次数:
250
转:http://www.cnblogs.com/felixfang/p/3705754.html一、开篇Permutation,排列问题。这篇博文以几道LeetCode的题目和引用剑指offer上的一道例题入手,小谈一下这种类型题目的解法。二、上手最典型的permutation题目是这样的:Giv...
分类:
其他好文 时间:
2015-08-30 22:44:08
阅读次数:
255
来源:《算法竞赛入门经典》例题5.4.1 题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。 样例输入: 3...
分类:
编程语言 时间:
2015-08-30 15:34:21
阅读次数:
124
来源:《算法竞赛入门经典》例题5.3.2 题目:输入一个字典(用******结尾),然后再输入若干单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出( 如果不存在,输出:( )。输入单词之间用空格或空行隔开,且所有输入单词都由...
分类:
编程语言 时间:
2015-08-29 16:42:45
阅读次数:
223
1.题目描述:点击打开链接
2.解题思路:本题可以利用AC自动机解决,但是发现,这种方法时间效率比较低,个人推荐利用二维Hash来解决本题。经过OJ上测试,AC自动机的方法需要1s以上,而二维Hash只需要不到100ms!因此下面介绍如何用二维hash来解决本题。
首先,任何hash技术都需要给定一个函数,使得不同字符串经过计算得到的hash值产生的冲突越少越好。对于字符矩阵,我们一般...
分类:
其他好文 时间:
2015-08-28 19:51:14
阅读次数:
207
1.题目描述:点击打开链接
2.解题思路:本题利用概率dp+AC自动机解决。首先,把所有的模板串加入到Trie,然后标记所有单词结点,然后每次随机生成一个字符,就相当于在AC自动机中随机走一步,而且只允许走不被标记的结点。令d(u,L)表示当前在结点i,还需要走L步,不进入任何禁止结点的概率。那么不难由全概率公式得到下式:
d(u,L)=sum{P[v]*d(v,L-1)|v是一个没有被禁止的...
分类:
其他好文 时间:
2015-08-28 17:49:49
阅读次数:
168
来源:《算法竞赛入门经典》例题5.2.2 题目:输入不超过1000的正整数n,输出n!=1*2*3*…*n的精确结果。 样例输入:30 样例输出:265252859812191058636308480000000 分析:为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,10...
分类:
编程语言 时间:
2015-08-28 17:10:04
阅读次数:
150
1.题目描述:点击打开链接
2.解题思路:本题利用AC自动机解决。本题给的文本串非常长,但是模板串又多而短,正好适合AC自动机。然而一个问题是如何统计出现的次数。这里直接在print函数中递归统计。《训练指南》上说因为有重复的模板,需要用一个map来索引,但是本题由于已经把所有的模板保存到P数组了,没有这个索引也可以做。
3.代码:
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-08-28 15:43:40
阅读次数:
178
来源:《算法导论入门经典》例题5.2.1 原题:很多学生在学习加法时,发现”进位“特别容易出错。你的任务是计算两个整数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。假设输入的整数都不超过9位。 样例输入:123 456 样例输出:0 样...
分类:
编程语言 时间:
2015-08-28 14:56:39
阅读次数:
181