首页 > 其他分享 >C. Did We Get Everything Covered

C. Did We Get Everything Covered

时间:2024-01-28 23:11:59浏览次数:27  
标签:cnt 遍历 Did cin 一位 Everything int ans Covered

原题链接

前情提要

限于自身知识水平的储备不足,无法对这道题的贪心算法做出一个证明,待来日学识渐长把这个证明写下

题解

我们可以把字符串s分成若干区间,每一区间对应一位数字的储备
已知长度为n,那我们就一位一位地遍历,一旦所有元素遍历齐就开始下一位的遍历,因为再往后遍历也不起作用
然后取每一位最后一个收集齐的字母因为这一位想要出现这个字母就必须要取它,最后几位取没有遍历到的字母重复即可

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,k,m;
        cin>>n>>k>>m;
        string s;
        cin>>s;

        int a[27]={0},cnt=0;
        string ans="";
        for(int i=0;s[i];i++)
        {
            if(!a[s[i]-97])cnt++;
            a[s[i]-97]=1;
            if(cnt==k)
            {
                ans+=s[i];
                cnt=0;
                memset(a,0,sizeof(a));
            }
        }
        if(ans.size()>=n)puts("YES");
        else
        {
            puts("NO");
            for(int i=0;i<k;i++)
            {
                if(!a[i])
                {
                    while(ans.size()<n)ans+=('a'+i);
                }
            }
            cout<<ans<<endl;
        }
    }
    return 0;
}

标签:cnt,遍历,Did,cin,一位,Everything,int,ans,Covered
From: https://www.cnblogs.com/pure4knowledge/p/17993599

相关文章

  • [ARC096E] Everything on It
    这种题在想题的时候可以先随便找到一个做法再去优化,不要管复杂度,想多了容易混。首先容易发现,这道题直接计数比较困难。所以我们想到了用容斥来解决这个问题。但是容斥的方式可能比较多,可以多尝试然后选择最简便的方法。钦定\(f_i\)表示,我们强制\(n\)个数中的\(i\)个出现次......
  • k8s 报错: node(s) didn't match Pod's node affinity.
    前言k8s集群中,有pod出现了Affinity,使用kubectldescribepod命令,发现了报错2node(s)didn'tmatchPod'snodeaffinity.这是因为节点被打上了污点,导致了pod没有节点可以起来解决kubectlgetnodes-ojson|jq'.items[].spec'orkubectlgetnodes-oyaml找到......
  • Docker启动Nacos报错:Nacos Server did not start because dumpservice bean construct
    一、表象重启服务器之后Docker运行Nacos容器,启动成功,但是外网无法访问。查看了一下Nacos启动日志(dockerlogsnacos容器名)二、分析很明显是数据库配``置问题。。如果是数据库配置的问题,可以着重检查以下信息尤其是MySQL内网Host,查询方式见Docker安装Nacos三、解决我已......
  • 用RWEverything刷内存spd
    最近参与的一个项目,由于主板只支撑ddr3L的内存,需要把ddr3标压内存刷为ddr3L。通过百度找到如下:不无折腾篇五:DDR3标压内存改DDR3L低压条保姆级傻瓜教程于是动手实践了一下,特此记录本过程:1、找台支持ddr3标压的机子作为刷机平台,并下载好软件RWEverything1.72、寻找能刷spd的内......
  • Xcode 15 Release Candidate (15A240d) 发布 - Apple 平台 IDE
    Xcode15ReleaseCandidate(15A240d)发布-Apple平台IDEIDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS作者主页:sysin.orgvisonOS支持已更新。Xcode15使您能够为所有Apple平台开发、测试和分发应用程序。通过增强的代码完成、交互式预览和实时动画,更快地编写和设计您的......
  • 基于DID实现第三方应用的分布式身份登录
    在我们掌握了DID的基础知识(还没有掌握DID基础知识?请先阅读我之前的关于DID的文章),构建DID平台的时候,DID的常见应用就是基于DID实现第三方平台的登录。接下来,我们假设已经构建了一个基础的DID平台,用长安链实现了DID文档的链上管理,并提供了DID钱包托管用户的公私钥和VC证书,建设全新的......
  • Github Actions - Error: The connection to the server localhost:8080 was refused
     Runkubectlapply-feks/aws-auth.yamlkubectlapply-feks/aws-auth.yamlkubectlapply-feks/deployment.yamlkubectlapply-feks/service.yamlshell:/usr/bin/bash-e{0}env:AWS_DEFAULT_REGION:ap-southeast-1AWS_REGION:ap-southe......
  • Docker启动Nacos报错:Nacos Server did not start because dumpservice bean construct
    一、表象重启服务器之后Docker运行Nacos容器,启动成功,但是外网无法访问。查看了一下Nacos启动日志(dockerlogsnacos容器名)二、分析很明显是数据库配``置问题。。如果是数据库配置的问题,可以着重检查以下信息尤其是MySQL内网Host,查询方式见Docker安装Nacos三、解决我已......
  • R语言SIR模型网络结构扩散过程模拟SIR模型(Susceptible Infected Recovered )代码实例|
    全文链接:http://tecdat.cn/?p=14593最近我们被客户要求撰写关于SIR模型的研究报告,包括一些图形和统计输出。与普通的扩散研究不同,网络扩散开始考虑网络结构对于扩散过程的影响。这里介绍一个使用R模拟网络扩散的例子基本的算法非常简单:生成一个网络:g(V,E)。随机选择一个或几......
  • git pull error: ******.git did not send all necessary objects
     由于网络问题或其他临时错误导致了对象丢失或损坏,错误的原因往往是仓库中有一些对象在传输中丢失或损坏。当Git客户端从远程仓库获取对象时,如果有任何一个对象丢失或损坏,就会导致克隆失败并显示这个错误。重新尝试克隆即可!......