Code Forces 1B 各种技巧+进制转换升级版
2013-11-04 18:14
155 查看
给一个t,t组数据
对于每组数据可能有两种形式
_1 %s%d (一个大写字母组成的字符串str+一个数字x)
_2 R%dC%d (R+一个数字y+C+一个数字x)
如果给出第一种形式,str可以转换为一个数字y,那么全部的信息可以组成一个坐标x,y,输出这个坐标的第二种形式
如果给出第二种形式,数字x可以转换为一个字符串,然后输出xy的第一种形式
数字和字符串相互转换的规则为
A对应1,B对应2.....Z对应26,然后AA对应27,AB对应28,AZ对应52,类似进制转换,但是不是
有一点,这个规则下是每个位置是不会出现0的
换句话说Z是26,它的下一是AA,需要向高位进1,但是他的低位进完位是A,这个A表示的是1,而不是0
来对比一下其他进制...
2进制每位可以有0或者1两种情况
4进制每位可以有0,1,2,3 四种情况
8进制每位可以有0,1,2,3,4,5,6,7 八种情况
而这个进制...每位可以有A-Z 26种 但他不是26进制,26就是一个Z,他也不是27进制,27是AA,
而这个规则下一位字母可以表示最大数是26,最小数是1...
说实话这个规则我是想到,但是实现不出来...
看了下大神的思路...求的时候预留一个A的位置(x-1),然后如果进位导致了低位是0的时候 就需要补一个A,那么0对应了A,25对应Z
总体上就是对(x-1)转26进制,如果%26==25正好表示的就是Z
然后就是对输入数据的处理,
用到了一些技巧
sscanf(str,"%*[A-Z]%d",&ans);
*[A-Z]过滤掉前面的大写字母,然后读一个数,[]里可以写a-z0-9A-Z这样的
sscanf(str,"%*c%d%*c%d",&r,&x)
这个就神奇了,%*c是过滤掉一些%c格式的字符,但是神奇之处他可以识别数字,遇到数字之后就自动往%d里读了...
对于每组数据可能有两种形式
_1 %s%d (一个大写字母组成的字符串str+一个数字x)
_2 R%dC%d (R+一个数字y+C+一个数字x)
如果给出第一种形式,str可以转换为一个数字y,那么全部的信息可以组成一个坐标x,y,输出这个坐标的第二种形式
如果给出第二种形式,数字x可以转换为一个字符串,然后输出xy的第一种形式
数字和字符串相互转换的规则为
A对应1,B对应2.....Z对应26,然后AA对应27,AB对应28,AZ对应52,类似进制转换,但是不是
有一点,这个规则下是每个位置是不会出现0的
换句话说Z是26,它的下一是AA,需要向高位进1,但是他的低位进完位是A,这个A表示的是1,而不是0
来对比一下其他进制...
2进制每位可以有0或者1两种情况
4进制每位可以有0,1,2,3 四种情况
8进制每位可以有0,1,2,3,4,5,6,7 八种情况
而这个进制...每位可以有A-Z 26种 但他不是26进制,26就是一个Z,他也不是27进制,27是AA,
而这个规则下一位字母可以表示最大数是26,最小数是1...
说实话这个规则我是想到,但是实现不出来...
看了下大神的思路...求的时候预留一个A的位置(x-1),然后如果进位导致了低位是0的时候 就需要补一个A,那么0对应了A,25对应Z
总体上就是对(x-1)转26进制,如果%26==25正好表示的就是Z
然后就是对输入数据的处理,
用到了一些技巧
sscanf(str,"%*[A-Z]%d",&ans);
*[A-Z]过滤掉前面的大写字母,然后读一个数,[]里可以写a-z0-9A-Z这样的
sscanf(str,"%*c%d%*c%d",&r,&x)
这个就神奇了,%*c是过滤掉一些%c格式的字符,但是神奇之处他可以识别数字,遇到数字之后就自动往%d里读了...
#include<stdio.h> void dfs(int x){ if((x-1)/26){ dfs((x-1)/26); } printf("%c",(x-1)%26+'A'); } int main(){ int x,r,t; char str[1111],ans[111]; scanf("%d",&t); while(t--){ scanf("%s",&str); if(sscanf(str,"%*c%d%*c%d",&r,&x)==2){ dfs(x); printf("%d\n",r); }else { int sum=0,ans; for(int i=0;str[i]>='A'&&str[i]<='Z';i++){ sum=sum*26+(str[i]-'A')+1; } sscanf(str,"%*[A-Z]%d",&ans); printf("R%dC%d\n",ans,sum); } } return 0; }
相关文章推荐
- [置顶] 各种要有认知的常识、技巧(updating~~)
- IntelliJ Idea各种技巧设置笔记和错误解决
- 通知的各种实用写法技巧
- 提高 Java 代码性能的各种技巧
- 各种渗透,提权的经验和技巧总结(下)
- Django REST framework的各种技巧——3.权限
- iOS各种调试技巧豪华套餐
- JDBC连接各种数据库经验技巧集萃
- 应聘面试中各种问题的回答技巧
- 调试技巧(断点调试的各种技巧,让你调试程序更得心应手)
- IOS各种调试技巧豪华套餐
- VS2008 各种杂七杂八技巧
- 位运算各种技巧
- 各种位运算技巧
- 【总结】虚拟机VirtualBox各种使用技巧
- 各种开发工具技巧小结
- CSS布局奇淫技巧之--各种居中
- CSS布局奇淫技巧之--各种居中<转>
- JDBC连接各种数据库经验技巧集萃