Codeforces 1144 E. Median String
原题链接:https://codeforces.com/problemset/problem/1144/E
tag:字符串模拟,大整数。
题意:给定两个字符串,求字典序中间串。
思路:可以把这个题当做一个26进制数的模拟。a~z分别代表0~25,然后求平均,在通过数字反求字符串。
然后写出这么个代码
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
ll _input(ll);
void _output(ll,ll);
int main()
{
ll n;
cin>>n;
ll num1,num2;
num1=_input(n);
num2=_input(n);
ll res=;
res=(num1+num2)/;
_output(res,n);
cout<<endl;
return ;
}
ll _input(ll n)
{
ll re=;
char a;
for(ll i=;i<n;i++)
{
cin>>a;
re=re*+(a-'a');
}
return re;
}
void _output(ll res,ll n)
{
stack<char> qq;
while(n--)
{
qq.push('a'+res%);
res/=;
}
while(qq.size())
{
cout<<qq.top();
qq.pop();
}
}
然后你就可以很快的wa了。
???
好吧,想着总不能爆掉我的unsigh long long 吧,然后打脸了。 26^10000,,,,随便爆。。
于是乎只能用数组模拟,一来可以方便的表示26进制,二来也可以表示很大的数据,爆不掉(除非非常非常变态了)
代码如下
#include<bits/stdc++.h>
using namespace std;
int a[];
int main()
{
int n;
cin>>n;
string c,b;//储存字符串
cin>>c;
cin>>b;
for(int i=n-;i>=;i--) //模拟加法
{
a[i+]+=c[i]-'a'+b[i]-'a'; //从a[1]开始存,a[0]留着进位用。
a[i]+=a[i+]/; //给高一位先进位
a[i+]%=; //当前位对26取模。
}
char e;
//模拟除法
e='a';
if(a[]>=)cout<<char(e+a[]/);
if(a[]%!=)a[]+=; //看最高位是否存在进位的,如果存在,退回来。
for(int i=;i<=n;i++)
{
e='a';
cout<<char(e+a[i]/); //输出当前位除2所表示的数。
if(a[i]%!=)a[i+]+=; //剩下的退回下一位。
}
cout<<endl;
return ;
}
Codeforces 1144 E. Median String的更多相关文章
- E. Median String 解析(思維、大數運算)
Codeforce 1144 E. Median String 解析(思維.大數運算) 今天我們來看看CF1144E 題目連結 題目 給你兩個長度為\(k\)的字串\(s\)和\(t\),求字典序排序 ...
- Codeforces Round #550 (Div. 3) E. Median String (模拟)
Median String time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Median String CodeForces - 1144E
You are given two strings ss and tt, both consisting of exactly kk lowercase Latin letters, ss is le ...
- Codeforces Round #550 (Div. 3)E. Median String
把字符串看作是26进制的数,从后往前翻译,那么就可以把两个串变成对应的26进制的数字,那么只要把两个数加起来除以二就得到中间的串对应的数了,同理再转化回来就行了.但是这样会有一个问题就是串的长度有2e ...
- Codeforces Round #550 (Div. 3) E. Median String (思维,模拟)
题意:给你两个字符串\(s\)和\(t\),保证\(t\)的字典序大于\(s\),求他们字典序中间的字符串. 题解:我们假设题目给的不是字符串,而是两个10禁止的正整数,那么输出他们之间的数只要把他两 ...
- 【22.70%】【codeforces 591C】 Median Smoothing
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【动态规划】【最短路】Codeforces 710E Generate a String
题目链接: http://codeforces.com/problemset/problem/710/E 题目大意: 问写N个字符的最小花费,写一个字符或者删除一个字符花费A,将当前的字符数量翻倍花费 ...
- codeforces 632C The Smallest String Concatenation
The Smallest String Concatenation 题目链接:http://codeforces.com/problemset/problem/632/C ——每天在线,欢迎留言谈论. ...
随机推荐
- 2015新款 MacBook 用心的测评与试用. 最轻薄的Mac上市
2015新款 MacBook 不一样的测评与试用. 最轻薄的Mac上市了. 直击现场 <HTML开发MacOSApp教程> http://pan.baidu.com/s/1jG1Q58M ...
- FMX有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法(firemonkey messaging)
看FMX代码,发现有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法. 早前,看过文章说TMessageManage ...
- R3 HOOK OpenProcess 的问题
unit HookAPI; //Download by http://www.codefans.net interface uses Windows, Classes; function Locate ...
- 【原创】Metro大都会扫码乘地铁技术大揭密
本文观点仅为技术猜解,不代表官方线上真实方案. 风靡上海的扫码乘地铁,从2018年1月20日全面支持,至今近10天了.起初不以为然,过了大概1个礼拜左右,也下载了Metro大都会APP,开始体验扫 ...
- 关于linux网卡消失的问题
首先我也是一名学生,在学习的过程Linux的过程中,因为老师要求配置hadoop集群所以就匆匆忙忙的上手了,但是在配置网络的问题时遇到了网卡消失的问题 我在网上询问了许多的人,但是还是没有找到一个很好 ...
- Rails.cache相关知识
可能里面的一些知识已经不被大家使用了,但是作为学习,我想和大家分享一下个人关于Rails.cache的浅显的认识,望大家指教. 1.Rails.cache是什么 它是Rails中的缓存,拥有所有缓存的 ...
- kubernetes实战篇之helm完整示例
系列目录 构建一个 Helm Chart 下面我们通过一个完整的示例来学习如何使用 Helm 创建.打包.分发.安装.升级及回退Kubernetes应用. 创建一个名为 mychart 的 Chart ...
- HashMap原理(一) 概念和底层架构
HashMap在Java开发中使用的非常频繁,可以说仅次于String,可以和ArrayList并驾齐驱,准备用几个章节来梳理一下HashMap.我们还是从定义一个HashMap开始. HashMap ...
- 简单的scrapy实例
前天实验室的学长要求写一个简单的scrapy工程出来,之前也多少看了点scrapy的知识,但始终没有太明白,刚好趁着这个机会,加深一下对scrapy工作流程的理解.由于临近期末,很多作业要做(其实.. ...
- MySQL metalock的一些技巧(写大于读的案例,以及获得锁的顺序)
前言:元数据锁不是锁定数据,而是锁定描述数据的元数据信息.就像很多装修工人(工作线程)在室内(对象上)装修(操作),不能有其他工人(线程)把屋子拆了(表删除了). MySQL 为了数据一致性使用元数据 ...