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 ...
随机推荐
- yanse
0E71F9 左上面蓝色 0EA8FF 左下面蓝色 498B54 右边绿色
- sed将一个文件插入到另一个文件(合并两个文件)
将before.sh的内容插入到catalina.sh的第一行之后 sed -i '1r /srv/tomcat8/bin/before.sh' /srv/tomcat8/bin/catalina.s ...
- HTML和JS完成页面点击四个角弹出管理页面
实现方法1: HTML代码: <div class="top-left-corner"></div> <div class="top-rig ...
- JavaScript中this的一些坑
我们经常在回调函数里面会遇到一些坑: var obj = { name: 'qiutc', foo: function() { console.log(this); }, foo2: function ...
- Docker安装CentOS7
1. 拉取镜像 docker pull centos:centos7 2. 启动镜像创建容器 docker run -d -p 36622:22 -p 36680:80 --name centos7- ...
- Linux_NetworkManager_RHEL7
目录 目录 前言 网卡命名 RHEL7 的网卡命名规则 在RHEL7中修改回RHEL6的网卡命名规则方法 RHEL7的Network管理工具nmcli指令 nmcli指令 设置主机名 临时修改Host ...
- idea中dbug模式的使用
1:进入断点状态时候每个按钮的用途如图: 2:当运行过得代码需要查看输出内容时候,可以选中需要查看的代码进行运行如图:会在控制台输出选中代码执行的结果
- 红帽学习笔记[RHCSA] 第七课[网络配置相关]
第七课[网络配置相关] 在Vmware中添加网卡 编辑 -> 编辑虚拟网络 -> 添加网络->随便选择一个如VMnet2-> 选择仅主机模式 -> 勾掉使用本地DHCP服 ...
- mysql定时任务/mysql作业
转自:https://www.jb51.net/article/138569.htm 详细参考:https://www.cnblogs.com/qlqwjy/p/7954175.html(事件& ...
- Python入门之format()方法
在此列出format()方法的一些基本使用: >>> '{}{}{}'.format('圆周率是',3.1415926,'...') '圆周率是3.1415926...' >& ...