噫本来今天高高兴兴

本来今天不想写博客来着,
哎,看见栋栋大神做题了,
我就跟风过去瞅瞅。。。

题目描述 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是指最长对称子序列的长度,非最长对称子串的长度。

题意理解没啥难度
就是求一个字符串的最长回文子序列
注意是子序列不是字串、
字串的话完全可以暴力。
子序列就要用到DP了;;。

DP去死!

。。。。。

对于每个字符串,我们可以将他翻转;
生成另一个字符串;
之后,只需要求这两个字符串的最长公共子序列就好了,
用LCS求;

具体做法就是一个二维的DP矩阵
之后枚举每一个点。

如果对于这个i j 两字符串相同
f[i][j]=f[i-1][j-1]+1
else
f[i][j]=max(f[i-1][j],f[i][j-1]);

最后得到的f[len][len] 即为答案
注意从1开始枚举,防止数组越界。


呜啦啦啦啦

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<stack>
#include<cstdlib>
#include<string>
#include<bitset>
#include<iomanip>
#include<deque>
#define INF 1000000000
#define fi first
#define se second
#define N 100005
#define P 1000000007
#define debug(x) cerr<<#x<<"="<<x<<endl
#define MP(x,y) make_pair(x,y)
using namespace std;
int n,m;
struct zqm
{string s;int k;
}q[101];
inline int get_num()
{
int num = 0;
char c;
bool flag = false;
while ((c = getchar()) == ' ' || c == '\n' || c == '\r');
if (c == '-') flag = true;
else num = c - '0';
while (isdigit(c = getchar()))
num = num * 10 + c - '0';
return (flag ? -1 : 1) * num;
}
int js(string s)
{int len=s.size(),f[511][511];memset(f,0,sizeof(f));string ss;for(int i=0;i<len;i++){ss[len-i-1]=s[i];}for(int i=1;i<=len;i++){for(int j=1;j<=len;j++){if(s[i-1]==ss[j-1]){f[i][j]=f[i-1][j-1]+1;}else{f[i][j]=max(f[i-1][j],f[i][j-1]);}}}return f[len][len];
}
bool cmp(zqm a,zqm b)
{if(a.k==b.k){return a.s<b.s;}return a.k>b.k;
}
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>q[i].s;q[i].k=js(q[i].s);}sort(q+1,q+1+n,cmp);for(int i=1;i<=n;i++){cout<<q[i].s<<endl;}
}

。0.0.0

codevs 2980 买帽子 题解报告相关推荐

  1. 钞票买道具题解报告(dp)

    Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前. 死亡 ...

  2. codevs 2618 核电站问题 题解报告

    噫. 题目描述 Description 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定的N和M,求不发生爆 ...

  3. codevs 1507 酒厂选址 题解报告

    噫 题目描述 Description Abstinence(戒酒)岛的居民们酷爱一种无酒精啤酒.以前这种啤酒都是从波兰进口,但今年居民们想建一个自己的啤酒厂.岛上所有的城市都坐落在海边,并且由一条沿海 ...

  4. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  5. CSP-2019day1题解报告

    day1题解报告 题目 T1 T2 从链想起 转为正解 T3(摘自同级大佬xez) 题目 T1传送门 T2传送门 T3传送门 T1 乍一看,这道题做过,可以用对称性做,如果他的长度过了一半,就输出1, ...

  6. 爆炸的符卡洋洋洒洒题解报告

    爆炸的符卡洋洋洒洒题解报告 标签:动态规划 题目链接 来源:牛客网 解题思路: 显而易见的背包问题 但再观察a,b的数据范围,开不了那么大的dp数组 这就启发我们去优化,由于题目要求魔力总耗的是k的倍 ...

  7. 2022杭电多校5题解报告(同步自语雀)

    一.赛后总结 Wuhu~萌新又来啦~ 第一次在考场上写出NTT,虽然是比较裸,但感觉真的不错~ 开场看03,思路比较直,就是dijk,但跨层跳跃想了好久~最后想到了类似于B树或者B-树一类的层内链表, ...

  8. 2022杭电多校4题解报告(同步自语雀)

    一.赛后总结 嘤嘤嘤,本人纯萌新,深夜反思自己到底有多菜~(:′⌒`) 前天没写出状压,再前面不会SAM和圆方树,再往前不会NTT和FFT,真的是个啥也不会的萌新呢. 这场主要的问题在于02的0环和1 ...

  9. 2022牛客多校2题解报告(同步自语雀)

    一.赛后总结 总结就是缺乏清晰的大脑,当然一切的一切归因于实力不足. 开局看K,半个小时推出DP式子,交了就WA.差错没查出来,写了暴力对拍,就去看D了.后来拍了3个小时也没出问题...可能是数据生成 ...

  10. 【题解报告】ZJNU综合训练(2021.1.26)

    [题解报告]ZJNU综合训练(2021.1.26) B C D F H I J M 综合训练 ZJNU综合训练(2021.1.26) B:DP+搜索 | CF 1057C C:组合数学+dp | CF ...

最新文章

  1. 梦境交互:做个现代灵媒,考虑一下?
  2. 知乎快捷取消我关注的问题chrome插件
  3. 关于MonoBehaviour的单例通用规则
  4. 【原创】二级指针中在内存中的样子
  5. 黔东南天气预报软件测试,黔东南天气预报15天
  6. 今天我理解了妈妈为什么会被电信诈骗
  7. C语言高效编程的几招
  8. Java开发 明华usbkey_明华驱动官方版下载-明华usbkey数字证书驱动下载v3.0.2420.9 最新版-当易网...
  9. matlab显示图像的横纵坐标
  10. 新元宇宙奇科幻小说每周连载《地球人奇游天球记》第十回月亮之宴
  11. 扫地机器人作文说明文提纲_扫地机器人的作文
  12. 403forbidden
  13. android调用qq打开指定qq号进行聊天
  14. 服务器 战地4 无限载入,战地4卡在loading界面无限载入的解决方法_快吧单机游戏...
  15. muduo日志学习笔记
  16. html表单元素占位符是,HTML各种表单元素模板及写法
  17. 蓝桥杯官网题2(含VIP试题且带详细解析!小白看过来!!
  18. 如何检查MDAC版本,如何查看MDAC版本
  19. Android 阿里云推送,针对安卓8.0、9.0以上系统收不到推送 的补丁文档
  20. DNS BIND之DNS轮询负载

热门文章

  1. Swift-字符串和字符
  2. 小程序打开docx文件失败_NPOI生成的word文档
  3. js骚操作骂人不带脏
  4. 《基于多任务神经网络的语种识别研究》——秦晨光
  5. Qt自定义控件--QQ表情
  6. 基于SSM框架的网上购物送货系统
  7. 服务器amd cpu性能排行,2018年PC处理器性能排行:英特尔9代酷睿被AMD反超!
  8. AWS RDS services
  9. 程序员交流地必备技能:【怎么让外行理解陌生地东西?】由简喻难(用熟悉的事物形容不熟悉的事物、用来打比方的事物,相似点要直观、通过比喻产生美感、创造概念,浓缩某方面的认知)
  10. 个人项目-数独(Python实现)——从解数独到写游戏