题目大意:用m个字母组成一个长度为N的字符串,使得最长的回文子串 的长度最小。 并且要求字典序最小。

思路:分类模拟。

当M为1 的时候就直接输出N个A

当M大于2的时候就循环ABC

当M等于2的时候

先枚举出当N<9 的情况,因为此时可以用最长串长度为 3 的基础上得到。

而当N>9的时候。

其实就是 aababb 为循环节的一个循环。但是此时是建立在最长串为4的基础上得到

但是有另外的情况就是

m==2 n%6<=4的时候最后面就不是循环循环节了。

例如:

m=2 n=10

aababbaaaa.

而不是

aababbaaba.

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <set> using namespace std; #ifdef WIN
typedef __int64 LL;
#define iform "%I64d"
#define oform "%I64d\n"
#else
typedef long long LL;
#define iform "%lld"
#define oform "%lld\n"
#endif const double eps = 10e-9;
#define SI(a) scanf("%d", &(a))
#define SDI(a, b) scanf("%d%d", &(a), &(b))
#define SUI(a) scanf("%ud", &(a))
#define S64I(a) scanf(iform, &(a))
#define SS(a) scanf("%s", (a))
#define SC(a) scanf("%c", &(a))
#define PI(a) printf("%d\n", a)
#define P64I(a) printf(oform, a)
#define Max(a, b) (a > b ? a : b)
#define Min(a, b) (a < b ? a : b)
#define MSET(a, b) (memset(a, b, sizeof(a)))
#define Mid(L, R) (L + (R - L)/2)
#define ABS(a) (a > 0 ? a : -a)
#define REP(i, n) for(int i=0; i < (n); i++)
#define FOR(i, a, n) for(int i=(a); i <= (n); i++)
typedef unsigned int UINT; const char tab[8][20] = {
"a", "ab", "aab", "aabb", "aaaba", "aaabab", "aaababb", "aaababbb"}; int main() {
int T; SI(T);
FOR(kase, 1, T) {
int m, n;
SDI(m, n); printf("Case #%d: ", kase); if(m>2) {
//int tn = n - m + 3;
int a = n / 3;
int b = n % 3;
REP(i, a) printf("abc");
REP(i, b) printf("%c", 'a'+i);
//REP(i, m-3) printf("%c", 'd'+i);
printf("\n");
} else if(m == 1) {
REP(i, n) putchar('a');
printf("\n");
} else {
if(n < 9) {
printf("%s\n", tab[n-1]);
} else {
char t[] = "babbaa";
printf("aaaa");
int a = (n-4) / 6;
int b = (n-4) % 6;
REP(i, a) printf("babbaa");
if(b <= 2) REP(i, b) putchar('a');
else REP(i, b) putchar(t[i]);
printf("\n");
}
}
} return 0;
}

2013 成都网络赛 1004 Minimum palindrome的更多相关文章

  1. HDU 4731 Minimum palindrome (2013成都网络赛,找规律构造)

    Minimum palindrome Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  2. HDU 4762 Cut the Cake (2013长春网络赛1004题,公式题)

    Cut the Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  3. HDU 4751 Divide Groups (2013南京网络赛1004题,判断二分图)

    Divide Groups Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  4. HDU 4741 Save Labman No.004 (2013杭州网络赛1004题,求三维空间异面直线的距离及最近点)

    Save Labman No.004 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  5. HDU 4737 A Bit Fun (2013成都网络赛)

    A Bit Fun Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. HDU 4734 F(x) (2013成都网络赛,数位DP)

    F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. HDU 4733 G(x) (2013成都网络赛,递推)

    G(x) Time Limit: 2000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. HDU 4730 We Love MOE Girls (2013成都网络赛,签到水题)

    We Love MOE Girls Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. 2013成都网络赛 J A Bit Fun(水题)

    A Bit Fun Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

随机推荐

  1. SQL Server 数据控制语句(DCL)

    DCL控制语句用来设置更改用户或角色的权限. 授予权限操作——GRANTSQL Server服务器通过手语权限表来控制用户对数据库的访问.在数据库中添加一个新用户之后,若不尽兴额外操作,该用户只有ch ...

  2. 根据checkBox或radio的勾选状态得到id数组

    $(function(){ var inputs = document.getElementsByTagName("input"); var realStrs = "&q ...

  3. Ubuntu 14.10 编译 qt4.8.6

    0. 假设你已经可以在上面写基本的C++程序.(即:c/C++开发环境已经就绪)1. $ sudo apt-get build-dep libqt4-dev 2. $ sudo apt-get ins ...

  4. GDI+ 对象释放崩溃的问题

    确保在Gdiplus::GdiplusShutdown(m_gdiplusToken); 之前delete 掉GDI+的对象,例如:delete *pBitmap; 如果先Gdiplus::Gdipl ...

  5. jQuery常用方法集锦

    用方法:http://www.cnblogs.com/linzheng/archive/2010/11/14/1877092.html 数组汇总:http://www.cnblogs.com/Andy ...

  6. codeforces 622F. The Sum of the k-th Powers 拉格朗日插值法

    题目链接 求sigma(i : 1 to n)i^k. 为了做这个题这两天真是补了不少数论, 之前连乘法逆元都不知道... 关于拉格朗日插值法, 我是看的这里http://www.guokr.com/ ...

  7. JS声明语句提升与作用域

    <!DOCTYPE html><html><head></head><body><script>//-------------- ...

  8. js大小写锁判断

    <html> <head> <title>CapsLock Demo</title> <script src="http://ajax. ...

  9. Oracle 动态查询,EXECUTE IMMEDIATE select into使用方法

    create or replace procedure TEST_TABLE is l_table_name varchar2(50); query_stat varchar2(100); l_zyq ...

  10. 【转】Configuring VM Acceleration on Linux

    Configuring VM Acceleration on Linux Linux-based systems support virtual machine acceleration throug ...