牛客练习赛114

news2024/12/23 19:59:40

A.最后有0得数肯定是10得倍数,然后直接排序即可

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10,mod=1e9+7;
int n;
void solve(){
    cin>>n;
    vector<int> a(n);
    for(auto&i:a) cin>>i;
    sort(a.begin(),a.end(),greater<>());
    if(a.back()!=0) cout<<"-1";
    else{
        for(auto x:a) cout<<x;
    }
}
signed main(){
    cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
    int t=1;
   // cin>>t;
    while(t--) solve();
    return 0;
}

C.首先把每个递增的区间处理出来,然后问题就变成了,用最少的区间个数去覆盖1到m这条线段即可

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10,mod=1e9+7;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;

int n,m;
int a[N],b[N];
void solve(){
    cin>>n>>m;
    int st=1,ed=m;
    for(int i=1;i<=n;i++) cin>>a[i];
    vector<PII> b;
    for(int i=1;i<=n;i++)
    {
        int j=i;
        while(j+1<=n&&a[j]==a[j+1]-1){
            j++;
        }
        if(j!=i)
        {
            b.emplace_back(a[i],a[j]);
            i=j-1;
        }
        else b.emplace_back(a[i],a[i]);
    }
    sort(b.begin(),b.end());
    //for(auto[l,r]:b) cout<<l<<" "<<r<<"\n";
    int res=0;
    bool success=false;
     m=b.size();
    int l=1,r=1;
    for(int i=0;i<m;i++)
    {
        int j=i;
        while(j<m&&b[j].first<=l)
        {
            r=max(r,b[j].second);
            j++;
        }
        res++;
        if(r>=ed) break;
        l=r+1;
        if(j>i+1) i=j-1; 
       
    }
    if(r<ed) res=-1;
    cout<<res<<"\n";
}
signed main(){
    cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}

D.首先我们要么从最大一个数开始往前,要么从最小的一个数开始往后

首先想个问题假设从最大的数往前枚举

 

假设a[n]的个数小于a[n-1]那么直接false,a[n-1]无法支撑全部的a[n]连续,所以我们要尽可能减少a[j]让a[i]<=a[j]

 假设从n一直往前拿,什么时候一定要停止呢,

a[i]<a[j]一定要停止拿了,拿完a[j]就别拿a[i]的意思

假设我a[i]和a[j]都拿了,那么同样陷入了a[i]不足以支撑全部a[j]连续,所以这个时候我只能靠

a[j] a[j+1] a[j+2] a[j+3] a[j+4].... 把这个多的a[j]拿走,我才有可能处理a[j]的个数

假设a[i]==a[j],倒是无所谓

a[i]>a[j],就继续拿a[i],方便后面处理k<i<j
a[k]>a[i]<a[j],这个情况拿完a[i]可以继续拿a[k],不影响a[k]后面的决策

a[k]<a[i]<a[j],由于a[i]>a[k]我们不会拿a[k],此时a[i]减少,更有利拿完

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10,mod=1e9+7;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;

int n,m;
int a[N],b[N];
void solve(){
    cin>>n;
    vector<int> cnt(n+1,0);
    for(int i=1;i<=n;i++){
        cin>>a[i];
        cnt[a[i]]++;
    }
    for(int i=n;i>=1;i--){
        while(cnt[i]){
            int cnt0=0;
            for(int j=i;j>=1;j--){
                cnt[j]--;
                cnt0++;
                if(cnt[j-1]<cnt[j]+1) break;
            }
            if(cnt0<5) {
                cout<<"NO\n";
                return ;
            }
        }
    }
    cout<<"YES\n";
}
signed main(){
   // cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}

 

E.

每个人得到得物品个数概率都是同样的,所以只要计算出一个人获得物品个数的概率最后乘上n即可

dp:方程就变成前i轮,已经连续j次没中奖的物品个数概率

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;

int n,m,k,d;
int a[N],b[N];
int fact[N],infact[N];

int qmi(int a,int k,int p){
    int res=1;
    while(k){
        if(k&1) res=(LL) res*a%p;
        a=(LL)a*a%p;
        k>>=1;
    }
    return res;
}
void init(){
    fact[0]=infact[0]=1;
    for(int i=1;i<N;i++){
        fact[i]=(LL)fact[i-1]*i%mod;
        infact[i]=(LL)infact[i-1]*qmi(i,mod-2,mod)%mod;
    }
}
int C(int a,int b){
    if(b<0||b>a) return 0;
    return ((LL)fact[a] * infact[b] % mod * infact[a - b] % mod);
}
void solve(){
    cin>>n>>m>>k>>d;
    //n选手选k个人,参加m轮,连续d
    int t1=k*qmi(n,mod-2,mod)%mod;
    int t2=(n-k)*qmi(n,mod-2,mod)%mod;
    vector<vector<int>> f(m+10,vector<int>(d+10,-1));
    std::function<int(int,int)> dfs=[&](int i,int j)->int{
        //前 i轮,连续j次没中
        if(i == m+1)return 0;
        auto &res = f[i][j];
        if(res!=-1)return res;
        res = 0;
        if(j+1==d){
            res=(dfs(i+1,0)+1)*t1%mod+(dfs(i+1,0)+1)*t2%mod;
        }
        else{
            res=dfs(i+1,j+1)*t2%mod+(dfs(i+1,0)+1)*t1%mod;
        }
        res%=mod;
        return res;
    };
        
    int res=dfs(1,0)*n%mod;
    cout<<(res%mod+mod)%mod<<"\n";
}
signed main(){
   // cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
    int t=1;
    cin>>t;
    init();
    while(t--) solve();
    return 0;
}

F.

首先这个答案图像最后一定是一个山峰或者单调递增的线,如图,它可以左右往返跳跃

从最高点开始,那么我们枚举每个位置i,那么最优解肯定是当前i右边最高的点,然后这个最高的点再单调递减的一个图,我们预处理出当前位置

为啥要处理无重复元素呢,因为他是严格小于的,假设右边往下的线中有一个和左边重复的元素,那么他是重复的,他是不能走的,而又由于我们枚举的i位置是在左边,一定要用到当前i,所以如果左边和右边元素重叠我们要选择左边的,因为如果选择右边的话,左边这个一直存在,那么我永远选不到i了,因为题目说得紧邻左侧或右侧,i右边那个点都没选完,我i根本没可能选得到

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Airtest遇到模拟器无法输入中文的情况该如何处理?

1. 前言 最近有收到同学们的一些提问&#xff0c;使用Airtest的 text 接口&#xff0c;发现在部分模拟器上&#xff0c; text 无法输入中文&#xff0c;不知道该怎么处理。 今天我们就输入这个小问题&#xff0c;来详细聊一下。 2. Airtest的输入法简介 对于Android设备来说…

Spark 启动时,报JAVA_HOME is not set

文章目录 1、报错内容2、解决方式3、再次启动Spark集群 1、报错内容 Spark启动时报错&#xff1a; hadoop104: JAVA_HOME is not set2、解决方式 解决方式&#xff1a; 打开启动配置文件 cd /opt/module/spark-standalone/sbin/ vim spark-config.sh配置Java的环境变量 …

【网络】HTTPS的加密

目录 第一组&#xff0c;非对称加密第二组&#xff0c;非对称加密第三组&#xff0c;对称加密证书签名 HTTPS使用的是非对称加密加对称加密的方案 &#xff08;非对称加密&#xff1a;公钥加/解密&#xff0c;私钥解/加密&#xff09; &#xff08;对称加密&#xff1a;一组对称…

开发新能源的好处

风能无论是总装机容量还是新增装机容量&#xff0c;全球都保持着较快的发展速度&#xff0c;风能将迎来发展高峰。风电上网电价高于火电&#xff0c;期待价格理顺促进发展。生物质能有望在农业资源丰富的热带和亚热带普及&#xff0c;主要问题是降低制造成本&#xff0c;生物乙…

提速换挡 | 至真科技用技术打破业务壁垒,助力出海破局增长

各个行业都在谈出海&#xff0c;但真正成功的又有多少&#xff1f; 李宁出海十年海外业务收入占比仅有1.3%&#xff0c;走出去战略基本失败。 京东出海业务磕磕绊绊&#xff0c;九年过去国际化业务至今在财报上都不配拥有姓名。 几百万砸出去买量&#xff0c;一点水花都没有…

SpringBootWeb 登录认证

登录认证&#xff0c;那什么是认证呢&#xff1f; 所谓认证指的就是根据用户名和密码校验用户身份的这个过程&#xff0c;认证成功之后&#xff0c;我们才可以访问系统当中的信息&#xff0c;否则就拒绝访问。 在前面的案例中&#xff0c;我们已经实现了部门管理、员工管理的…

【Go 基础篇】Go 语言字符串函数详解:处理字符串进阶

大家好&#xff01;继续我们关于Go语言中字符串函数的探索。字符串是编程中常用的数据类型&#xff0c;而Go语言为我们提供了一系列实用的字符串函数&#xff0c;方便我们进行各种操作&#xff0c;如查找、截取、替换等。在上一篇博客的基础上&#xff0c;我们将继续介绍更多字…

登录认证-登录校验-会话技术

目录 会话技术 会话跟踪方案对比 方案一&#xff1a;Cookie 实现思路 具体代码 优点 缺点 方案二&#xff1a;Session 实现思路 具体代码 优点 缺点 方案三&#xff1a;令牌技术&#xff08;主流方案&#xff09; 实现思路 优点 缺点 会话技术 会话&#xff1a…

网络安全实验室搭建与实践:提供搭建虚拟实验环境的指导

随着数字化时代的来临&#xff0c;网络安全问题变得愈发严重和复杂。在这个信息交织的世界里&#xff0c;了解并掌握网络安全已经成为刻不容缓的任务。而搭建一个稳定、真实的网络安全实验环境&#xff0c;成为学习和实践的必然选择。本文将为您详细介绍网络安全实验室的搭建过…

一所南方学校,遇上AI的60天

AI大模型的想象力是什么&#xff1f; 有的人认为是参数&#xff0c;有的人可能回答是逻辑和推理&#xff0c;还有的人给出的选项是数据新式表达。 而这些答案&#xff0c;都需要在 一个个真实的产业场景里被实践&#xff0c;被验证。 对谢柏芳和东区中学而言&#xff0c;这个…

python+django+mysql旅游景点推荐系统-前后端分离(源码+文档)

系统主要采用Python开发技术和MySQL数据库开发技术以及基于OpenCV的图像识别。系统主要包括系统首页、个人中心、用户管理、景点信息管理、景点类型管理、景点门票管理、在线反馈、系统管理等功能&#xff0c;从而实现智能化的旅游景点推荐方式&#xff0c;提高旅游景点推荐的效…

4.6 TCP面向字节流

TCP 是面向字节流的协议&#xff0c;UDP 是面向报文的协议 操作系统对 TCP 和 UDP 协议的发送方的机制不同&#xff0c;也就是问题原因在发送方。 UDP面向报文协议&#xff1a; 操作系统不会对UDP协议传输的消息进行拆分&#xff0c;在组装好UDP头部后就交给网络层处理&…

clickhouse一次异常排查记录

clickhouse中报错 关闭了自启动&#xff0c;删了status&#xff0c;重启了clickhouse还是报错 1&#xff0c;排查定时执行的脚本日志&#xff08;每小时第5分钟执行&#xff09; INSERT INTO quality0529.previously_reported_urls (url) SELECT url FROM quality0529.hourly_…

基于Python的文件销毁工具设计与实现【源码+论文+演示视频+包运行成功】

博主介绍&#xff1a;✌csdn特邀作者、博客专家、java领域优质创作者、博客之星&#xff0c;擅长Java、微信小程序、Python、Android等技术&#xff0c;专注于Java、Python等技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb;…

系统架构设计高级技能 · 面向服务架构设计理论与实践

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…

使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

2023谷歌开发者大会直播大纲「初稿」

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

VS插件DevExpress CodeRush v23.1 - 支持Visual Studio ARM

DevExpress CodeRush是一个强大的Visual Studio .NET 插件&#xff0c;它利用整合技术&#xff0c;通过促进开发者和团队效率来提升开发者体验。CodeRush能帮助你以极高的效率创建和维护源代码。Consume-first 申明&#xff0c;强大的模板&#xff0c;智能的选择工具&#xff0…

2023MySQL+MyBatis知识点整理

文章目录 主键 外键 的区别&#xff1f;什么是范式&#xff1f;什么是反范式&#xff1f;什么是事务&#xff1f;MySQL事务隔离级别&#xff1f;MySQL事务默认提交模式&#xff1f;MySQL中int(1)和int(10)的区别MySQL 浮点数会丢失精度吗&#xff1f;MySQL支持哪几种时间类型&a…

Redis 7 教程 数据类型 基础篇

🌹 引导 Commands | Redishttps://redis.io/commands/Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)Redis命令大全,显示全部已知的redis命令,redis集群相关命令,近期也会翻译过来,Redis命令参考,也可以直接输入命令进行命令检索。