呜呜呜我爆零了呜呜呜ljll

嗯T1T2防爆零的没了呜呜呜
在此纪念可怜的yjz大佬21发AC

太惨了(逃

先来说说我们都有些啥题目吧。。。

T1

嗯,裂开了,当场裂开
我一看!桶排!
然后实现,嗯?嗯!嗯???不对啊,这怎么搞???

第一发

嗯!输出错了!改!

第二发

我%^&*()_)(*&^

嗯。。。
我先调一调awa
嗯!找到了!估计能A了!

这wtm。。。

开T2吧。。。

T2

嗯!大水题!

但是,我仔细一看!

正好n个?????
这。。。
瞬间就想到了一个不需要证明的贪心。。。
然后。。。

标准结局

我太难了
仔细一想,发现排个序就好了。。。
然后又调了亿调,就在比赛结束后一分钟的时候A了

这tm的。。。
我接下来看了看T3。。。

就是一个dp。。。(第一想法)
这。。。
不行啊。

那就试试建图!2-sat!(第二想法)
这条件!我吐了,根本不行。。。
第三想法:炸了
然后一想。。。这绝对是个dp。。。
推了推式子,没搞出来。。。
这就是全部的心路历程。。。
我太难了 唉,开始写正解
T1

其实吧,就是一个排序能解决的事情,但是因为那个k的迷惑,我傻了。
想想排序,其实只要保证每一个字典序的接近就能找到最大值中的最小值了
直接构造 其实就是个贪心。。。
排个序

来自oi-wiki 这就是排序贪心的常见的情况之一

第一种情况

如果s[1]==s[k]

排序完了就能发现这个k与1之间是有联系的,只要他们不相同,因为排序的原因,就能够直接的说明在大的字符串就是s[k]。
问为什么的话,其实就是因为如果我在一个字符串中放这个字符,或者是将一类的字符放到其他的k个字符串中,易证,这个一定是可以在这种情况中最大的。
然后是另一种情况。

如果s[k+1]!=s[n]

那么在这种情况下,k个字符串中的第一个字符都是一样的。字典序的大小完全在于后面的字符串
为了保证这是一个最大的字符串,我不得不把下一个字符放在这个字符串上面。
只有这样,才能保证这个是最大中的最小。为了最大,我们一定要在他的后面加入一个字符,但是为了最小,又只能加入全部的字符。
比如对于

5 2
baacb

 这个样例就是这种情况。排序完是aabbc,最终的答案是abbc。
 最开始,我很疑惑。。。因为我觉得abc<abbc,然后我就傻了。。。
 但是在这种情况中,因为必须加入一个字符并最小,所以就会选择加入s[k+1].
  这个是很显然的。但是,之后为了使它继续保持在最大的情况下,我们不得不把全部比第一个字符大的字符加入它。
 因为如果有一个字符串得到了之后的字符,它就不会再这种情况中继续保持最大了。像abb和ac,ac就会大于abb了。
 因为大的字符越靠前,这个字符串的字典序就会越大,所以我们就要尽可能的把大的字符往后靠,也就是把小的字符往前填。
 所以就可以得到了awa

 第三种情况

 就是s[i]==s[k]&&s[k+1]==s[k]

 那就之间把第一个输出了,然后在选择几个字符输出就好了啊。。。这是最简单的。
 附上代码

 

#include<bits/stdc++.h>
#define ll long long
using namespace std;
char s[1000001];
int k,n,T;
inline ll read()
{
char c=getchar();ll a=0,b=1;
for(;c<'0'||c>'9';c=getchar())if(c=='-')b=-1;
for(;c>='0'&&c<='9';c=getchar())a=a*10+c-48;
return a*b;
}
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
T=read();
while(T--)
{
cin>>n>>k;
scanf("%s",s+1);
sort(s+1,s+n+1);
if(s[k]!=s[1])
{
printf("%c\n",s[k]);
}
else
if(s[n]!=s[k+1])
{
printf("%c%s\n",s[1],s+k+1);
}
else
{
cout<<s[1];
for(int i=1;i<=(n-1)/k;i++)
{
printf("%c",s[k+1]);
}
cout<<endl;
}
}
return 0;
}

就是这么简单

T2

一看T2,无解输出-1,嗯,要记得,嗯。
然鹅!根本就没有无解的情况。。。极其可怕awa,来自cf的一波误导awa

转载于luogu的题解

要达到最少次数,贪心的想每次肯定加上最多的量 x * 2,然而每次最少加上变化过的x,所以最后一次加的数可能小于当前的x,但是没关系,可以让这次加上的那个小于x的数尽可能的往前移直到前一个数小于等于它,然后按照顺序求一遍答案即可。

这题比T1简单。。。
溜了,附上代码

void solve() {
int n;
scanf("%d", &n);
vector<int> v;
int x = 1;
while(n > 0) {
if(n > x) v.push_back(x);
else v.push_back(n);
n -= x;
x <<= 1;
}
sort(v.begin(), v.end());
printf("%d\n", v.size() - 1);
for(int i = 1; i < v.size(); i++) {
printf("%d ", v[i] - v[i - 1]);
}
puts("");
}

T2就好了。。

T3还没写awa

qwq

2020/5/8—cf,我裂开来的更多相关文章

  1. php和java的一些比较

    现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营.但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异.其实,PHP+ ...

  2. [UOJ#334][NOIP2017]列队 平衡树/线段树/树状数组

    题目链接 题意不说了,一辈子也忘不掉 解法1.平衡树 这题就是平衡树裸题,每一行开一棵维护前 \(m-1\) 个,最后一列单独维护,因为很多人没有用到,所以平衡树每个节点是一个区间(pair),分裂时 ...

  3. python中minepy包的下载

    minepy包的下载 今天在做机器学习的时候,需要使用到互信息的有关内容,而python包下正好有处理互信息的包,想直接下一个,没想到遇到了不少问题: 基本指令很简单了: pip install mi ...

  4. 集训DP复习整理

    DP复习 集训%你赛2:测绘(审题DP) 经过2000+个小时的努力终于把这道题做出来的蒟蒻通 分析: 这道题我一直没做出来的原因就是因为我太蒟了题面看不懂,题面读懂了,其实不是特别难. 题目翻译: ...

  5. 我的获奖记录及 Important Dates in OI

    逊逊的获奖记录/ruo(真的没拿过啥奖,并且大部分都集中在初三阶段,即 2020-2021 赛季): NOIP2018 pj,1=,无游记 CSP-S2019,1=,无游记 APIO2020,Ag,游 ...

  6. 平衡树 & LCT

    1. 非旋 Treap(FHQ Treap) 1.1. 算法简介 FHQ Treap 的功能非常强大.它涵盖了 Treap 几乎所有的功能 所以我非常后悔学了 Treap,浪费时间. FHQ 的核心思 ...

  7. 【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)

    比赛传送门 只能说当晚状态不佳吧,有点头疼感冒的症状.也跟脑子没转过来有关系,A题最后一步爆搜没能立即想出来,B题搜索没有用好STL,C题也因为前面两题弄崩了心态,最后,果然掉分了. A:简单数学 B ...

  8. CF Grakn Forces 2020 1408E Avoid Rainbow Cycles(最小生成树)

    1408E Avoid Rainbow Cycles 概述 非常有趣的题目(指解法,不难,但很难想) 非常崇拜300iq,今天想做一套div1时看见了他出的这套题Grakn Forces 2020,就 ...

  9. CF Hello 2020 E.New Year and Castle Construction

    E.New Year and Castle Construction 题意 给定n个点,对于每个点\(p\),求出4-point 子集(该子集有四个点,并且围成的圈包含\(p\))的个数 数据给的点中 ...

  10. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

随机推荐

  1. C#.NET Framework 使用BC库(BouncyCastle) RSA 公钥加密 私钥解密 ver:20230706

    C#.NET Framework 使用BC库(BouncyCastle) RSA 公钥加密 私钥解密 ver:20230706 环境说明: .NET Framework 4.6 的控制台程序 . 20 ...

  2. SQL Server 数据库字符串分割函数

    SQL Server 数据库字符串分割函数,源代码如下: ALTER FUNCTION [dbo].[f_split] ( @SourceStr VARCHAR(MAX), -- 源字符串 @Spli ...

  3. 【SpringCloud】Ribbon

    Ribbon 负载均衡原理 order-service 发起 user-service 请求,被ribbon进行拦截; ribbon会向注册中心拉取user-service 相对应的服务; 注册中心返 ...

  4. Hexo、Typecho博客添加旅行足迹网页

    本文部署的足迹地图,地址如下: http://www.aomanhao.top/index.php/archives/183/ jVectorMap JVectorMap 是一个优秀的.兼容性强的 j ...

  5. System类_Calendar类_Date类_小记

    PrintStream(字节打印流) ps = System.out ; 标准输出流 PrintWriter(字符打印流) InputStream in = System.in; 标准输入流 常用的成 ...

  6. 【原创】xenomai UDD介绍与UDD用户态驱动示例

    目录 xenomai UDD与用户态驱动示例 一.UDD介绍 二.UDD原理及框架 1. 内存映射 2. 中断处理 UDD与UIO的区别 3. linux UIO与xenomai UDD框架对比 3. ...

  7. Point Free

    这是一种函数编码模式: 把数据处理的过程定义成和数据无关的合成运算,不需要用到数据参数,只是简单合成运算步骤,但需要定义一些辅助的基本运算函数. for example:  采用了lodash的fp ...

  8. TCP 初识(一)

    什么是TCP? TCP是面向连接的,可靠的,基于字节流的传输层通信协议. 面向连接:一定是一对一才能连接,不能像UDP协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的. 可靠的:无论网 ...

  9. nacos适配达梦、瀚高、人大金仓数据库及部分源码探究

    一.插件实现 1.插件目录结构 2.pom依赖 <dependency> <groupId>com.alibaba.nacos</groupId> <arti ...

  10. java中Object 类

    一. Object类简介 Object类是Java.java.lang包下的核心类,Object类是所有类的父类,任何一个类如果没有明确的继承一个父类的话,那么它就是Object的子类: (使用无需导 ...