【codevs2980】买帽子
来源:互联网 发布:淘宝童装小模特 编辑:程序博客网 时间:2024/05/17 03:52
题目描述 Description
小A想买一顶新帽子,商店里有n个帽子 (1<=n<=100),每顶帽子上有一个字符串,字符串的长度为len (1<=len<=500)。她认为每顶帽子上的字符串看起来越对称则代表这顶帽子更漂亮。根据每个字符串,我们可以算出其对称系数k (即最长对称子序列的长度) 来比较各顶帽子在小A心中的漂亮程度。
例如,字符串 character (k=5) 比 pollution (k=4) 更对称,apple (k=2) 比 pear (k=1) 更对称。
现在给定n个字符串,请将它们按对称系数排序后从大小输出 (k相同时按字典序排序)。
输入描述 Input Description
输入数据第一行只有一个n,表示有个字符串。
接下来有n行,每行一个字符串。
输出描述 Output Description
输出有n行,每行一个字符串,表示按对称系数从大到小排序后的字符串,对称系数相同时按字典序排序。
样例输入 Sample Input
5
pineapple
banana
peach
coconut
character
样例输出 Sample Output
banana
character
pineapple
coconut
peach
数据范围及提示 Data Size & Hint
数据范围:
1<=n<=100
1<=len<=500
1<=k<=len
提示:
对称系数k是指最长对称子序列的长度,非最长对称子串的长度。
正反存储求一边最长公共子序列即可。
排序的时候要非常注意。字符串的比较大小要注意了:先逐位比较,小的就小,大的就大,如果前面都一样的话,再比较长短
【代码】
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,len;int f[505][505];char s[105][505],a[505],b[505];struct hp{int val,num,str;}temp[505];inline int cmp(hp p,hp q){if (p.val>q.val) return 1;else if (p.val<q.val) return 0;//!int len=min(p.str,q.str);for (int i=0;i<len;++i) if (s[p.num][i]<s[q.num][i]) return 1; else if (s[p.num][i]>s[q.num][i]) return 0;//!if (p.str<q.str) return 1;else return 0;}int main(){scanf("%d\n",&n);for (int i=1;i<=n;++i){gets(s[i]);len=strlen(s[i]);for (int j=1;j<=len;++j) a[j]=s[i][j-1];for (int j=1;j<=len;++j) b[j]=a[len-j+1];memset(f,0,sizeof(f));for (int x=1;x<=len;++x) for (int y=1;y<=len;++y) if (a[x]==b[y]) f[x][y]=f[x-1][y-1]+1; else f[x][y]=max(f[x-1][y],f[x][y-1]);temp[i].val=f[len][len];temp[i].num=i;temp[i].str=len;}sort(temp+1,temp+n+1,cmp);for (int i=1;i<=n;++i){for (int j=0;j<temp[i].str;++j) putchar(s[temp[i].num][j]);putchar('\n');}}
0 0
- 【codevs2980】买帽子
- codevs2980买帽子
- 【codevs2980】买帽子 动态规划
- 买帽子
- 买帽子
- 买帽子
- 2980 买帽子
- code vs 买帽子
- Codevs 2980 买帽子
- CDOEVS 2980 买帽子
- 百度笔试- 买帽子
- 牛客网 买帽子
- [编程题] 买帽子
- [编程题] 买帽子
- 【算法题】买帽子
- 校招真题 百度 买帽子
- [编程题] 买帽子
- 买帽子 (hash)
- PAT 1081. Rational Sum (20)
- Lua封装格式化float
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败
- 哈希算法
- Lua重新加载Lua文件
- 【codevs2980】买帽子
- 现世因果教育收益者分享
- Eclipse 里面 用RMI 插件来编写 RMI server and client的实际例子
- GDB使用
- RQNOJ 金明的预算方案
- 和为0的4个值(4 Values Whose sum is Zero UVa 1152)
- Masonry手码布局
- Lua增加ccbi
- 博客地址