字典序全排列算法研究一.非递归算法(字典序法)对给定的字符集中的字符规定了一个先后关系,在此基础上规定两个全排列的先后是从左到右逐个比较对应的字符的先后。例如:字符集{1,2,3},较小的数字位置较先,这样按字典序生成的全排列是 123,132,213,231,312,321※ 一个全排列可看做一个...
分类:
其他好文 时间:
2014-08-12 18:20:14
阅读次数:
277
题目链接:
啊哈哈,点我点我
题意:就是给了m个限制条件,然后形式是啊a,b就是说编号为a的小球比编号为b的小球青,最后输出字典序最小的序列出来。
思路:如果正常的正向建图的话,有可能得到的不是字典序最小的序列。。比如有这样一个例子1->5->4,6->2->3,如果正向建图得到的序列将会是
5 2 1 3 4 6,,而正确的序列式怎么感觉碰到一些题目按字典序都要逆向枚举啊。。1 3...
分类:
其他好文 时间:
2014-08-12 00:44:13
阅读次数:
258
擅长排列的小明
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
输入
第一行输入整数N(1
...
分类:
其他好文 时间:
2014-08-11 21:19:52
阅读次数:
273
头太晕了 喝了太多 ..就想提一点 对于 拓扑排序的这2题 为什么一个是正向 一个是逆向主要是看题目要求 因为拓扑排序的结果总是有很多种存在的一般来说 它会让你输出它指定要求的形式的答案那么 如果是按字典序输出 就是 greater 情况下的优先队列 并且 正向 如果是尽量使小的数字 靠前输出 而....
分类:
其他好文 时间:
2014-08-11 21:04:22
阅读次数:
280
题目大意:
给出完成n门功课的所需要的时间和n门功课上交时间的deadline。
如果比deadline 晚交一天就要扣一分。
安排出完成顺序使得扣分最少。
思路分析:
dp[s] 表示完成了s 状态下的功课所扣分的最优解。
对于每一个状态,我们转移的时候将每一门没有完成的功课加入其中,这样就保证了逐一完成。
需要注意的是字典序最小的问题,开始的时候对输入的字...
分类:
其他好文 时间:
2014-08-10 18:48:20
阅读次数:
210
题意:
给出若干张图片(矩形边框)叠在一起的效果图,保证边框为一个字符宽度,边长不短于3个字符,每条边都能看见一部分,每张图有且仅有一种字母且不重复,求出其从底到顶的叠放顺序,如果有多个解,按字典序输出每个解。题目保证有解
分析:
首先要从凌乱的效果图中把每张图的信息抠出来,因为每条边保证可见,所以只要扫描四条边就行,得到了四条边的位置,就能确定某张图的位置。
图叠在一起只能看见每个位置顶部的图,也就是该位置有可能出现的图都在顶部那张图的下面,比如在(1,1)有A,B,C,D四张图,我们只能看见A,那么A在...
分类:
其他好文 时间:
2014-08-10 15:50:50
阅读次数:
874
题意:
输入有两行,第一行给出若干出现的字母,第二行给出若干对关系x y,表示x<y,要从小到大排序,求所有合法序列,按字典序输出。
分析:
按字典序输出所有的拓扑序,和POJ 1128 &ZOJ 1083的方法一样,回溯求解即可,详情请戳这里: POJ 1128 & ZOJ 1083 Frame Stacking (拓扑排序)
这题的输入是比较恶心的,要注意写得鲁棒些。...
题意 给你n个DNA串 求它们的长度最大的公共子串 如果有多个 输出字典序最小的 长度小于3的不算
每个DNA串的长度都是60 可以从子串长度为60依次递减 并枚举所有该长度子串 当某个长度的子串也为其它n-1个串的子串时 就是我们要的答案了
判断是否为其它DNA串的子串直接kmp就行了...
分类:
其他好文 时间:
2014-08-09 18:48:08
阅读次数:
302
题目链接:
啊哈哈,点我点我
题意是:
第一列给出所有的字母数,第二列给出一些先后顺序。然后按字典序最小的方式输出所有的可能性。。。
思路:
总体来说是拓扑排序,但是又很多细节要考虑,首先要按字典序最小的方式输出,所以自然输入后要对这些字母进行排列,然后就是输入了,用scanf不能读空格,所以怎么建图呢??设置一个变量判断读入的先后顺序,那么建图完毕后,就拓扑排序了,那么多种方式自然...
题目链接:uva 1378 - A Funny Stone Game
题目大意;两个人玩游戏,对于一个序列,轮流操作,每次选中序列中的i,j,k三个位置要求ij≤k,然后arr[i]减1,相应的arr[j]和arr[k]加1,不能操作的人输,问先手是否必胜,必胜的话给出字典序最下的必胜方案,负责输出-1.
解题思路:首先预处理出各个位置上的SG值,然后对于给定序列,枚举位置转移状态后判...
分类:
其他好文 时间:
2014-08-09 00:20:07
阅读次数:
352