#include
#include
#include
using namespace std;
int n,m;
char S[2100],P[2100];
int main()
{
#ifdef xxz
freopen("in.txt","r",stdin);
#endif // xxz
ios::sync_with_stdio(false);
cin.tie(0...
分类:
其他好文 时间:
2015-02-09 18:20:33
阅读次数:
138
穷举第一个字符串的所有子串,然后再判断其是否是其它字符串的子串。
然后注意输出字典序最小的答案。
判断枚举的子串是不是其它字符串子串时可以使用KMP,其实也可以直接暴力,因为题目数据范围不大。
学到一个技巧:可以使用memset(str,’\0’,sizeof(str)将字符数组清空。
还有一点需要注意的是在自己组合的字符串后面一定要记得加上字符串结束标志’\0’。代码如下:#include...
分类:
其他好文 时间:
2015-02-08 12:54:21
阅读次数:
134
题意:给定长度为N的字符串S,(字符串S全为大写字母组成)要构造一个长度也为N的字符串T。
起初,T是一个空串。随后反复进行下面任意操作:
1.从S的头部删除一个字符,然后加到T的尾部。
2.从S的尾部删除一个字符,然后加到T的尾部。
目的是要构成字典序尽可能小的字符串T。
思路:
从字典序的性质上看,无论T的末尾有多大,只要前面部分的较小就可以了!
所以我们可以初步得到下面的这种贪...
分类:
其他好文 时间:
2015-02-07 17:34:06
阅读次数:
244
这道题是非常基础的动态规划,类似于分阶段决策。题意是:一个M*N的数组,要求从第1列走到第N列且下一步的位置都只能是当前位置的相邻右侧,相邻右上,相邻右下三个位置。要求路径上的格子内的数字和最小。若有和相同的路径,则输出字典序最小的那一条路径。解法其实就是设置一个记忆数组,分阶段决策即可。
但是决策有从左往右和从右往左两种方式。开始我使用的从左往右的方式,这稍微麻烦一点,因为这需...
分类:
其他好文 时间:
2015-02-06 14:55:45
阅读次数:
135
题意:输出给定字符串的字典序最大子串。
思路:统计所有出现过的字符,按字典序从大到小取,取完当前后取下一个,直到结尾。
#include
#include
#include
using namespace std;
int n,m,i,j,k,len;
char a[500010];
int num[50],ch,shu;
int main()
{
while(scanf("%...
分类:
其他好文 时间:
2015-02-04 21:48:14
阅读次数:
279
题意:n个姓名,按照某种“字典序”。
问如果存在这样的字典序,输出字典序'a'到‘z’26个字母的顺序。
思路:拓扑排序。对于str[i]和str[i+1]如果在位置k出现不同,那么x=str[i][k]-'a'+1,y=str[i+1][k]-'a'+1,从x->y连一条边,y的入度in[y]++。
然后拓扑排序,如果形成环,就说明不行,不然依次输出对应字符。(ps:len1为st...
分类:
其他好文 时间:
2015-02-04 18:47:09
阅读次数:
171
Codeforces Round #290 Div1 A
Problem
给N串字符串Si,通常定义字典序大小关系为 'a'
Limits
Time Limit(ms): 2000
Memory Limit(MB): 256
N: 100
|Si|: 100
Solution
用图论方法解决,发现满足拓扑关系。枚举相邻两串Si 与 S(i+1),若发现Si...
分类:
其他好文 时间:
2015-02-04 09:29:58
阅读次数:
191
题意:给n个字符串,它们按照某个字典序从小到大排列,问这个字典序是否存在,存在就输出任意一个满足条件的字典序,否则输出“Impossible”。
裸的topsort,结果在终判时挂了,就因为没有特判,杯具。。。。...
分类:
其他好文 时间:
2015-02-03 15:16:16
阅读次数:
215
题目链接:http://codeforces.com/contest/510/problem/C题目大意:构造一个字母表,使得按照你的字母表能够满足输入的是按照字典序排下来。递归建图:竖着切下来,将每个名字的第x个字母从上到下连接建图。然后求拓扑排序。之所以要拓扑排序,因为要判断在x-1里面有a--...
分类:
编程语言 时间:
2015-02-03 14:40:27
阅读次数:
215
传送:http://codeforces.com/problemset/problem/510/C拓扑排序 一个小trick,字典序不仅要求比较字母大小,还有长度~容易漏掉。。#include using namespace std;vector v[101];queue q;char str[10...
分类:
其他好文 时间:
2015-02-03 14:37:31
阅读次数:
126