hdu4731 Minimum palindrome (找规律)
这道题找下规律,3个字母或者以上的时候就用abcabcabc....循环即可。
一个字母时,就是aaaaa.....;
当只有2个字母时!
s[1][]=a";
s[2][]="ab";
s[3][]="aab";
s[4][]="aabb";
s[5][]="aaaba";
s[6][]=""aaabab";
s[7][]=""aaababb";
s[8][]=""aaababbb";
s[9][]=""aaaababba";
下面是循环的字符串!!!!
add[1][]="a";
add[2][]="aa";
add[3][]="aaa";
add[4][]="aaaa";
add[5][]="aabab";
add[6][]="aababb";
打表程序!!!
下面是打表程序!!!! #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include<vector>
#include<time.h>
#include<algorithm>
using namespace std;
int dp[];
int pan(int s[],int n)
{
int i,j,k;
int ans=;
for(i=;i<=n;i++)
{
int flag=;
for(j=;j<=n-i+;j++)
{
int x,y;
x=j;y=i+j-;
while(x<=y)
{
if(s[x]!=s[y])break;
x++;y--;
}
if(x>y)flag=;
}
if(flag)ans=i;
}
return ans;
}
int main()
{
int i,j;
int n;
int s[];
while(~scanf("%d",&n))
{
int ans,L;
L=;
for(i=(<<n)-;i>=;i--)
{
int tmp=i;
for(j=n;j>=;j--)
{
s[j]=tmp%;
tmp/=;
}
int tt=pan(s,n);
if(tt<=L)L=tt,ans=i;
}
int tmp=ans;
for(j=n;j>=;j--)
{
s[j]=tmp%;
tmp/=;
}
for(i=;i<=n;i++)
if(s[i])printf("b");
else printf("a");
printf("\n");
}
}
/*
2
ab
3
aab
4
aabb
5
aaaba
6
aaabab
7
aaababb
8
aaababbb
9
aaaababba
10
aaaababba a
11
aaaababba aa
12
aaaababba aaa
13
aaaababba abab
14
aaaababba ababb
15
aaaababba ababba
16
aaaababba ababba a
17
aaaababba ababba aa
18
aaaababba ababba aaa
19
aaaababba ababba abab
20
aaaababba ababba ababb
21
aaaababba ababba ababba
*/
正解!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include<vector>
#include<time.h>
#include<algorithm>
using namespace std;
int cnt[];
char s[][],add[][];
void pre()
{
s[][]='a';s[][]=;
s[][]='a';s[][]='b';s[][]=;
s[][]='a';s[][]='a';s[][]='b';s[][]=;
s[][]='a';s[][]='a';s[][]='b';s[][]='b';s[][]=;
s[][]='a';s[][]='a';s[][]='a';s[][]='b';s[][]='a';s[][]=;
s[][]='a';s[][]='a';s[][]='a';s[][]='b';s[][]='a';s[][]='b';s[][]=;
s[][]='a';s[][]='a';s[][]='a';s[][]='b';s[][]='a';s[][]='b';s[][]='b';s[][]=;
s[][]='a';s[][]='a';s[][]='a';s[][]='b';s[][]='a';s[][]='b';s[][]='b';s[][]='b';s[][]=;
s[][]='a';s[][]='a';s[][]='a';s[][]='a';s[][]='b';s[][]='a';s[][]='b';s[][]='b';s[][]='a';s[][]=; add[][]='a';add[][]=;
add[][]='a';add[][]='a';add[][]=;
add[][]='a';add[][]='a';add[][]='a';add[][]=;
add[][]='a';add[][]='b';add[][]='a';add[][]='b';add[][]=;
add[][]='a';add[][]='b';add[][]='a';add[][]='b';add[][]='b';add[][]=;
add[][]='a';add[][]='b';add[][]='a';add[][]='b';add[][]='b';add[][]='a';add[][]=;
}
int main()
{
pre();
int i,j;
int T;
int ca=;
scanf("%d",&T);
while(T--)
{
ca++;
int m,n;
scanf("%d%d",&m,&n);
printf("Case #%d: ",ca);
if(m==)
{
for(i=;i<=n;i++)
printf("a");
printf("\n");
continue;
}
if(m==)
{
if(n<=)printf("%s",s[n]);
else
{
printf("%s",s[]);
n=n-;
for(i=;i<=n/;i++)
{
printf("%s",add[]);
}
if(n%)printf("%s",add[n%]);
}
printf("\n");
continue;
}
char tmp='a';
for(i=;i<=n;i++)
{
printf("%c",tmp);
if(i%==)tmp='a';
else tmp++;
}
printf("\n");
}
}
hdu4731 Minimum palindrome (找规律)的更多相关文章
- 2013 ACM/ICPC Asia Regional Chengdu Online hdu4731 Minimum palindrome
Minimum palindrome Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU 4731 Minimum palindrome (2013成都网络赛,找规律构造)
Minimum palindrome Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU 4731 Minimum palindrome (找规律)
M=1:aaaaaaaa…… M=2:DFS+manacher, 暴出N=1~25的最优解,找规律.N<=8的时候直接输出,N>8时,头两个字母一定是aa,剩下的以aababb循环,最后剩 ...
- HDU 4731 Minimum palindrome 打表找规律
http://acm.hdu.edu.cn/showproblem.php?pid=4731 就做了两道...也就这题还能发博客了...虽然也是水题 先暴力DFS打表找规律...发现4个一组循环节.. ...
- POJ2402 Palindrome Numbers第K个回文数——找规律
问题 给一个数k,给出第k个回文数 链接 题解 打表找规律,详见https://www.cnblogs.com/lfri/p/10459982.html,差别仅在于这里从1数起. AC代码 #inc ...
- HDOJ 4731 Minimum palindrome
Minimum palindrome Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 2013 ACM/ICPC Asia Regional Chengdu Online 1004 Minimum palindrome
Minimum palindrome Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- Ural 2045. Richness of words 打表找规律
2045. Richness of words 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2045 Description For ...
- Ural 2037. Richness of binary words 打表找规律 构造
2037. Richness of binary words 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2037 Descripti ...
随机推荐
- 常见iPhone设备尺寸及分辨率(持续更新)
开发中常用的px与pt区别 px就是表示pixel,像素,是屏幕上显示数据的最基本的点: pt就是point,是印刷行业常用单位,等于1/72英寸. px全称为pixel,是一个点,它不是自然界的长度 ...
- NIO组件之channel
Java NIO指的是new IO ,相对OIO,也称non-blocking IO,对应四种基本IO类型中的IO多路复用,主要有有三大核心组件,Channel(管道),Buffer(缓冲区),sel ...
- C 语言的运算符
算术运算 C 语言支持 + - * / % 五种运算,加减乘除取模. 所有 CPU 都内建加法器,可以完成加法操作.减法操作可以转为加法操作.大部分 CPU 都没有内置乘法器,此时编译器会把 * / ...
- 应用安全 - 工具 | 数据库 - redis - 漏洞 - 汇总
未授权访问 Date 类型 未授权访问导致getshell 影响范围 复现 (1)shell反弹 (2)结合SSH服务 (3)结合web服务 分析
- Xpath素材
from lxml import etree text = """ <div> <ul> <li class="item-0&qu ...
- vue引入query
1 首先先安装query.(cnpm install query --save-dev)或者 在package.json里的dependencies加入"jquery" : &qu ...
- express中app.use()使用方法
app.use([path,] function [, function…]) 在path上安装中间件,如果path没有被设定,那么默认为”/”. 当为路由设置一个匹配路径后,路由会匹配该路径及该路径 ...
- python控制流-名词解释
一.控制流的元素 控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”. 二.控制流的条件 条件为了判断下一步如何进行,从而求布尔值的表达式.几乎所有的控制流语句都使用条件. 三.代码 ...
- Docker网络大揭秘(单机)
docker网络官网 https://docs.docker.com/network/ Docker容器和服务如此强大的原因之一是您可以将它们连接在一起,或将它们连接到非Docker工作负载.Dock ...
- TortoiseGit不用每次输入用户名和密码的方法
TortoiseGit每次同步代码时,都会让输入用户名和密码,虽然安全,但是自己用有点麻烦. 怎么解决呢?废话不多说,直接上图: 1.设置—编辑本地.git/config 2.在本地.git/conf ...