当前位置: 首页 > news >正文

牛客练习赛114

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轮,连续dint 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根本没可能选得到

相关文章:

牛客练习赛114

A.最后有0得数肯定是10得倍数&#xff0c;然后直接排序即可 #include<bits/stdc.h> using namespace std; const int N 1e610,mod1e97; int n; void solve(){cin>>n;vector<int> a(n);for(auto&i:a) cin>>i;sort(a.begin(),a.end(),greater<&g…...

Http与Https

1.简单介绍 HTTP&#xff1a;最广泛应用的网络通信协议&#xff0c;基于TCP&#xff0c;数据传输简单高效&#xff0c;数据是明文。 HTTPS&#xff1a;是HTTP的加强版&#xff0c;是HTTPSSL。在HTTP的基础上加了安全机制&#xff0c;一方面保证数据的安全传输&#xff0c;另一…...

前端通信(渲染、http、缓存、异步、跨域)自用笔记

SSR/CSR&#xff1a;HTML拼接&#xff1f;网页源码&#xff1f;SEO/交互性 SSR &#xff08;server side render&#xff09;服务端渲染&#xff0c;是指由服务侧&#xff08;server side&#xff09;完成页面的DOM结构拼接&#xff0c;然后发送到浏览器&#xff0c;为其绑定状…...

43.227.198.x怎么检查服务器里是否中毒情况?

要检查43.227.198.1服务器是否中毒&#xff0c;可以执行以下步骤&#xff1a; 运行杀毒软件&#xff1a;运行已安装的杀毒软件进行全盘扫描&#xff0c;查看是否有病毒或恶意软件。如果发现病毒或恶意软件&#xff0c;立即将其删除或隔离。 检查系统文件&#xff1a;检查服务器…...

Sentinel dashboard无法查询到应用的限流配置问题以及解决

一。问题引入 使用sentinle-dashboard控制台 项目整体升级后&#xff0c;发现控制台上无法看到流控规则了 之前的问题是无法注册上来 现在是注册上来了。结果看不到流控规则配置了。 关于注册不上来的问题&#xff0c;可以看另一篇文章 https://blog.csdn.net/a15835774652/…...

【Spring Boot】社交网站中验证用户登录的checkUser方法

public boolean checkUser(User user) {User userInDb userRepository.findByUsername(user.getUsername());if (userInDb ! null && userInDb.getPassword().equals(user.getPassword())) {return true;} else {return false;}} } 这段代码是UserService类中的checkU…...

edge浏览器进行qq截图过保爆决过程

edge浏览器进行qq截图过保解决过程 参考&#xff1a;电脑截屏曝光特别高怎么解决&#xff1f; - 知乎 问题展示 饱和度过高&#xff0c;刺眼 1. 在chrome地址栏输入chrome://flags/ 2. 在页面的搜索栏搜索force color profile 3. 在选项中选择所对应的颜色管理。&#xff08…...

【Linux】Linux在防火墙firewall中开放或删除某端口

在生产中往往是不能关闭防火墙firewall的&#xff08;以下操作是在linux中执行的&#xff09; #补充一下查看防火墙的命令 #查看防火墙状态 systemctl status firewalld #关闭防火墙 systemctl stop firewalld #重启防火墙 systemctl restart firewalld #启动防火墙 systemctl …...

C++构造函数初始化列表

构造函数的一项重要功能是对成员变量进行初始化&#xff0c;为了达到这个目的&#xff0c;可以在构造函数的函数体中对成员变量一一赋值&#xff0c;还可以采用初始化列表。 C构造函数的初始化列表使得代码更加简洁&#xff0c;请看下面的例子&#xff1a; #include <iostre…...

c语言调用mciSendString播放音乐

如下所示&#xff0c;这是一个使用c语言调用系统方法mciSendString()&#xff0c;让系统播放音乐的示例&#xff1a; baihuaxiang 代码&#xff1a; #include <graphics.h> #include <Windows.h> #include <mmsystem.h>#pragma comment(lib,"WINMM.LIB…...

Qt:qRegisterMetaType为Qt信号和槽添加自定义参数类型

背景 qt信号和槽之间的参数传递默认只能传递qt内部已有的类型&#xff0c;例如QString等&#xff0c;若我们自定义类型作为参数时&#xff0c;虽然编译不会报错&#xff0c;但运行时会提示connect无效&#xff0c;无法识别自定义的类。 此时需要我们将自定义类进行注册&#…...

ffmpeg rtp发送video和audio并播放

发送h264 video ffmpeg -re -stream_loop -1 -i h264.mp4 -vcodec h264 -f rtp rtp://127.0.0.1:5006SDP: v0 o- 0 0 IN IP4 127.0.0.1 sNo Name cIN IP4 127.0.0.1 t0 0 atool:libavformat LIBAVFORMAT_VERSION mvideo 5006 RTP/AVP 96 artpmap:96 H264/90000 afmtp:96 packe…...

CSS打字回删效果动画源码

<!DOCTYPE html> <html lang="en"> <head><meta charset...

Vue全局后置守卫

全局后置守卫 一、在 router 目录下的 index.js 文件中配置全局后置守卫。 import Vue from vue import VueRouter from vue-router Vue.use(VueRouter)import Home from ../views/Home.vue import About from ../views/About.vue import Login from ../views/Login.vueconst…...

【Go语言】基于Socket编程的P2P通信程序示例

Go语言的Socket编程实现为开发者提供了一种高效且强大的方式来实现网络通信。通过Go语言的并发模型和内置的网络库&#xff0c;如net包&#xff0c;开发者可以轻松地创建基于套接字的通信应用。Go语言的goroutine和channel机制使并发处理变得简单&#xff0c;能够轻松处理多个连…...

16、Flink 的table api与sql之连接外部系统: 读写外部系统的连接器和格式以及Elasticsearch示例(2)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...

Java代码优化案例2:使用HashMap代替List进行数据查找

在开发过程中&#xff0c;我们经常需要在一个集合中查找某个元素。一种常见的做法是使用List来存储数据&#xff0c;然后通过循环遍历List来查找目标元素。然而&#xff0c;当数据量较大时&#xff0c;这种做法效率较低。我们可以通过使用HashMap来优这个过程。 1. 原始代码实…...

每天一道leetcode:542. 01 矩阵(图论中等广度优先遍历)

今日份题目&#xff1a; 给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例1 输入&#xff1a;mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff…...

SQL SERVER 日期函数相关内容

最近跟日期相关的内容杠上了&#xff0c;为方便自己后期查阅&#xff0c;特地做笔记。 DECLARE chanenddate datetime----截止日期转成当天的年月日尾巴 DECLARE chanbengindate datetime----开始日期转成当天的年月日0000000 截取日期的 年月日&#xff0c;字符串类型 co…...

多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测。 模型描述…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...