我排第几个
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?
输入第一行有一个整数n(0
随后有n行,每行是一个排列;
输出输出一个整数m,占一行,m表示排列是第几位;
样例输入
3
ab...
分类:
其他好文 时间:
2014-05-22 12:58:50
阅读次数:
245
题目连接:Codeforces 432E Square Tiling
题目大意:给出一个n?m的矩阵,要求对该矩阵进行上色,用大写字母,但是每次上色的区域必须是正方形,不求相邻的上色区域不能有相同的颜色,求字典序最小的方案(字典序比较,从左至右,从上到下)
解题思路:用贪心的思想去构造矩阵,因为字典序的优先级为左至右,以及上到下,所以我们每次对于一个未上色点x,y,考虑最少要放到的长度...
分类:
其他好文 时间:
2014-05-22 07:53:17
阅读次数:
280
题目链接:http://poj.org/problem?id=3617题意:
已知一段长度为N的字符串,让你构造一个字典序最小的字符串.构造的规则如下:如果原始字符串的头部 尾部则删除尾部的字符添加到新字符串中.解题思路:
首先用两个索引记录首尾的位置,然后依次比较两者的值,若头部的值小则头部索引....
分类:
其他好文 时间:
2014-05-21 19:05:31
阅读次数:
245
题目意思:象棋中的马在一张棋盘上能否不重复的走完所有格子,如果能走完输出走的路径(以字典序),如果没有一种走法能达到这样的目标,则输出impossible。
思路就是DFS 搜下去,当走过的格子数达到格子总数时就打印路径。所以要用一个数组记录每个定点的前驱节点。...
分类:
其他好文 时间:
2014-05-21 17:00:48
阅读次数:
184
昨晚折腾了一个晚上,连这一道题目都没AC,太受打击了!这里倒不是算法的问题,主要是既要考虑输出的字符串按字典序排列,又要去掉重复的字符串。本想直接在不保存所有字符串的前提下,直接按照要求输出字符串,但折腾了一晚上,还是决定放弃了,依然是使用最直接的方法,以空间换取结果,将所有的字符串保存到一个字符串数组中,由于全排列后的字符串数最大为9!=362880,故开辟一个362900大的字符串数组用来保存这些字符串,而后对这些字符串进行排序,先用了选择排序,通过strcpy字符串进行排序,结果争取,但第三组测试用例...
分类:
其他好文 时间:
2014-05-21 13:26:39
阅读次数:
236
第几是谁?
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述现在有"abcdefghijkl”12个字符,将其按字典序排列,如果给出任意一种排列,我们能说出这个排列在所有的排列中是第几小的。但是现在我们给出它是第几小,需要你求出它所代表的序列.
输入第一行有一个整数n(0
随后有n行,每行是一个整数m,它代表着序列的第几小;
输出...
分类:
其他好文 时间:
2014-05-20 15:18:35
阅读次数:
203
http://acm.hdu.edu.cn/showproblem.php?pid=1385
求最短路,要求输出字典序最小的路径。
spfa:拿一个pre[]记录前驱,不同的是在松弛的时候,要考虑和当前点的dis值相等的情况,解决的办法是dfs找出两条路径中字典序较小的,pre[]去更新。把路径当做字符串处理。
我只用之前的pre去更新当前点,并没考虑到起点到当前点的整个路径...
分类:
其他好文 时间:
2014-05-19 22:49:45
阅读次数:
383
题目链接:POJ 2418 Hardwood
Species【题意】给出一大串树的名字,可能有重复,然后按字典序输出名字和百分比。【思路】我已开始偷懒用了map来做,这道题给的时间是10s,用map的8s也还是水过了,真是神奇啊,后来还是写了一下字典树,700ms+就过了,效率提升显著啊。这里要注意...
分类:
其他好文 时间:
2014-05-19 10:00:10
阅读次数:
285
uva 10391 Compound Words (字符串-hash)
题目大意:
有一堆按照字典序排好的字符串,问你有多少字符串是由其它两个字符串组成。
解题思路:
如果用两个字符串拼接看拼接好的字符串是否在字典中,一定会超时。
我们可以逆向,由于字符串的长度不是很长,所以把一个字符串拆为两个字符串看这两个字符串是否都在字典中即可
解题代码一:
判断字符串是否在字典中,可以用STL set,也是轻松AC
解题代码二:
判断字符串是否在字典中,可以用hash,于是手写ha...
分类:
其他好文 时间:
2014-05-16 02:48:12
阅读次数:
377
给出正整数n,则1~n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3
1,3 1 2,3 2 1 这6个排列。字典序算法如下:假设这n个数的某一个排列为 P: P1 P2 P3...Pj-1 Pj Pj+1...P...
分类:
其他好文 时间:
2014-05-15 02:04:34
阅读次数:
333