首页 > 其他分享 >Codeforces补入门题

Codeforces补入门题

时间:2022-10-08 14:23:47浏览次数:52  
标签:入门 temp int ansr Codeforces 字符串 include 回文

Codeforces Round #620(Div.2) Longest Palindrome

题意

给定n个长度为m的字符串,使用其中尽可能多的字符串构成一个回文串
输出回文串长度及该回文串(顺序可以乱)

分析

由于字符串长度相等,不存在用两个长度不同的字符串拼成回文串引发的更优解
由字符串构成的回文串应该满足前后对应的两个字符串对称,
中间的字符串满足自身回文或者没有中间字符串
在读入的时候便可以全都处理
这里使用string自带的函数处理字符串反转和字符串计数

代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>
using namespace std;
inline int read() {
	register int x = 0, f = 1;
	register char c = getchar();
	while (c < '0' || c > '9') {if (c == '-') f = -1; c = getchar();}
	while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + c - '0',c = getchar();
	return x * f;
}
set<string> queue;
int n, m;
string s, mid, temp, ansl, ansr, ans;
bool flag = false;
int main() {
	int n = read(), m = read();
	for (int i(1); i <= n; i++){
		cin >> s;
		temp = s;
		reverse(temp.begin(),temp.end());//反转
		if (s == temp) {
			if (!flag) mid = s, flag = true;//记录中间的自身回文串
		}
		else if (queue.count(temp)) ansl += s;//如果前面有s的反转串,则计入
		queue.insert(s);
	}
	ansr = ansl;
	reverse(ansr.begin(),ansr.end());//处理右边对应左边的串
	if (flag)//有自身回文串
		ans = ansl + mid + ansr;
	else //没有自身回文串
		ans = ansl + ansr;
	cout << ans.size() << endl << ans << endl;
	return 0;
}

###代码

###代码
```cpp
hello word;
```

标签:入门,temp,int,ansr,Codeforces,字符串,include,回文
From: https://www.cnblogs.com/cancers/p/16768786.html

相关文章

  • gdb入门教程大全(清晰明了)
    gdb介绍gdb只是众多调试器中的一个,但是它是用得最多的,所以有必要了解一下。gdb和gcc一样,都属于gnu开源家族工具链,所以gdb对gcc编译后的程序的调试支持最好。学习一个工具,当......
  • [题解] Codeforces Dytechlab Cup 2022 1737 A B C D E 题解
    傻*Dytechlab还我rating!(不过目前rating还没加上去,据说E是偷的说不定要unrated)实在没预料到会打成这样。。。求点赞点我看题A.ElaSortingBooks从前往后一位一位确......
  • #DAYU200#Ability入门
    坚果老师Ability入门Ability在英文中是能力的意思,在这里是指应用所具备能力的抽象,同时是应用程序的重要组成部分。一个应用可以包含一个或多个FA/PA,其中,FA有UI界面,提供与......
  • Beats 入门实战(1)--简介
    Beats是轻量级(资源高效,无依赖性,小型)和开放源代码日志发送程序的集合,这些日志发送程序充当安装在基础结构中不同服务器上的代理,用于收集日志或指标;本文主要介绍Beats的理......
  • spring boot集成redis基础入门
    redis支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储。可以进行master-slave模式的数据备份更多redis相关文档请查看redis官方文......
  • JavaWeb/JavaEE开发入门(概述-总纲)
    作为初学者的浅知薄见,漫谈概览.欢迎指正和交流.1.从SE到Web到EE开发刚入门Java开发的时候,即使对于计算机网络有所了解,但是对于从围绕JDK展开学习的JavaSE的过程......
  • 简单入门猜数字游戏
    #include<stdio.h>#include<stdlib.h>#include<time.h>voidmenu(){ printf("**********************************************\n"); printf("*** 1.开始游戏 ......
  • 前端三剑客快速入门(三)
    前言前端三剑客快速入门(一)前端三剑客快速入门(二)书接上文,重新排版了。CSSCSS定位基本属性:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • [CodeForces-1198E] Rectangle Painting 2
    题解:朴素做法,是最小点覆盖点数是n*n,考虑离散化后,把每个矩形块看作点,跑最小点权覆盖。将矩形:左下角(x1,y1)到右上角(x2,y2)的x2++,y2++,那么这样离散化后每个x1<=x<x2,y1......
  • 【开悟篇】Java多线程之JUC从入门到精通
    1.多线程J.U.C1.1线程池1.1.1线程回顾1)回顾线程创建方式继承Thread实现Runnable2)线程的状态NEW:刚刚创建,没做任何操作Threadthread=newThread();System.out.println(......