题目链接:http://acm.hrbust.edu.cn/vj/index.php?c=problem-problem&id=190592题意:给出p*q的棋盘,从(A,1)开始,走“日”字,问能否走完棋盘上所有的点,如果能,按字典序输出路径;思路:DFS,并保存路径即可,注意处理走的方向顺序in...
分类:
其他好文 时间:
2014-09-19 01:02:24
阅读次数:
281
题目: uva 116 Unidirectional TSP
题意:给出一个矩阵,当前的格子值为后面三个方向的格子最小值和当前的和,就第一列的最小值并打印路径(相同则去字典序最小的)、
分析:刚开始想错了,从前往后走,这样的话没有办法控制字典序最小,用dfs标记了一下超时了。
其实从后往前走就好了。以后一定先想清楚顺序,然后dp的时候选择字典序最小的,用father数据记录即...
分类:
其他好文 时间:
2014-09-18 09:49:33
阅读次数:
163
题意:给你n个模式串,每个模式串有一个得分,让你构造出一个长度为N之内且分数最高的文本串;输出字典序列最小的。解题思路: AC自动机 + DP , 不过要输出字典序列最小,多开一个 一个三维字符串来辅助二维DP(新思路) , DP[i][j] ,表示到i位置状态为j的最大得分。解题代码: 1 //....
分类:
其他好文 时间:
2014-09-17 00:54:01
阅读次数:
429
题目链接:uva 10821 - Constructing BST
题目大意:给定节点个数以及树的高度,求一个字典序最小的插入顺序,使得生成的BST高度为H。
解题思路:根据H来确定说左右子树的节点个数,因为要求字典序尽量小,所以右子树的节点个数应该尽量多。
#include
#include
#include
using namespace std;
int N, H;...
分类:
其他好文 时间:
2014-09-16 17:28:21
阅读次数:
254
HDU 5008 Boring String Problem
题目链接
思路:构造后缀数组,利用height的数组能预处理出每个字典序开始的前缀和有多少个(其实就是为了去除重复串),然后每次二分查找相应位置,然后在往前往后找一下sa[i]最小的
代码:
#include
#include
#include
using namespace std;
typedef l...
分类:
其他好文 时间:
2014-09-15 21:21:09
阅读次数:
271
题目链接:hdu 5008 Boring String Problem
题目大意:给定一个字符串,初始状态l,r为0,每次询问子串中字典序第l^r^v+1的子串区间,对于重复的输出下标小的。
解题思路:后缀数组,对给定字符串做后缀数组,然后根据height数组确定每个位置做为起点的子串有多少,然后二分查找确定起点位置,但是因为子串的重复的要输出下表小的,所以确定起点后还要确定字典序最小...
分类:
其他好文 时间:
2014-09-15 19:32:07
阅读次数:
188
题目:给你一个n*m的数字表格,找到一条从左到右的路径,使得上面的数字和最小。
(每次可以从(i,j),走到(i,j+1),(i+1,j),(i-1,j)可以越界。)
分析:dp,动态规划。因为要字典序最小,所以采用从右向左的方式dp;
状态:f(i,j)表示走到(i,j)的最小和,则有转移方程:
f(i,j)= min(f...
分类:
其他好文 时间:
2014-09-15 14:20:59
阅读次数:
177
字典序排列:一个个的递归填充;
1:1-n的全排列
int n;
void permutation(int cur,int *A)
{
if(cur==n)
{
for(int i=0;i<n;i++)
printf("%d ",A[i]);
printf("\n");
return;
}
...
分类:
其他好文 时间:
2014-09-13 22:54:36
阅读次数:
368
大意:在5--12个字符中找到满足给出等式的字符串,并是按照字典序最大的串。对字符串排序,每次挑选5个可能最大的字符,进行匹配,不符合,则把其中最小的换掉。通过简单的暴力枚举就可实现。例如:s=987654; 枚举:98765-98764-98756-98754……#include #include...
分类:
其他好文 时间:
2014-09-13 12:00:15
阅读次数:
139
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4996题意:求1到n的全排列中,有多少个排列的最长上升子列长度为K?思路:对于当前的最长上升子列,我们记录最后一个值得最小值即可。因此我们用2^n的状态表示当前最长上升子列中使用了哪些数字,且字典序最小。...
分类:
其他好文 时间:
2014-09-12 23:26:44
阅读次数:
219