Educational Codeforces Round 8 C. Bear and String Distance 贪心
C. Bear and String Distance
题目连接:
http://www.codeforces.com/contest/628/problem/C
Description
Limak is a little polar bear. He likes nice strings — strings of length n, consisting of lowercase English letters only.
The distance between two letters is defined as the difference between their positions in the alphabet. For example, , and .
Also, the distance between two nice strings is defined as the sum of distances of corresponding letters. For example, , and .
Limak gives you a nice string s and an integer k. He challenges you to find any nice string s' that . Find any s' satisfying the given conditions, or print "-1" if it's impossible to do so.
As input/output can reach huge size it is recommended to use fast input/output methods: for example, prefer to use gets/scanf/printf instead of getline/cin/cout in C++, prefer to use BufferedReader/PrintWriter instead of Scanner/System.out in Java.
Input
The first line contains two integers n and k (1 ≤ n ≤ 105, 0 ≤ k ≤ 106).
The second line contains a string s of length n, consisting of lowercase English letters.
Output
If there is no string satisfying the given conditions then print "-1" (without the quotes).
Otherwise, print any nice string s' that .
Sample Input
4 26
bear
Sample Output
roar
Hint
题意
现在定义了一个dis(a,b),dis(a,b) = abs(a-b),等于这两个数的ASCII码的距离
然后现在给你一个串,让你构造另外一个串,使得这两个串之间的距离和恰好等于k
题解:
贪心,我们暴力向最远的地方靠就好了
代码
#include<bits/stdc++.h>
using namespace std;
string s,s1;
int main()
{
    int n,k;
    cin>>n>>k;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        int dis1 = 'z'-s[i];
        int dis2 = s[i]-'a';
        if(dis1>dis2)
        {
            int ddd = min(dis1,k);
            k-=ddd;
            s1+=s[i]+ddd;
        }
        else
        {
            int ddd = min(dis2,k);
            k-=ddd;
            s1+=s[i]-ddd;
        }
    }
    if(k)return puts("-1");
    else cout<<s1<<endl;
}Educational Codeforces Round 8 C. Bear and String Distance 贪心的更多相关文章
- Educational Codeforces Round 9 C. The Smallest String Concatenation —— 贪心 + 字符串
		题目链接:http://codeforces.com/problemset/problem/632/C C. The Smallest String Concatenation time limit ... 
- [Educational Codeforces Round 16]E. Generate a String
		[Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ... 
- Educational Codeforces Round 16 E. Generate a String dp
		题目链接: http://codeforces.com/problemset/problem/710/E E. Generate a String time limit per test 2 seco ... 
- Educational Codeforces Round 9 C. The Smallest String Concatenation 排序
		C. The Smallest String Concatenation 题目连接: http://www.codeforces.com/contest/632/problem/C Descripti ... 
- Educational Codeforces Round 8 F. Bear and Fair Set 最大流
		F. Bear and Fair Set 题目连接: http://www.codeforces.com/contest/628/problem/F Description Limak is a gr ... 
- Educational Codeforces Round 16 E. Generate a String (DP)
		Generate a String 题目链接: http://codeforces.com/contest/710/problem/E Description zscoder wants to gen ... 
- Educational Codeforces Round 40 I. Yet Another String Matching Problem
		http://codeforces.com/contest/954/problem/I 给你两个串s,p,求上一个串的长度为|p|的所有子串和p的差距是多少,两个串的差距就是每次把一个字符变成另一个字 ... 
- Educational Codeforces Round 9 C. The Smallest String Concatenation(字符串排序)
		You're given a list of n strings a1, a2, ..., an. You'd like to concatenate them together in some or ... 
- Educational Codeforces Round 62 (Rated for Div. 2) C 贪心 + 优先队列 + 反向处理
		https://codeforces.com/contest/1140/problem/C 题意 每首歌有\(t_i\)和\(b_i\)两个值,最多挑选m首歌,使得sum(\(t_i\))*min(\ ... 
随机推荐
- css 背景透明,文字不透明
			<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ... 
- Java21个基础知识点
			类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件.在Java中,类装载器把一个类装入JVM中,要经过以下步骤: (1) 装载:查找和导入Class文件: (2) 链接:把类的二进制 ... 
- HDU 6115 Factory LCA,暴力
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6115 题意:中文题面 分析:直接维护LCA,然后暴力枚举集合维护答案即可. #include < ... 
- ffmpeg安装与配置
			wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz tar -zxvf ffmpeg-3.1.tar.gz cd ffmpeg-3.1 ./co ... 
- linux命令(44):date命令
			1.命令格式: date [参数]... [+格式] 2.命令功能: date 可以用来显示或设定系统的日期与时间. 3.命令参数: 必要参数: %H 小时(以00-23来表示). %I 小时(以01 ... 
- POJ-2563
			Pick-up sticks Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 10364 Accepted: 3842 D ... 
- hive学习(一)hive架构及hive3.1.1三种方式部署安装
			1.hive简介 logo 是一个身体像蜜蜂,头是大象的家伙,相当可爱. Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便 ... 
- [知识复习] C语言文件读写
			文件打开 fopen() 返回FILE* 对象,如果打开失败返回NULL,错误代码存入errno中 FILE *fopen( const char * filename, const char * m ... 
- 把web项目部署到tomcat上
			首先在服务器搭建JDK环境:https://www.cnblogs.com/lb809663396/p/5855877.html 然后把tomcat文件包复制到服务器上,访问http://localh ... 
- springBoot service层 事务控制
			springBoot使用事物比较简单,在Application启动类s上添加@EnableTransactionManagement注解,然后在service层的方法上添加@Transactional ... 
