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 ——每天在线,欢迎留言谈论. ...
随机推荐
- wpf中的datagrid绑定操作按钮是否显示或者隐藏
如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了. 但是在wpf里不行..网上 ...
- c#与JAVA利用SOCKET实现异步通信的SanNiuSignal.DLL已开源
大家好,前段时间C#的SanNiuSignal.DLL已开源;因部分用户特需要JAVA版的SanNiuSignal;现在只能把半成品先拿出来暂时给他们用了,以后再慢慢改进; JAVA版目前已实现跟C# ...
- 关于Android开发四大组件
文章主要是讲Android开发的四大组件,本文主要分为 文章源自:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html 一.Act ...
- impala学习笔记
impala学习笔记 -- 建库 CREATE DATABASE IF NOT EXISTS database_name; -- 在HDFS文件系统中创建数据库,需要指定要创建数据库的位置. CREA ...
- vs2017无法启动iis express
当遇到vs2017无法启动iis express时,可尝试删除项目下的.vs文件夹,通常可解决问题
- 简易数据分析 04 | Web Scraper 初尝--抓取豆瓣高分电影
这是简易数据分析系列的第 4 篇文章. 今天我们开始数据抓取的第一课,完成我们的第一个爬虫.因为是刚刚开始,操作我会讲的非常详细,可能会有些啰嗦,希望各位不要嫌弃啊:) 有人之前可能学过一些爬虫知识, ...
- 【记录】Field required a single bean, but 2 were found:
重构遇到个小问题,记录下: 错误信息: *************************** APPLICATION FAILED TO START ************************ ...
- node中websocket的使用
web Socket和Socket.IO框架 http协议是无状态的,就是说客户端可以给服务器提交请求,但是服务器不能向客户端提交请求,但是我们实际项目中会要求客户和服务器双方是类似电话那种关系, 一 ...
- 为什么建议大家使用 Linux 开发
Linux 能用吗? 我身边还有些朋友对 linux 的印象似乎还停留在黑乎乎的命令行界面上.当我告诉他或者建议他使用 linux 时,会一脸惊讶的问我,那个怎么用(来开发或者日常使用)? Linux ...
- Python开发【第八篇】: 网络编程
内容概要 楔子 软件开发架构 网络基础 套接字(socket) 粘包 socketserver模块 一. 楔子 现在有两个python文件a.py和b.py,分别运行,这两个程序之间需要传递一个数据, ...