Codeforces Round 921 (Div. 2) A~D

本期封面原图 画师村カルキ 这个太太的画风我好喜欢
古早题目洛谷都有翻译我就不写题意了

A - We Got Everything Covered!

思路

没有长度限制,只要我把abcde输出n遍那不管什么匹配我都可以在每一轮拿一个拿到

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    int n,k;
    scanf("%d%d",&n,&k);
    while(n--)
    {
        for(int i=0;i<k;i++)
        {
            printf("%c",'a'+i);
        }
    }
    printf("\n");
}

int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

B - A Balanced Problemset?

思路

不难guess到要找第一个比n大的x的因数求答案,n刚好只到1e8所以可以放心的用最朴素的方法求他的所有因数

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    int x,n;
    scanf("%d%d",&x,&n);
    vector<int> a;
    //拆x的所有因数
    for(int i=1;i*i<=x;i++)
    {
        if(x%i==0)
        {
            a.push_back(i);
            a.push_back(x/i);
        }
    }
    sort(a.begin(),a.end());
    //找到第一个大于等于n的因数
    int p=lower_bound(a.begin(),a.end(),n)-a.begin();
    printf("%d\n",x/a[p]);
}

int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

C - Did We Get Everything Covered?

思路

回想第一题,我们是构造了一轮一轮,在这里我们仍然需要一轮一轮,前k个小写字符都出现过算1轮,至少要有n轮才算成功,遍历一遍就行了

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    int n,k,m;
    scanf("%d%d%d",&n,&k,&m);
    string s;
    cin>>s;
    int p=-1;
    string ans;
    int vis[26];
    int CNT=0;
    int flag=0;
    while(1)
    {
        memset(vis,-1,sizeof(vis));
        int cnt=0;
        for(int i=p+1;i<m;i++)
        {
            if(vis[s[i]-'a']==-1)
            {
                vis[s[i]-'a']=i;
                cnt++;
                if(cnt==k)
                {
                    break;
                }
            }
        }
        if(cnt<k)
        {
            flag=0;
            for(int i=0;i<k;i++)
            {
                if(vis[i]==0)
                {
                    ans+=('a'+i);
                    CNT++;
                    int len=ans.length();
                    for(;len<=n;len++)
                    {
                        printf("%c",'a'+i);
                    }
                    break;
                }
            }
            break;
        }
        else
        {
            int x,y;
            for(int i=0;i<k;i++)
            {
                if(vis[i]>x)
                {
                    x=vis[i];
                    y=i;
                }
            }
            ans+=('a'+y);
            CNT++;
            p=x;
        }
        if(cnt==m)
        {
            flag=1;
            break;
        }
    }
    if(flag==0)
    {
        printf("NO\n");
        cout<<ans<<endl;
    }
    else
    {
        printf("YES\n");
    }
}

int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

D - Good Trip

思路

(看了洛谷的题解补的),设 p = 2 n ( n − 1 ) p=\frac{2}{n(n-1)} p=n(n1)2 s = ∑ i = 1 m f i s=\sum_{i=1}^{m} f_{i} s=i=1mfi,每一轮选择时,选择到的友谊值的期望为 p ⋅ s p\cdot s ps,友谊值总和增加的期望为 p ⋅ m p\cdot m pm,所以只要不断更新ans和m即可

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ll lpw=(int)1e9+7;
ll n,m,k,p,a,b,f,sum,ans;
ll qpow(ll a,ll b){
    ll ans=1;
    while(b){
        if(b&1)ans=ans*a%lpw;
        a=a*a%lpw;
        b>>=1;
    }
    return ans;
}

void solve()
{
    ans=sum=0;
    scanf("%lld%lld%lld",&n,&m,&k);
    p=n*(n-1)%lpw;p=2*qpow(p,lpw-2)%lpw;
    for(ll i=1;i<=m;i++)
    {
        scanf("%lld%lld%lld",&a,&b,&f);
        sum=(sum+f)%lpw;
    }
    for(int i=1;i<=k;i++)
        ans=(ans+sum*p%lpw)%lpw,sum=(sum+m*p%lpw)%lpw;
    printf("%lld\n",ans);
}

int main()
{
    int T=1;
    scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/875296.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt | ubuntu20.04安装Qt6.5.3并创建一个example完整教程(涉及诸多开发细节,商用慎重)

点击上方"蓝字"关注我们 01、下载 >>> 下载Qt在线安装包 这里采用镜像地址进行下载,避免网络过慢。 镜像地址:http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/4.5/ 选择最新版本下载,如截至目前最新版本为qt-unified-linux-x64-4.5.2…

Python数据分析于可视化

Python数据分析于可视化 一、前言二、引言三、需求分析四、系统设计1.系统功能结构2.系统业务流程图 五、系统开发必备 一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起来学习Python数据分析于可视化。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连…

计算机网络 --- 计算机网络的分类

一、计算机网络分类 1.1 按分布范围分类 举例&#xff1a;广域网&#xff08;WAN&#xff09;、局域网&#xff08;LAN&#xff09; 举例&#xff1a;个域网&#xff08;PAN&#xff09; 1.2 按传输技术分类 广播式网络――当一台计算机发送数据分组时&#xff0c;广播范围…

国外创意二维码应用案例:迪卡侬太会搞事情了!

想必大家还记得前不久轰动全球的蓝屏事件。多个国家多个行业的大量用户都受到了影响&#xff0c;就在航空公司、银行、超市、酒店、电信、媒体……因为突发的电脑蓝屏故障而手忙脚乱的时候&#xff0c;迪卡侬&#xff08;Decathlon&#xff09;却在这场“危机”中看到了机会。 …

VScode安装和使用教程,2024最新最全,零基础入门到精通,看完这一篇就够了!

# VSCode 安装使用教程&#xff08;图文版&#xff09; 工欲善其事&#xff0c;必先利其器 对于我们每一位软件工程师来说&#xff0c;都要有自己顺手的 IDE 开发工具&#xff0c;它就是我们的武器。 一个好用的 IDE 不仅能提升我们的开发效率&#xff0c;还能让我们保持愉悦…

51单片机+proteus仿真+基本实验学习1(跑马灯、独立按键和数码管)

目录 1.实验一跑马灯 1.1代码的生成 1.1.151单片机的延时函数的生成 1.1.251单片机的流水灯代码编写 1.2仿真框图 2.实验二I/O独立按键 2.1基本概念 2.1.1按键所需的基本知识 2.2代码的生成 2.2.1头文件定义的代码 2.2.2 执行代码 2.3仿真图 ​3实验三数码管 3.1基…

CentOS镜像源更新

如果 CentOS 7.9 的官方镜像源已不维护&#xff0c;你可以使用以下方法更新&#xff1a; 切换到其他镜像源&#xff1a;使用 CentOS 镜像站点或第三方镜像源&#xff0c;如 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;。修改 /etc/yum.repos.d/CentOS-Ba…

电商API接口安全:构建稳固的数字防线

电子商务的蓬勃发展带来了前所未有的便利&#xff0c;同时也带来了新的安全挑战。API接口作为电商系统的核心组件&#xff0c;其安全性直接关系到企业的数据安全和业务连续性。因此&#xff0c;评估和加固电商API接口的安全性变得尤为重要。 电商API接口安全的重要性 电商API接…

Android生成Java AIDL

AIDL:Android Interface Definition Language AIDL是为了实现进程间通信而设计的Android接口语言 Android进程间通信有多种方式&#xff0c;Binder机制是其中最常见的一种 AIDL的本质就是基于对Binder的运用从而实现进程间通信 这篇博文从实战出发&#xff0c;用一个尽可能…

《深入浅出AI》前言知识:机器学习知识总结

&#x1f468;‍&#x1f4bb;面向对象&#xff1a; 本篇前言知识主要介绍机器学习&#xff0c;方便小白或AI爱好者学习基础知识。 &#x1f49a;友情提醒&#xff1a; 本文内容可能未能含概机器学习所有知识点&#xff0c;其他内容可以访问本人主页其他文章或个人博客&#xf…

【devops】devops-git之介绍以及日常使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座

数字化办公时代&#xff0c;企业升级 IT 基础设施&#xff0c;已不再是选择题&#xff0c;而是必答题。 数字化办公时代&#xff0c;企业为何要升级 IT 基础设施&#xff1f; 随着时代变化与科技进步&#xff0c;人们的工作方式也发生了巨大变化。如今&#xff0c;远程办公、全…

算法导论 总结索引 | 第五部分 第二十四章:单源最短路径

1、在最短路径问题中&#xff0c;给定一个带权重的有向图 G (V, E) 和权重函数 w: E→R &#xff0c;该权重函数 将每条边映射到实数值的权重上。图中一条路径 p 〈v0, v1, …, vk〉 的权重 w(p) 是构成该路径的 所有边的权重之和&#xff1a; 定义从结点 u 到结点 v 的最短路…

电压跟随器的作用是什么?

电压跟随器&#xff08;也称为单位增益放大器、缓冲放大器和隔离放大器&#xff09;是一种电压增益为 1 的运算放大器电路。这意味着运算放大器不会对信号进行任何放大。 之所以称为电压跟随器&#xff0c;是因为输出电压直接跟随输入电压&#xff0c;即输出电压与输入电压相同…

测试工程师学历路径:从功能测试到测试开发

现在软件从业者越来越多&#xff0c;测试工程师的职位也几近饱和&#xff0c;想要获得竞争力还是要保持持续学习。基本学习路径可以从功能测试-自动化测试-测试开发工程师的路子来走。 功能测试工程师&#xff1a; 1、软件测试基本概念&#xff1a; 学习软件测试的定义、目的…

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台

在当今高速发展的信息技术领域&#xff0c;特别是对于那些致力于前沿科技探索与实践的高校而言&#xff0c;拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台&#xff08;Data Network Development Platform&#xff0c;简称DNDP&#xff09;&am…

Marin说PCB之在CST软件中如何搭建两端子电容器--03

上期文章的结尾讲到的问题不知诸位大神们是否还记得&#xff1a;就是一颗新电容器的物料是否可以完全替换掉之前的Murata家的这个GRT033D70E105ME18物料&#xff1f; 小编我也看了私信有不少的人认为是可以替换掉的&#xff0c;原因是两个电容封装&#xff0c;容值都是一样的&a…

停止向供应商提供您的数据

组织管理其数据基础设施的方式正在发生重大转变。越来越多的公司认识到存储和计算分离的优势&#xff0c;从而获得更好的性能、成本节约和可扩展性。这一趋势是由 AI 和 ML 工作负载日益复杂所推动的&#xff0c;这些工作负载需要灵活、高性能的系统。Databricks 首席执行官 Al…

Java短信验证码

想利用java给用户发送短信的话&#xff0c;需要我们与电信、移动、联通三大巨头合作&#xff08;其实还有广电&#xff0c;但是比较少用&#xff09;&#xff0c;让它帮你发信息&#xff0c;当然直接与它合作显然是不现实的&#xff0c;所以我们要借助第三方的短信平台来替我们…

el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能

el-tree父子不互相关联时&#xff0c;手动实现全选、反选、子级全选、清空功能 1、功能实现图示 2、实现思路 当属性check-strictly为true时&#xff0c;父子节点不互相关联&#xff0c;如果需要全部选中或选择某一节点下的全部节点就必须手动选择每个节点&#xff0c;十分麻…