B进制加法(洛谷1604)
分析:码农题,照这模拟就行,高精度的B进制,注意字符串反转的技巧。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;
const int maxn=;
char s[]={'','','','','','','','','','','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int n; //进制
int vis1[maxn],vis2[maxn];
int ans[maxn];
int main()
{
while(cin>>n)
{
string a,b;
cin>>a;
cin>>b;
memset(vis1,,sizeof(vis1));
memset(vis2,,sizeof(vis2));
int len1=a.length(); //反转第一个串
for(int i=;i<len1/;i++){
char temp=a[i];
a[i]=a[len1--i];
a[len1--i]=temp;
}
for(int i=;i<len1;i++){
int pos;
for(int j=;j<;j++){
if(a[i]==s[j]){
pos=j; break;
}
}
vis1[i]=pos;
}
int len2=b.length(); //反转第二个串
for(int i=;i<len2/;i++){
char tt=b[i];
b[i]=b[len2-i-];
b[len2--i]=tt;
}
for(int i=;i<len2;i++){
int pos;
for(int j=;j<;++j){
if(b[i]==s[j]){
pos=j; break;
}
}
vis2[i]=pos;
}
int mx=max(len1,len2);
int cnt=;
for(int i=;i<mx;i++){
int temp=vis1[i]+vis2[i]+cnt;
if(temp>=n){
cnt=;
ans[i]+=temp%n;
}else{
cnt=;
ans[i]+=temp;
}
}
if(cnt==){
ans[mx]=; ++mx;
}
string ss;
for(int i=;i<mx;i++){
ss+=s[ans[i]];
}
for(int i=;i<mx/;i++){
char yy=ss[i];
ss[i]=ss[mx-i-];
ss[mx-i-]=yy;
}
cout<<ss<<endl;
}
return ;
}
B进制加法(洛谷1604)的更多相关文章
- (进制转换 栈)P1143 进制转换 洛谷
题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入输出格式 输入格式: 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10n> ...
- N进制加法
我是网络公司的一名普通程序员,英文名Steven,发音比较像“师弟”,自从入职培训自我介绍后,大家就称我为“二师弟”,我喜欢看科幻小说,也喜欢做梦,有一次梦到外星球,发现外星人使用的并非10进制/16 ...
- hdu2100 26进制加法
题意: 给你两个26进制数,让你算出他们两个的和. 思路: 水题不解释了,注意这样的数据 AAA AAA 输出A #include<stdio.h> #include ...
- XDU 1003 B进制加法(高精度)
#include<bits/stdc++.h> using namespace std; long long mpow(long long a,long long b) { ; ) ; w ...
- 洛谷 P1013 进制位 【搜索 + 进制运算】
题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E KL KK E E ...
- noip 1998 洛谷P1013 进制位
题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: L K V E L L K V E K K V E KL V V E KL KK E E K ...
- 洛谷P1013 进制位
P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...
- [NOIP1998] 提高组 洛谷P1013 进制位
题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: L K V E L L K V E K K V E KL V V E KL KK E E K ...
- 洛谷 P1013 进制位
P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...
随机推荐
- 如何从Apache官网下载apache
apache服务器官网地址:http://httpd.apache.org/ linux版本下载比较容易,以windows版本,apache 2.4为例. 点击download 此处随便选一个提供商. ...
- SQL 比较中文字符串
/* declare @str1 varchar(200),@str2 varchar(200) set @str1=N'江西省南昌市其它区高新区火炬大道809号' set @str2=N'江西省南昌 ...
- 12.04 ubuntu 更改IP
在一个局域网里面,如果是自动获取IP,就会导致IP冲突 进入要连接的热点进行设置 IPV4 Setting address netmask ...
- mysql 不能插入中文
三.#vim /etc/mysql/my.cnf .(5.5以前系统)在[client]下面加入 default-character-set=utf8 在[mysqld]下面加入default-cha ...
- 如何查看自己电脑支持OpenGL core版本
1. 起因: 红宝书上的例子在电脑上运行后没有效果,但是怎么也找不到原因,反复对看了书上的源码和代码发现没有任何问题,但是就是没有树上写的效果 2. 思路:查看函数的说明,这里推荐使用docs.gl, ...
- VHD进阶:差分VHD备份系统
VHD进阶:差分VHD备份系统 一.创建虚拟磁盘 方法1:图形界面创建 1.打开磁盘管理器(运行diskmgmt.msc),在“磁盘管理”上点击右键,“创建VHD”,类型选择VHD,动态扩展或者固定大 ...
- AI 人工智能 探索 (三)
三类子弹的设计 using UnityEngine; using System.Collections; public class AI : AssembleModel { private Hasht ...
- MVC工作流程
1 浏览者 => 调用控制器,对它发出指令 2 控制器 => 按照指令选取一个合适的模型 3 模型 => 按控制器指令取出相应的数据 4 控制器 => 按指令选取 ...
- android 定时器总结
1:handler实现定时器的功能 Handler handler=new Handler(); //立即执行Runnable对象 public final boolean post(Runnab ...
- Windows、Linux -- 远程登录、文件传输、文件共享
Linux <---> Linux 远程登录: ssh服务 ssh root@10.20.62.124 文件传输: scp服务 上传 scp /home/xxx.txt root@1 ...