暑假集训单切赛第一场 UVA 1737 Mnemonics and Palindromes 3
题意:求由a,b,c三个字母组成的长度为n的字符串,其任意连续的至少长度大于等于2的子字符串都不是回文,问这个字符串有多少种?并字典序输出
如果所有种类的字符串总长度大于100000个字符,就输出TOO LONG.
思路:先动手写写 如前两个ab,则第三个不能为a,b,只能为c。 接下来,不能为b,c,只能为a。 于是找出规律,某一位上的字母不能与前两位的相同,这样由开头两个字母就唯一确定一串字符串
于是开头两个字母,只有6种,所以不管n(n>=2)取多少,满足要求的都只有6种。
由于样例可能为n=1,所以当n=1时,只要输出a b c即可。
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <queue> using namespace std;
char s[][]= {"ab","ac","ba","bc","ca","cb"};
char ch[]= {'a','b','c'};
int n,length;
int main() {
scanf("%d",&n);
if(n*>)
printf("%TOO LONG\n");
else if(n==) {
for(int i=; i<; i++)
printf("%c\n",ch[i]);
} else {
for(int i=; i<=; i++) {
length=;
printf("%s",s[i]); while(length<n) {
for(int j=; j<; j++) {
if(s[i][]!=ch[j] && s[i][]!=ch[j]) {
printf("%c",ch[j]);
s[i][]=s[i][];
s[i][]=ch[j];
length++;
break;
}
}
}
printf("\n"); }
}
return ;
}
暑假集训单切赛第一场 UVA 1737 Mnemonics and Palindromes 3的更多相关文章
- 暑假集训单切赛第二场 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)(字符串处理)
一开始不懂啊,什么Home键,什么End键,还以为相当于括号,[]里的东西先打印出来呢.后来果断百度了一下. 悲催啊... 题意:给定一个字符串,内部含有'['和']'光标转移指令,'['代表光标移向 ...
- 暑假集训单切赛第二场 UVA 10982 Troublemakers
题意:将点放在两个集合,同一个集合的边保留,不同集合的边删去,使得边至少减少一半. 输出任何一种方案即可.如果不能,输出Impossible 思路:设如果两个人为一对捣蛋鬼,则two[i][j]=t ...
- 暑假集训单切赛第一场 POJ 2309 BST(找规律的题)
题意:给出一棵二分搜索树,再给一个节点编号n,求以这个节点为根节点的子树叶子节点的最大值与最小值. 首先求n所在的层数,他的层数就是他的因子中2的个数(规律). n的左右各有num=2^i-1个数.最 ...
- 暑假集训单切赛第一场 CF 191A Dynasty Puzzles
题意不说了,看原题吧,思路见代码: #include <iostream> #include <stdio.h> #include <string.h> #incl ...
- 暑假集训单切赛第一场 CF 266E More Queries to Array(线段树+二项式展开式)
比赛时,第二题就是做的这个,当时果断没仔细考虑,直接用线段树暴力求.结果易想而知,超时了. 比赛后搜了搜题解,恍然大悟. 思路:显然用线段树,但是由于每次查询都会有变,所以不可能存储题目中的式子. ...
- Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)
Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...
- NOI.AC NOIP模拟赛 第一场 补记
NOI.AC NOIP模拟赛 第一场 补记 candy 题目大意: 有两个超市,每个超市有\(n(n\le10^5)\)个糖,每个糖\(W\)元.每颗糖有一个愉悦度,其中,第一家商店中的第\(i\)颗 ...
- HDU6578 2019HDU多校训练赛第一场 1001 (dp)
HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...
- HDU6579 2019HDU多校训练赛第一场1002 (线性基)
HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...
随机推荐
- 济南学习 Day 3 T1 am
NP(np)Time Limit:1000ms Memory Limit:64MB题目描述LYK 喜欢研究一些比较困难的问题,比如 np 问题.这次它又遇到一个棘手的 np 问题.问题是这个样子的:有 ...
- 不用Unity库,自己实现.NET轻量级依赖注入
在面向对象的设计中,依赖注入(IoC)作为一种重要的设计模式,主要用于削减计算机程序的耦合问题,相对于Java中的Spring框架来说,微软企业库中的Unity框架是目前.NET平台中运用比较广泛的依 ...
- 4.Servlet_Form表单处理
1.建项目"3Servlet_Form",src下建包“com.amaker.servlet”,web-root下建Register.html <!DOCTYPE html& ...
- linux od命令: 按不同进制显示文件
介绍:od(octal dump)命令可以以八进制.十进制.十六进制和ASCII码来显示文件或者流,它们对于访问或可视地检查文件中不能直接显示在终端上的字符很有用.语法: od [-A 地址进制] [ ...
- 最小化安装Centos7后的部署(个人)
一.配置网络 1. 自动获取IP地址 使用ip addr查看网络设备名称,我的网卡名称为enp0s3.找到设备名称后配置enp0s3的配置文件. 打开Vi /etc/sysconfig/networ ...
- NSS_10 EXTJS给弹出的子窗口传递参数
在桌面程序中, 如果需要弹出一个子面板, 并且需要传一些参数给子面板, 我通常的作法就是:在子面板添加对应的数据成员,然后一个构造函数来接收这些参数并赋值级数据成员. 实现起来非常方便. 但是在Ext ...
- openerp 经典收藏 通过view实现字段的只读、隐藏操作(转载)
通过view实现字段的只读.隐藏操作 原文地址:http://cn.openerp.cn/view_groups/ 在OpenERP V7视图(ir.ui.view)多了一个非常有用的字段(group ...
- Python编码与解码
# -*- coding: utf-8 -*- # 直接保存为Python脚本,对照执行结果会好看点. # 实验的内容都是在Python 2.7.x下进行的. # Python3默认采用unicode ...
- 表达式语言之EL表达式
1.EL的用法EL的起源:起源于JSTL.EL运算符: 算术型:+.-.*./.div.%.mod.其中/和div都表示求除.%和mod表示求余数. 逻辑型:and或&&.or或||. ...
- 将Vim改造为强大的IDE
1.安装Vim和Vim基本插件 首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可: lingd@ubuntu:~/arm$sudo apt-get install vim vim-s ...