Contest Info


Practice Link

Solved A B C D E F
4/6 O O Ø  Ø    
  • O 在比赛中通过
  • Ø 赛后通过
  • ! 尝试了但是失败了
  • - 没有尝试

Solutions


C.Phoenix and Distribution

题意:

将字符串 $s$ 分为 $k$ 个非空串,找出使得$ k$ 个非空串中字典序最大的字符串字典序最小的方案

思路:

求最大值的最小值,那么对某种分配来说,求字典序最大时要保证$k$个序列每个都尽可能小,这样最后求出来的最小值才尽可能的小。

由于要求$k$个串是非空的,那么对原串先排序,取前$k$个分配给$k$个字符串。

此时如果只剩下一种字母,给字典序最小的一些字符串循环分配即可。

如果剩下的字母多于一种,则全部分给一个字符串,因为这样分较大的字母最靠后,字典序最小。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 1e5+100;
int T, n, k;
char s[maxn];
int main(){
scanf("%d", &T);
while(T--){
scanf("%d%d %s", &n, &k, s+1);
sort(s+1, s+1+n);
bool flag1 = false, flag2 = false;
for(int i = 1; i <= k-1; i++)
if(s[i]!=s[i+1]){
flag1 = true;
break;
}
if(flag1){
printf("%c\n", s[k]);
continue;
}
for(int i = k+1; i <= n-1; i++)
if(s[i]!=s[i+1]){
flag2 = true;
break;
}
if(flag2) printf("%c%s\n", s[1], s+k+1);
else printf("%c%s\n", s[1], s+1+n-(n-1)/k);
}
}

D.Phoenix and Science

题意:

开始时有 $1$ 个质量为 $1$ 的细菌,白天可以选择部分细菌分裂,晚上每个细菌的质量增加 $1$,问最少需要多少天总质量能达到 $m$,输出分裂方案

思路:

由于求最少天数,我们考虑质量增长最快的方式——指数增长:每个白天所有的细菌都分裂,这样每晚增加的质量(当前细菌数目)即为一个 $a_0=1, q=2$ 的等比数列,求出和小于等于 $m$的最长等比数列,将多出来的质量分进其中的某一天即可,相邻两晚的质量之差即为白天分裂的个数.

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int T, n;
int main(){
scanf("%d", &T);
while(T--){
scanf("%d", &n);
vector<int> g;
for(int i = 1; i <= n; i *= 2){
g.push_back(i);
n -= i;
}
if(n>0){
g.push_back(n);
sort(g.begin(), g.end());
}
printf("%d\n", g.size()-1);
for(int i = 1; i < g.size(); i++)
printf("%d ", g[i]-g[i-1]);
printf("\n");
}
}

我可能脑子有点糊,我读完题后想成$x$个细菌分裂会变成$2^x$个细菌,实际上是变成$2*x$,分裂多少个就增加多少个细菌,之后要更加细心


Refrence:

https://www.cnblogs.com/Kanoon/p/12815637.html

https://www.cnblogs.com/kikokiko/p/12815671.html

Codeforces Round #638 (Div. 2)的更多相关文章

  1. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  2. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  3. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  6. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  7. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  8. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

  9. Codeforces Round #268 (Div. 2) ABCD

    CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...

随机推荐

  1. vim_command

    vi 打开vi空白面板 vi filename 以编辑模式打开文件.如果参数为已有文件,在vi中打开:如果参数为新文件名,在vi退出时提示用户保存编辑内容 vi -R filename 以只读模式打开 ...

  2. Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)

    Hola,我是 yes. 经过了 RPC 核心和 Dubbo 微内核两篇文章后,今天终于要稍稍深入一波 Dubbo 了. 作为一个通用的 RPC 框架,性能是很重要的一环,而易用性和扩展性也极为重要. ...

  3. mmall商城购物车模块总结

    购物车模块的设计思想 购物车的实现方式有很多,但是最常见的就三种:Cookie,Session,数据库.三种方法各有优劣,适合的场景各不相同.Cookie方法:通过把购物车中的商品数据写入Cookie ...

  4. Docker构建Python Web环境

    出于寻找Docker对Python相关项目部署的学习,找到腾讯课堂NEXT公开课中[Docker构建Python Web环境]的课程,本文对其进行内容梳理及知识点汇总. 该课程总计6小时左右,是个适合 ...

  5. docker 报错: Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

    最近在 Windows 子系统 WSL 上面安装了一个 ubuntu18.04, 安装完docker 跑 hello-world 的时候报错了 docker: Cannot connect to th ...

  6. [oracle] exp-00091

    产生原因: 在数据库的服务器端和客户端字符集不同的情况下,导出(dump)数据库表时,会产生这个错误.虽然产生这个错误,但好像对导入没有影响. 解决办法: 查看服务器端字符集: 打开SQLPLUS,执 ...

  7. leetcode 1240. 铺瓷砖(回溯,DFS)

    题目链接 https://leetcode-cn.com/problems/tiling-a-rectangle-with-the-fewest-squares/ 题意: 用尽可能少的正方形瓷砖来铺地 ...

  8. Eclipse中给jar包导入JavaDoc的方法

    原文转载自:http://blog.csdn.net/mr_von/article/details/7740138 在使用Java语言开发的过程中,开发人员经常需要用到一些开源的工具包.在使用别人的j ...

  9. B树的进化版----B+树

    C++为什么叫C plus plus?这是由于C++相当于继承C的语法后,增加了各方面的能力,所扩展出的一种新语法.在软件领域中 plus 有增加的味道.在这里B +树也一样,是B树的增强版.在学习B ...

  10. 使用pushplus+python实现亚马逊到货消息推送微信

    xbox series和ps5发售以来,国内黄牛价格一直居高不下.虽然海外amazon上ps5补货很少而且基本撑不过一分钟,但是xbox series系列明显要好抢很多. 日亚.德亚的xbox ser ...