cf 1511 D. Min Cost String

题意:

我们规定一个字符串的费用为存在一个i和j(i<j),然后s[i] = =s[j] && s[i+1] = =s[j+1],组成字符串的字符必须是前k位
现在给你字符串的长度n和k,怎样构造使得费用最少

题解:

其实第一个样例就已经把答案说出来了。。
比赛时自己想的很近了,但是就是差一点,唉
构造题等告诉答案就很简单了
为了让费用最少,我们要尽可能实现更多的两两字符的组合
所以我们可以这样构造,比如k为4,我们先让a与b,c,d分别组合,然后b再和,c,d组合,然后 。。。这样
但是这是其实还漏了一个情况,可以让a和b组合+a和c组合+a和d组合,当然aa也是可以的
所以答案就是:aabacadbbcbd…
这样构造出来是没有费用的,有可能n很大,所以这个答案不断复制,直到长度大于n,然后输出前n项
(不难,但是一开始没想到)

代码:

#include<bits/stdc++.h>
#define debug(x,y) printf("%s = %d\n",x,y);
typedef long long ll;
using namespace std;
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w;
}
int main()
{int n,k;cin>>n>>k;string s;for(int i=0;i<k;i++){s+='a'+i;for(int j=i+1;j<k;j++){s+='a'+i;s+='a'+j;}}while(s.size()<n)s+=s;s.resize(n);cout<<s<<endl;
}
/*
a abacad b bcbd
*/

cf 1511 D. Min Cost String相关推荐

  1. C#LeetCode刷题之#746-使用最小花费爬楼梯( Min Cost Climbing Stairs)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4016 访问. 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个 ...

  2. LeetCode 746. Min Cost Climbing Stairs--动态规划--Java,C++,Python解法

    题目地址:Min Cost Climbing Stairs - LeetCode LeetCode 动态规划(Dynamic programming)系列题目:LeetCode 动态规划(Dynami ...

  3. 746. Min Cost Climbing Stairs 题解

    leetcode.com/problems/min-cost-climbing-stairs/ minCost[n]: 达到台阶n需要消耗的最小成本 Cost[n]: 台阶n自身的成本 递推式为 mi ...

  4. 【动态规划 斐波那切数列】LeetCode 746. Min Cost Climbing Stairs

    LeetCode 746. Min Cost Climbing Stairs 本博客转载自:http://www.cnblogs.com/grandyang/p/8343874.html 存在无代价的 ...

  5. Leetcode 746. Min Cost Climbing Stairs

    思路:动态规划. 1 class Solution { 2 //不能对cost数组进行写操作,因为JAVA中参数是引用 3 public int minCostClimbingStairs(int[] ...

  6. [dp]leetcode 746. Min Cost Climbing Stairs

    输入:一个数组cost,cost[i]表示越过第i个台阶的代价(可能是热量,也可能是过路费) 输出:走过这n个台阶,需要的最小代价 规则:一旦你为第i个台阶付出代价cost[i],那么你可以到达第i+ ...

  7. AT4437-[AGC028C]Min Cost Cycle【结论,堆】

    正题 题目链接:https://www.luogu.com.cn/problem/AT4437 题目大意 有nnn个点的一张有向完全图,每个点有两个点权a,ba,ba,b.连接x,yx,yx,y两个点 ...

  8. Educational Codeforces Round 107 (Rated for Div. 2)

    Educational Codeforces Round 107 (Rated for Div. 2) 题号 题目 知识点 A Review Site 签到 B GCD Length 思维+构造 C ...

  9. Educational Codeforces Round 107 (Rated for Div. 2) 题解

    文章目录 A. Review Site B. GCD Length C. Yet Another Card Deck D. Min Cost String E. Colorings and Domin ...

最新文章

  1. pytorch 模型下载,郑重推荐
  2. 终于!华为在欧盟注册新商标“Harmony”;亚马逊AWS宣布张文翊“新官上任”;甲骨文失去竞购100亿美元国防部云计算合同资格...
  3. java动态变量名_Java||第一篇:了解Java并搭建环境
  4. 计算机的改错键是什么符号,对号和错号在键盘上怎么输入?
  5. vue 调用虚拟键盘
  6. 风变编程——自动化技术和教学的完美融合
  7. 别墅家庭无线WiFi覆盖解决方案
  8. iOS开发——openssl生成CSR (pkcs10) 请求证书
  9. [洛谷 P1647]锁 --- 规律 + 二进制
  10. @Validated和@Valid的使用
  11. 创宇技能表_[OPEN]知道创宇研发技能表
  12. Minecraft 1.16.5模组开发(五十四) 方块探测器(Detector)
  13. 数字签名和数字签名证书理解
  14. 北上广深之外,互联网经济也在杭州成都西安武汉异军突起
  15. 数学建模入门-python拟合曲面
  16. 大数据时代,谁能成用户隐私的保护伞?
  17. RS Browser Forensics下载|RS Browser Forensics(浏览器提取恢复工具)破解版下载 v1.0
  18. 远程管理软件(xshell)介绍和系统连接
  19. 客户端Git代码的下载与提交
  20. 不同浏览器中 URL 的最大长度是多少?

热门文章

  1. 学会了!如果认错人了,就像这样亲一口!
  2. 美国Thinkfun的“编程三剑客”少儿编程从入门到精通
  3. 机器学习的最佳学习路线原来只有四步
  4. python 百度百科 爬虫_python简单爬虫
  5. kafka 怎么样连接图形化界面_图形化编程有多简单,点亮LED不到一分钟
  6. linux ubuntu 开启ssh服务,开启SSH服务远程登录ubuntu
  7. sql同时向两个表插入数据_SQL入门-数据库和客户端的安装,表的创建和数据插入...
  8. 7-53 两个有序序列的中位数 (25 分)(思路加详解)用STL容器中的set容器的自动去重过不去
  9. dfs中return回溯问题
  10. python3调用c语言数组,使用Python中的ctypes访问数组