CF1304B Longest Palindrome 题解
description:
给你 nnn 个长度为 mmm 的字符串。
请你判断删去其中的几个(或者不删去),能使得将剩下字符串随意排列所形成的回文串长度最大。
请你输出最大的长度和那个回文串。
1≤n≤1001\le n\le 1001≤n≤100,1≤m≤501\le m\le 501≤m≤50。
translate by @ShineEternal。
solution:
我们将字符串两两判断,是否有一个与另一个的倒序相等即可。
但是要注意可能可以在最中间填一个自身回文串,且最多填一个,所以还要考虑这种情况,把自身回文串找出来,如果有一个没被用过,那就填进去即可。
code:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
char s[105][55],sx[105][55];
int mp[1005];
int a[1005];
int m;
int check(int i,int j)
{for(int k=0;k<m;k++){if(s[i][k]!=s[j][m-k-1])return 0;}return 1;
}
int main()
{int n;scanf("%d%d",&n,&m);int tmp=-1;for(int i=1;i<=n;i++){scanf("%s",s[i]);}/*for(int i=1;i<=n;i++){for(int j=0;j<m;j++){int k=m-j-1;sx[i][j]=s[i][k];}}*/int cnt=0;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){//cout<<s[i]<<endl;if(check(i,j)){// printf("%d %d\n",i,j);a[++cnt]=i;a[++cnt]=j;//printf("cnt=%d\n",cnt);//ans++;}}}for(int i=1;i<=cnt;i++){mp[a[i]]=1;}//printf("mp=%d\n",mp[4]);for(int i=1;i<=n;i++){if(mp[i]!=1){//printf("i=%d\n",i);int tag=0;for(int j=0;j<m;j++){if(s[i][j]!=s[i][m-j-1]){tag=1;break;}}if(tag==0){tmp=i;}}}//printf("tmp=%d\n",tmp);if(tmp!=-1)printf("%d\n",(cnt+1)*m);elseprintf("%d\n",cnt*m);for(int i=1;i<=cnt;i++){if(i%2==1){//if(a[i]==tmp)flag=1;printf("%s",s[a[i]]);}//cout<<s[a[i]];}if(tmp!=-1){printf("%s",s[tmp]);}for(int i=cnt;i>=2;i--){if(i%2==0){// if(a[i]==tmp)flag=1;printf("%s",s[a[i]]);}}printf("\n");return 0;
}
CF1304B Longest Palindrome 题解相关推荐
- 409 Longest Palindrome
Longest Palindrome 这题我完全想错了. 求最长回文.~~统计个个字母出现次数.奇数的保留最大的那个.偶数全保留.~~这个思路完全错了. 因为奇数中成对的数字也是可以拿来用的. 正确的 ...
- leetcode409.Longest Palindrome
题目要求 Given a string which consists of lowercase or uppercase letters, find the length of the longest ...
- Longest Palindrome CodeForces - 1304B(思维)
Returning back to problem solving, Gildong is now studying about palindromes. He learned that a pali ...
- C#LeetCode刷题之#409-最长回文串(Longest Palindrome)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3788 访问. 给定一个包含大写字母和小写字母的字符串,找到通过这 ...
- leetcode题库:5.最长回文子串Longest Palindrome string
题目描述: /** 题目地址:https://leetcode-cn.com/problems/longest-palindromic-substring/description/ * 题目:最长回 ...
- 【回文串9】LeetCode 409. Longest Palindrome
LeetCode 409. Longest Palindrome Solution1:我的答案 有时候真笨的可以... class Solution { public:int longestPalin ...
- 【LeetCode题解-005】longest Palindrome Substring
题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum le ...
- LeetCode Longest Palindrome(计算最长的对称串)
题意:给出一个字符串,问用这个字符串的字符可以组成的最长的对称串的长度 思路:用map来做,如果字符的个数为偶数个,直接相加,如果字符个数为奇数个,取小于这个奇数的最在偶数.如果奇数个字符的个数存在多 ...
- LeetCode 力扣算法题解汇总,All in One
作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...
最新文章
- 设计模式之观察者模式学习笔记
- bzoj1601 [Usaco2008 Oct]灌水
- Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)
- java初学者笔记总结day6
- linux的tty进程,Linux 进程详解 ps aux 命令 nohup kill 和 tty - 简明教程
- 脑洞大开!油画渲染的新算法 Paint Transformer!ICCV2021 Oral!
- 平台层-适配层-核心层|拆分环信ONE SDK架构
- LINQ查询表达式详解(2)——查询表达式的转换
- 哈尔滨工业大学-计算机系统大作业-程序人生
- 2018中国企业云计算应用现状及需求调研报告
- 手把手带你从0搭建一个Golang ORM框架(上)!
- php微信转发无法显示标题图片,微信分享到朋友圈的链接,内容打开正常,但在微信中分享时封面缩略图图像和标题显示不出来?...
- ei指什么_EI是什么
- 被夸大的伊朗“Twitter革命”
- 刷刷刷!-数据分析必刷文档整理
- 167	The Sultan's Successors
- mac下CSV文件编码格式查看与转换
- MySql项目查询优化经验总结
- DOA_GAN的近似复现
- MFC限制鼠标区域、画橡皮条线、任务栏显示图标、核对标记、文档背景色(二)
热门文章
- 论文笔记:主干网络——AlexNet
- 毕业论文大全 (本科)
- PIC16F1829 单片机配置和DEMO CODE
- 2011计算机考研分数线,2011华科计算机考研复试基本分数线.pdf
- 营业税与增值税的区别有哪些?
- java节假日 调休的代码,java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...
- 乱扔垃圾,出来挨打?Python制作垃圾分类小游戏,从你做起。
- android studio 镜像服务器设置,Android studio配置国内镜像源的实现
- 告诉你咱穷人怎么过情人节
- 基于MySQL的淘宝用户行为数据分析