Codevs 2980 买帽子
来源:互联网 发布:网络推广有几种方法 编辑:程序博客网 时间:2024/04/28 21:24
题目:
http://codevs.cn/problem/2980/
题解:
求对称最长公共子序列,将字符串反转,求LCS
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,dp[600][600];char a[200][600],b[200][600];struct node{ int ans; string s;}st[200];int done(int x){ memset(dp,0,sizeof(dp)); int len=strlen(a[x]+1); for(int i=1;i<=len;i++) for(int j=1;j<=len;j++){ if(a[x][i]==b[x][j]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(max(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1]); } return dp[len][len];}bool cmp(node a,node b){ if(a.ans==b.ans) return a.s<b.s; return a.ans>b.ans;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ cin>>a[i]+1; int len=strlen(a[i]+1); for(int j=1;j<=len;j++){ b[i][len-j+1]=a[i][j]; } st[i].s=a[i]+1; st[i].ans=done(i); } sort(st+1,st+n+1,cmp); for(int i=1;i<=n;i++){ // printf("%d %d ",i,st[i].ans); cout<<st[i].s<<'\n'; } return 0;}
阅读全文
0 0
- Codevs 2980 买帽子
- Codevs 2980 买帽子
- Codevs 2980 买帽子 dp(LIS)
- codevs 2980 买帽子(DP)
- codevs 2980 买帽子 题解报告
- <序列DP>codevs 2980 买帽子
- 2980 买帽子
- CDOEVS 2980 买帽子
- 买帽子
- 买帽子
- 买帽子
- codeves 2980 买帽子 字符串dp
- 【codevs2980】买帽子
- code vs 买帽子
- codevs2980买帽子
- 百度笔试- 买帽子
- 牛客网 买帽子
- [编程题] 买帽子
- Spring FactoryBean
- 文章标题
- Nginx下搭建wordpress
- python--leetcode575. Distribute Candies
- 关于创建类和对象
- Codevs 2980 买帽子
- 《程序设计入门—Java语言.翁恺》第二周编程作业(2)-信号报告
- 装饰者模式
- 【JAVASE_学习笔记】标识符与注释
- Java学习第七天
- 最大子连续序列之和
- SSD目标检测框架教程--2017.3
- IIC介绍(一)之物理层介绍
- android发布maven报错:Could not write to file '*****/build/poms/pom-default.xml'