【SRM 717 div2 B】LexmaxReplace
Problem Statement
Alice has a string s of lowercase letters. The string is written on a wall. 
Alice also has a set of cards. Each card contains a single letter. Alice can take any card and glue it on top of one of the letters of s. She may use any subset of cards in this way, possibly none or all of them. She is not allowed to glue new letters in front of s or after s, she can only replace the existing letters. 
Alice wants to produce the lexicographically largest possible string. 
You are given the string s. You are also given a string t. Each character of t is a letter written on one of the cards. Compute and return the lexicographically largest string Alice can produce on the wall while following the rules described above. 
Definition
Class: 
LexmaxReplace 
Method: 
get 
Parameters: 
string, string 
Returns: 
string 
Method signature: 
string get(string s, string t) 
(be sure your method is public) 
Limits
Time limit (s): 
2.000 
Memory limit (MB): 
512 
Stack limit (MB): 
512
Notes
Given two distinct strings X and Y of the same length, the lexicographically larger one is the one that has a larger character on the first position on which they differ.
Constraints
s will contain between 1 and 50 characters, inclusive.
t will contain between 1 and 50 characters, inclusive.
s will contain only lowercase English letters (‘a’ - ‘z’).
t will contain only lowercase English letters (‘a’ - ‘z’). 
Examples 
0)
“abb” 
“c” 
Returns: “cbb” 
Alice has a single card. This card contains the letter ‘c’. The optimal solution is to glue it on top of s[0], producing the string “cbb”. 
1)
“z” 
“f” 
Returns: “z” 
Here the optimal solution is to do nothing. The card with the letter ‘f’ will remain unused. 
2)
“fedcba” 
“ee” 
Returns: “feeeba”
3)
“top” 
“coder” 
Returns: “trp”
4)
“xldyzmsrrwzwaofkcxwehgvtrsximxgdqrhjthkgfucrjdvwlr” 
“xfpidmmilhdfzypbguentqcojivertdhshstkcysydgcwuwhlk” 
Returns: “zyyyzyxwwwzwvuuttxwtssvtssxrqxppqrontmmllukrkjvwlr”
【题目链接】:
【题意】 
 
你有最多50个字符集合, 
每个字符最多只能用一次; 
(所有字符只包含小写字母) 
然后给你一个字符串s; 
让你使用这个字符集合里面的字符,去代替字符串s的每一位,使得这个字符串s的字典序达到最大;
【题解】 
 
顺序枚举每一位,对于每一位,找一找有没有比这个字母的字典序大的字符,有的话,就用那个代替这一位上面的字母; 
没有就跳过; 
 
【Number Of WA】 
 
0 
 
【反思】 
 
比较明显的题。 
 
【完整代码】
#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define Open() freopen("F:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0)
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 110;
//head
map <char,int> dic;
class LexmaxReplace
{
    public:
        string get(string s, string t)
        {
            rep1(i,0,(int) t.size()-1){
                dic[t[i]]++;
            }
            rep1(i,0,(int) s.size()-1){
                for (char key = 'z';key>=s[i]+1;key--)
                    if (dic[key]>0){
                        dic[key]--;
                        s[i] = key;
                        break;
                    }
            }
            return s;
        }
};
【SRM 717 div2 B】LexmaxReplace的更多相关文章
- 【SRM 717 DIV2 C】DerangementsDiv2
		
Problem Statement You are given two ints: n and m. Let D be the number of permutations of the set {1 ...
 - 【SRM 717 div2 A】 NiceTable
		
Problem Statement You are given a vector t that describes a rectangular table of zeroes and ones. Ea ...
 - 【Codeforces #312 div2 A】Lala Land and Apple Trees
		
# [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...
 - 【TP SRM 703 div2 250】AlternatingString
		
Problem Statement A string of zeros and ones is called an alternating string if no two adjacent char ...
 - 【TP SRM 703 div2 500】 GCDGraph
		
Problem Statement You are given four ints: n, k, x, and y. The ints n and k describe a simple undire ...
 - 【cf 483 div2 -C】Finite or not?(数论)
		
链接:http://codeforces.com/contest/984/problem/C 题意 三个数p, q, b, 求p/q在b进制下小数点后是否是有限位. 思路 题意转化为是否q|p*b^x ...
 - 【市场调研与分析】Intel发力移动安全领域——By Me at 20140613
		
[市场调研与分析]Intel发力移动安全领域 ...
 - 【疯狂造轮子-iOS】JSON转Model系列之二
		
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
 - 【疯狂造轮子-iOS】JSON转Model系列之一
		
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
 
随机推荐
- 修复EJBInvokerServlet漏洞
			
1600/invoker/EJBInvokerServlet(存在命令执行) 修复方案: # 删除接口 # 设置中间件的访问控制权限,禁止web访问 /invoker 目录 http://www.cn ...
 - js中深拷贝代码实现
			
function copy(original,o){ if(typeof original != 'object') return original; var o = o || (Array.isAr ...
 - LR编写get请求
			
LR编写简单Get接口 接口必备信息:接口功能.URL.支持格式.http请求方式.请求参数.返回参数 请求地址 http://api.k780.com:88/?app=life.time 请求方式 ...
 - springMVC小项目实例
			
一.什么是 Spring MVC Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面,是一个强大灵活的 Web 框架.Spring ...
 - [洛谷P1580]yyy loves Easter_Egg I
			
题目大意:很多人@一个人,如果那个人忍不住说话了,就轰炸成功,如果那个人没说话或者别的人没有@他或@很多个人,则轰炸失败.(具体见原题) 解题思路:字符串处理,好好用sscanf即可(细节见代码). ...
 - rescan-scsi-bus.sh  linux扫盘 脚本
			
[root@ftp:/home/tools/shell] > yum install sg3_utils* Loaded plugins: fastestmirror Repository ba ...
 - Bedrock Linux 0.7.3 发布
			
Bedrock Linux是一种元分发,允许用户利用其他通常互斥的Linux发行版的功能,并让它们无缝地一起工作.该项目发布了其0.7.x系列,Bedrock Linux 0.7.3的更新. 新的更新 ...
 - nginx proxy_set_header设置,自定义header
			
在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了ng ...
 - STL_算法_Heap算法(堆排)(精)
			
C++ Primer 学习中. . . 简单记录下我的学习过程 (代码为主) /***************************************** STL-算法--Heap算法 堆排序 ...
 - 封装一个ViewPager真正的实现图片无限循环滚动带导航点
			
效果图: 大家在写项目的过程中常常会碰到须要实现Viewpager里面载入几张图片来循环自己主动轮播的效果,假设不封装一下的话代码分散在activity里面会显得非常乱.并且也不利于我们下次复用,所以 ...