题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=303

思路:

开始看错题了,以为最多只有两个字母。

字母转数字的表达式很容易看出来是:(26^(n-1))*(s[0]-64)+(26^(n-2))*(s[1]-64)+……

主要是数字怎么转字母,这应该是个数学问题。可是我想了好久没想出好方法,数学太差了吧。最好只好想个笨点的方法AC掉了。

我的方法:

用 mi[i][j]表示从后面数第i位上是字母j的最小值。

用 ma[i][j]表示从后面数第i位上是字母j的最大值。

(1<=i<10   1<=j<=26    j=1时,即‘A’)

例如: mi[3][4]="DAA"转成数字。  ma[3][4]="DZZ"转成数字。

这样算出来后,数字转字母,就可以从高位递归出字母来。

假设,给的数字是x。

如果mi[i][j]<=x<=ma[i][j],那么可以知道转化后的位数是i,且第i位是(char)(j+64);

根据前面推出的字母转数字的公式。

x-=(26^(i-1))*j

递归即可求出所有序列。

#include <iostream>
#include <string>
using namespace std;
long long ma[11][30],mi[11][30];
long long pow(int a,int b)
{
long long i=1,x=1;
while(i<=b) {x*=a; i++;}
return x;
}
long long zimu(string s)
{
long long x=0,n=s.length(),i;
for(i=0;i<n;i++)
{
x+=pow(26, n-i-1)*(s[i]-64);
}
return x;
}
void init()
{
int i,j,x,k; string s;
for(i=1;i<27;i++)
for(j=1;j<10;j++)
{
s=""; s+=char(64+i); k=1;
while(k<j) {s+='Z';k++;}
ma[j][i]=zimu(s); s=""; s+=char(64+i); k=1;
while(k<j) {s+='A'; k++;}
mi[j][i]=zimu(s);
//cout<<s<<":"<<mi[j][i]<<" "<<ma[j][i]<<endl;
}
}
void ans(long long x)
{
int i,j;
if(x<=26)
cout<<(char)(x+64)<<endl;
else
{
for(i=1;i<10;i++)
for(j=1;j<27;j++)
{
if(x>=mi[i][j]&&x<=ma[i][j])
{
cout<<(char)(j+64);
ans(x-pow(26,i-1)*j);
}
}
}
}
int main(int argc, char *argv[])
{
long long t,i,j,n,x;
string s;
init();
cin>>t;
while(t--)
{
cin>>s;
if(s[0]>='0'&&s[0]<='9')
{
for(x=i=0;i<s.length();i++)
{
x=x*10+(s[i]-'0');
}
ans(x);
}
else
{
cout<<zimu(s)<<endl;
}
}
return 0;
}

nyist 303序号互换(数学推理)的更多相关文章

  1. ACM 序号互换

    序号互换 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来.单元格的行坐标是由数字 ...

  2. 第四届河南省ACM 序号互换 进制转换

    序号互换 时间限制: 1 Sec  内存限制: 128 MB 提交: 41  解决: 19 [提交][状态][讨论版] 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐 ...

  3. 河南省第四届ACM省赛(T1) 序号互换

    问题 A: 序号互换 时间限制: 1 Sec  内存限制: 128 MB难度1 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来.单元格的行坐标是由数字编 ...

  4. [河南省ACM省赛-第四届] 序号互换 (nyoj 303)

    相似与27进制的转换 #include<iostream> #include<cstdio> #include<cstring> #include<strin ...

  5. hdu 5626 Clarke and points 数学推理

    Clarke and points Problem Description   The Manhattan Distance between point A(XA,YA) and B(XB,YB) i ...

  6. BZOJ1192 [HNOI2006]鬼谷子的钱袋 数学推理

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1192 题意概括 把一个数m拆成很多数字. 问至少拆成多少个数字,1~m中的所有数字才可以用这些数字 ...

  7. HDU2552 三足鼎立 【数学推理】

    三足鼎立 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. bzoj 1041 数学推理

    原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1041 我们只需要求第一象限内(不包括坐标轴)的点数然后ans=ans*4+4就好了 首先我 ...

  9. CF988 D. Points and Powers of Two【hash/数学推理】

    [链接]:CF [题意]:从一堆数中选一个最大子集,使得任意两个数相减的绝对值都是2的幂. [分析]:首先很难的一点,需要想到子集最多只能有三个,四个及以上的子集一定不存在(可以证明).当有三个元素时 ...

随机推荐

  1. 重新关联bat文件的打开方式为系统默认方式

    为什么“BAT”扩展名的默认打开方式:显示出来的居然是“%1”这么一个怪异的东东,具体在什么位置的? c:\windowssystem32\command.com修复bat关联,打开command.c ...

  2. 假数据自我添加测试--NSArray object

    一.列表假数据 //在.h文件里面定义node所包含实体类---1 struct listTestNode { NSString *image; NSString *name; }; //在.m实现文 ...

  3. YBC中国国际青年创业计划

    YBC中国国际青年创业计划 中国青年创业国际计划(简称YBC)是共青团中央.中华全国青年联合会.中华全国工商业联合会共同倡导发起的青年创业教育项目.该项目参考总部在英国的青年创业国际计划( Youth ...

  4. 优步北京B组(8月10日-8月16日奖励规则)

    奖励政策: [优步北京B组] 定义为2015年7月20日前激活的部分司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机( ...

  5. php的stdClass类

    在PHP内核进行模块初始化操作时会自动加载这个函数, 这样,stdClass类的注册操作也就会被执行了.stdClass类是一个没有成员变量也没有成员方法的类. 它的所有的魔术方法,父类.接口等在初始 ...

  6. Advanced Fruits(好题,LCS的模拟)

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  7. App.config和Web.config配置文件的自定义配置节点

    前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文 ...

  8. java enum的用法

    原始的常量定义: public static fianl MON=“Mon”; public static final TUE="Tue"; 语法(定义) 创建枚举类型要使用 en ...

  9. leetcode Count and Say python

    class Solution(object): def countAndSay(self, n): """ :type n: int :rtype: str " ...

  10. Spring中ref local与ref bean区别

    今天在做SSH框架Demo实例时,在ApplicationResources.properties文件时对<ref bean>与<ref local>感到不解,经查找资料才弄明 ...