/*CF335B
这个题目的n达到50000,但是串只是有小写字母组成,所以如果字符串的长度大于2600,那么
肯定存在,所开始输入就判断如果长度大于2600,那么直接找当个字母输出100个
否则执行LCS模块,然后判断所得最长公共是否大于100,如果小于100,那么直接输出最长公共
否则从两头分别取50个输出*/
#include<stdio.h>
#include<string.h>
int dp[][],dir[][];
char a[],b[],c[];
void LCS(int n,int m)
{
int i,j;
memset(dp,,sizeof(dp));
memset(dir,,sizeof(dir));
for(i=;i<=n;i++)
for(j=;j<=m;j++)
{
if(a[i-]==b[j-])
{
dp[i][j]=dp[i-][j-]+;
dir[i][j]=;
}
else if(dp[i-][j]>dp[i][j-])
{
dp[i][j]=dp[i-][j];
dir[i][j]=;
}
else
{
dp[i][j]=dp[i][j-];
dir[i][j]=;
}
}
}
int cont=;
void print(int n,int m)
{
if(n== || m==) return;
if(dir[n][m]==)
{
print(n-,m-);
c[cont++]=a[n-];
}
else if(dir[n][m]==) print(n-,m);
else print(n,m-);
}
int main()
{
int j,n;
int hash[],flag=,i=;
char s;
memset(hash,,sizeof(hash));
gets(a);
n=strlen(a);
for(i=;i<n;i++)
{
hash[a[i]]++;
}
for(i=;i<;i++)
{
if(hash['a'+i]>=) { s='a'+i; flag=; break;}
}
if(flag)
{
for(i=;i<=;i++)
printf("%c",s);
printf("\n");
}
else
{
for(i=,j=n-;i<n;i++,j--)
b[j]=a[i];
cont=;
memset(c,,sizeof(c));
LCS(n,n);
print(n,n);
int num=strlen(c);
//printf("%d\n",num);
char m1[],m2[];
if(num<=) printf("%s\n",c);
else
{
memset(m1,,sizeof(m1));
memset(m2,,sizeof(m2));
for(i=;i<;i++)
m1[i]=c[i];
for(i=num-,j=;i>=num-;i--,j--)
m2[j]=c[i];
//int num1=strlen(m1);
//int num2=strlen(m2);
printf("%s%s\n",m1,m2);
} }
return ;
}

CF335B的更多相关文章

随机推荐

  1. Oracle之完全卸载

    1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHome81->Oracle I ...

  2. linux 环境 tomcat 莫名奇妙挂掉

    ::-exec-] org.apache.coyote.http11.Http11Processor.service Error processing request java.lang.NullPo ...

  3. [LintCode] 尾部的零

    class Solution { public: // param n : description of n // return: description of return long long tr ...

  4. 160728、Spark Streaming kafka 实现数据零丢失的几种方式

    定义 问题开始之前先解释下流处理中的一些概念: At most once - 每条数据最多被处理一次(0次或1次) At least once - 每条数据最少被处理一次 (1次或更多) Exactl ...

  5. MySQL安装和Navicat安装、破解

    1)mysql下载 地址:https://dev.mysql.com/downloads/mysql/ 2)一路next安装,安装好后文件目录如下(不包括data文件夹,my.ini文件) 3)新建文 ...

  6. tomcat的虚拟目录映射常用的几种方式

      我们在项目部署的时候,可以采用多种方式,接下来我们将在实际中比较常用的几种方式总结如下. 1.可以直接将我们的项目丢到tomcat的webapps目录下,这样当tomcat重启的时候,我们就可以访 ...

  7. mysql 数据库表名大小写问题

    lower_case_table_names=1 原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /usr/my.cnf: ...

  8. py, pyc, pyw, pyo, pyd 及发布程序时的选择 Compiled Python File (.pyc)

    Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择 - 司开星的专栏 - CSDN博客 https://blog.csdn.net/chroming/artic ...

  9. MAC OSX--docker

    http://www.cnblogs.com/yjmyzz/p/docker-install-tutorial.html http://www.cnblogs.com/yjmyzz/p/docker- ...

  10. ES6通过Set数组去重

    一.Set 1.定义 Set对象是ES6中新定义的数据结构,类似于数组,它允许你存储任何类型的唯一值,不管是原始值还是对象引用. 2.语法 new Set([iterable]) iterable:可 ...