Phoenix and Distribution(字典序贪心)
\(给定一串字母,分成k份,使得最大字典序最小。(字母可以任意组合)\)
\(------------------------------issue~------------------------\)
\(首先肯定先对字母排序,然后往k个盒子都丢一个字母(因为不能为空)\)
\(那么接下来,就一定能够要想清楚了......\)
\(\color{Red}Ⅰ.当接下来的字母都相等时,就均分到k个盒子里,因为这时候影响字典序的只是长度\)
\(\color{Purple}{Ⅱ.当接下来的字母不全相等,意味着什么?还能均分吗?}\)
\(问题的关键在于,接下去总会有不相等的字母,每次均分的话迟早轮到某个盒子分到的是较大的字母\)
\(那这样一定不会比我把所有字母接在第一个盒子更优,因为虽然我的长度长,但是相同位置上一定是最小的!!(字母已经排序了)\)
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+9;
char s[maxn];
string a[maxn],maxx;
int t,n,k,y,L;
void work()
{
for(int i=1;i<=k;i++)
a[i]+=s[++y];
}
int main()
{
cin>>t;
while(t--)
{
int flag=0;
for(int i=1;i<=100000;i++) a[i]="";
cin>>n>>k>>(s+1);
sort(s+1,s+1+strlen(s+1));
L=strlen(s+1);
for(int i=1;i<=k;i++)
a[i]+=s[i];//先都分一个字典序最小的
if(a[k]!=a[1]) cout<<a[k];//最大一定是a[k];
else
{
int flag=1;
for(int i=k+2;i<=L;i++) if(s[i]!=s[i-1]) flag=0;
if(flag)//都相等
{
y=k;
while(y<n) work();
cout<<a[1];
}
else//不都相等
{
for(int i=k+1;i<=L;i++) a[1]+=s[i];
cout<<a[1];
}
}
cout<<endl;
}
}
Phoenix and Distribution(字典序贪心)的更多相关文章
- Hdu6586 String 字符串字典序贪心
Hdu6586 字符串字典序贪心 题意 给出一个只包含26个字符的字符串(|S|<=1e5),要求从中取出长度为k的字典序最小的组序列,满足所给的26个字母的限制条件,例如\([l_i,r_i] ...
- Codeforces 798D Mike and distribution(贪心或随机化)
题目链接 Mike and distribution 题目意思很简单,给出$a_{i}$和$b_{i}$,我们需要在这$n$个数中挑选最多$n/2+1$个,使得挑选出来的 $p_{1}$,$p_{2} ...
- codeforces 798 D. Mike and distribution(贪心+思维)
题目链接:http://codeforces.com/contest/798/problem/D 题意:给出两串长度为n的数组a,b,然后要求长度小于等于n/2+1的p数组是的以p为下表a1-ap的和 ...
- bzoj 3671: [Noi2014]随机数生成器【模拟+贪心】
降智好题 前面随机部分按照题意模拟,然后字典序贪心,也就是记录每个值的位置从1~nm依次看能不能取,能取的话更新行的取值范围(它上面的行一定取的列小于等于这个数取的列,下面行大于等于) #includ ...
- Codeforces1348 题解
AC代码连接 A Phoenix and Balance 显而易见,将前\(\frac{n}{2}-1\)个和最后1个分为1组,剩下的1组即为最优方案. B Phoenix and Science 这 ...
- Codeforces Round #638 (Div. 2)
Contest Info Practice Link Solved A B C D E F 4/6 O O Ø Ø O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Sol ...
- COJ883 工艺品
试题描述 LZJ和XJR是一对好朋友. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块放到最右边. 他们想,在仅这一个操作下,最漂 ...
- hdu1814 Peaceful Commission
hdu1814 Peaceful Commission 题意:2-sat裸题,打印字典序最小的 我写了三个 染色做法,正解 scc做法,不管字典序 scc做法,错误的字典序贪心 #include &l ...
- CSP-S 2019 简要题解
从这里开始 又考炸了,sad.....明年应该在准备高考了,考完把坑填了好了. 一半题都被卡常,qswl.[我汤姆要报警.jpg] dfs 怎么这么慢呀,sad..... i7 牛逼! 写的比较混乱, ...
随机推荐
- 游戏开服 报一些 ip 设置 数据格式的异常,但断点明明都是数字 没问题的
游戏服开始起服,结果报乱七八招的错误,先 ccs 那 ip 有问题,我给直接注释掉了:然后又 报 KeyValueDictCache 中 ips 设置有问题,都是报格式错误,结果我断点明明都是数字结 ...
- SpringMVC中利用HandlerExceptionResolver完成异常处理
在解决Controller层中的异常问题时,如果针对每个异常处理相对较为繁琐.在SpringMVC中提供了HandlerExceptionResolver用于处理捕获到的异常,从而重新定义返回给前端的 ...
- [译]谈谈SpringBoot 事件机制
要"监听"事件,我们总是可以将"监听器"作为事件源中的另一个方法写入事件,但这将使事件源与监听器的逻辑紧密耦合. 对于实际事件,我们比直接方法调用更灵活.我们可 ...
- work of 1/6/2016
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 UI动态布局改进和攻克疑难 6 继续下滑条等增删补减 ...
- @SessionAttributes 的使用
@SessionAttributes 注解只用作用在 类 上,作用是将指定的 Model 的键值对保存在 session 中.可以让其他请求共用 session 中的键值对. 指定保存的属性名 作用是 ...
- Go gRPC进阶-proto数据验证(九)
前言 上篇介绍了go-grpc-middleware的grpc_zap.grpc_auth和grpc_recovery使用,本篇将介绍grpc_validator,它可以对gRPC数据的输入和输出进行 ...
- Springboot:员工管理之国际化(十(3))
1:IDEA编码设置UTF-8 2:创建国际化文件 i18n\login.properties #默认语言 i18n\login_en_US.properties #英文语言 i18n\login_z ...
- react: typescript custom hooks useAsyncTable
define basic data: const SET_QUERY = "SET_QUERY"; const TOGGLE_LOADING = "TOGGLE_LOAD ...
- Centos8安装docker-compose
一.首先检查是否有pip 执行命令:piv -V 二.更新pip 执行命令:pip install --upgrade pip 三.下载 setuptools 执行命令 :pip install - ...
- Jmeter与LoadRunner的比较
一.与Loadrunner的比较相似点 1.Jmeter的架构跟loadrunner原理一样, 都是通过中间代理,监控&收集并发客户端发现的指令,把他们生成脚本,再发送到应用服务器,再监控服务 ...