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 ...
随机推荐
- git本地分支推送到远程分支
1.创建的创建和初始化 创建git仓库可以在远端创建一个仓库, 然后check到本地,在本地的文件里创建工程文件,然后提交 也可以将本地现有的工程和远端的空仓库关联 本地创建了一个工程 iOSDemo ...
- Oracle JET 使用RequireJS第三方工具或库引入
在 Oracle JET 应用程序中使用 RequireJS 添加第三方工具或库. 步骤: 1.如果使用工具框架脚手架,需要一下操作. a.使用 npm 安装你需要的库. npm install my ...
- Web - <a>标签中href="javascript:;"
javascript: 是一个伪协议,其他的伪协议还有 mail: tel: file: 等等. 1 <a id="jsPswEdit" class="set ...
- Excel导入导出工具——POI XSSF的使用
工具简介 POI是Apache提供的一款用于处理Microsoft Office的插件,它可以读写Excel.Word.PowerPoint.Visio等格式的文件. 其中XSSF是poi对Excel ...
- php5.4编译安装--nginx
1.下载源码包 wget 网址/源码包2.解压源码包 tar -zxvf 源码包3.创建一个安装目录 mkdir /usr/local/php4.进入解压后的目录中,初始化安装环境./configur ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_4 Mybatis的CRUD-查询一个和模糊查询
模糊查询 测试的时候需要提供百分号的模糊查询.传入的参数提供百分号 所有包含王字的就都查询出来了.
- replace()函数
1 https://jingyan.baidu.com/article/454316ab4d0e64f7a6c03a41.html
- Unity3D 协程 Coroutine
协程(Coroutine)的概念存在于很多编程语言,例如Lua.ruby等.而由于Unity3D是单线程的,因此它同样实现了协程机制来实现一些类似于多线程的功能,但是要明确一点协程不是进程或线程,其执 ...
- C# 实现IDisposable
#region 实现IDisposable public void Dispose() { Dispose(true); GC.SuppressFinalize(this);//防止Finalize调 ...
- 安装mysql5.6-centOs7
安装mysql mysql,下载地址:https://dev.mysql.com/downloads/mysql/ 安装参考链接:https://segmentfault.com/a/11900000 ...