蓝桥杯 第 1 场 小白入门赛

目录

1.蘑菇炸弹

2.构造数字

3.小蓝的金牌梦

4.合并石子加强版

5.简单的LIS问题

6.期望次数


1.蘑菇炸弹

我们直接依照题目 在中间位置的数进行模拟即可

void solve(){cin>>n;vector<int> a(n+1);for(int i=1;i<=n;i++) cin>>a[i];int ans=0;for(int i=2;i<n;i++){if(a[i]>=a[i-1]+a[i+1]) ans++;}cout<<ans<<endl;return ;
}

2.构造数字

我们需要构造的数字最大,由于数位已经告诉我们,所以明显的有一个贪心的策略:从最高位置开始从最大的数开始遍历是否可以填可以填减去看下一位即可

void solve(){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=9;j>=0;j--){if(m>=j){cout<<j;m-=j;break;}}	}return ;
}

3.小蓝的金牌梦

我们有一个错误的想法就是找出最大的质数x然后直接求长度x的即可,为什么是错误的呢?因为题目中的元素带有负数,所以我们要求出所有满足的来比较最大值,我们可以考虑使用线性筛来求出所有的质数然后前缀和来求解即可

vector<int> primes;
int cnt;void solve(){cin>>n;vector<LL> a(n+5);for(int i=1;i<=n;i++) cin>>a[i],a[i]+=a[i-1];auto get = [&](){vector<bool> st(n+5);for(int i=2;i<=n;i++){if(!st[i]){primes.push_back(i);cnt++;}for(int j=0;primes[j]<=n/i;j++){st[i*primes[j]]=true;if(i%primes[j]==0) break;}}};get();LL ans=-1e18;// 注意初始化防止过小for(int i=1;i<=n;i++){for(auto&v:primes){if(i<v) break;ans=max(ans,a[i]-a[i-v]);}}cout<<ans<<endl;return ;
}

4.合并石子加强版

首先我们不要直接先入为主认为是区间dp,区间dp的时间复杂度一般是n^3也不现实,我们接着找是不是具有什么性质找最简模型

a  b  c  -> 

1: 先左后右  a*b+(a+b)*c = a*b+a*c+b*c

2: 先右后左  b*c+(b+c)*a = a*b+a*c+b*c

我们可以发现无论左右结果不会变的那么也就是我们这个结果是不受操作所影响的,所以我们选择最优的操作直接从左到右即可,注意数据范围很大所以我们考虑要使用__int128来处理

void solve(){cin>>n;vector<LL> a(n+5);__int128 res=0;for(int i=1;i<=n;i++) cin>>a[i];LL pre=a[1];for(int i=2;i<=n;i++){res+=a[i]*pre;pre+=a[i];}function<void(__int128)> print = [&](__int128 res){if(res>9) print(res/10);putchar(res%10+'0');};print(res);return ;
}

5.简单的LIS问题

题目意思很简单修改一个数然后为0-10^{100}然后求最长上升子序列,我们可以发现数据范围是

3e3可以使用n^2LIS接着就是找一个数修改 我们明显的可以划分为前面和后面来区别,所以

我们求一个前面的最长上升子序列,倒着求一个最长下降子序列拼接,接着考虑单独的最长子序列操作,对于上升子序列把后面的一个数改成比自己大即可,对于改前面的数就需要注意是不是>0(题目特殊限制)

void solve(){cin>>n;vector<int> a(n+5),dp1(n+5,1),dp2(n+5,1);for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++)for(int j=1;j<i;j++)if(a[j]<a[i]) dp1[i]=max(dp1[i],dp1[j]+1);for(int i=n;i>=1;i--)for(int j=n;j>i;j--)if(a[i]<a[j]) dp2[i]=max(dp2[i],dp2[j]+1);int ans=dp1[n];for(int i=1;i<=n;i++){for(int j=i+2;j<=n;j++){if(a[i]<=a[j]-2){ans=max(ans,dp1[i]+dp2[j]+1);}}if(i!=n) ans=max(ans,dp1[i]+1);if(i!=1 && a[i]!=0) ans=max(ans,dp2[i]+1);}cout<<ans<<endl;return ;
}

考虑提升数据范围就使用nlogn同时需要存在来这个时候的最大或者最小值以及数量

void solve(){cin>>n;vector<int> a(n),A(n),B(n),cp(n),cl(n);for(auto&v:a) cin>>v;vector<int> pre,last;for(int i=0;i<n;i++){int v=a[i];if(pre.empty()||v>pre.back()) pre.push_back(v);else pre[lower_bound(pre.begin(),pre.end(),v)-pre.begin()]=v;A[i]=pre.back();// 表示到这个点的时候的最大值是多少cp[i]=pre.size();// 表示到这个点的时候最长上升子序列的长度都是多少}reverse(a.begin(),a.end());int ans=pre.size();for(int i=0;i<n;i++){int v=a[i];if(last.empty()||v<last.back()) last.push_back(v);else last[lower_bound(last.begin(),last.end(),v,greater<int>())-last.begin()]=v;B[n-i-1]=last.back();//表示到这个点的最小值是多少cl[n-i-1]=last.size();// 表示这个点的长度是多少}for(int i=0;i<n-1;i++){if(i && A[i-1]<=B[i+1]-2){ans=max(ans,cp[i-1]+cl[i+1]+1);}ans=max(ans,cp[i]+1);if(i && B[i]!=0) ans=max(ans,cl[i]+1);}cout<<ans<<endl;return ;
}

6.期望次数

我们可以知道和是一个概率dp,依照题目意思我们定义状态为当前 为x是期望为dp[x](x==i)

1.当i>=m 时 dp[i]=0;

2.当i<m时  dp[i]=1+\frac{\sum_{j=1}^{n} a_j * dp[i*j](i*j<m))}{sum}

进行变形之后得到答案dp[i]=\frac{(sum+\sum_{j=1}^{n}a_j*dp[i*j](i*j<m)))}{sum-a[1]}

其中sum是a_i之和,接着就可以按照公式倒着递推即可(注意逆元之类的操作)

LL qmi(LL a,LL b,LL p){LL res=1;while(b){if(b&1) res=res*a%p;b>>=1;a=a*a%p;}return res;
}LL inv(LL x){return qmi(x,mod-2,mod);
}void solve(){cin>>n>>m;vector<LL> dp(m);vector<int> a(n);LL sum=0;for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];for(int i=m-1;i>=1;i--){for(int j=2;j<=n&&i*j<m;j++){dp[i]+=a[j]*dp[i*j];dp[i]%=mod;}(dp[i]+=sum)%mod;dp[i]=dp[i]*inv(sum-a[1])%mod;} cout<<dp[1]<<endl;return ;
}

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

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

相关文章

XSS haozi靶场通关笔记

XSS靶场地址&#xff1a;alert(1) 靶场的要求是输出一个内容为1的弹窗&#xff1b;这个靶场限制了输入位置只能是input code&#xff1b;而且浏览器发送内容时会自动进行url编码&#xff1b;所以重点考察的是代码的分析和基础payload构造&#xff1b;一切完成在当前页面&#…

【数据结构】链表(单链表实现+测试+原码)

1.链表 1.1 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 现实中&#xff1a;链表就像是一列动车&#xff0c;一节连着一节 数据结构中的链表 注意: 1.从上图可看出…

React16源码: React中LegacyContext的源码实现

LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了&#xff0c;就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢&#xff1f;因为它…

知识点积累系列(一)golang语言篇【持续更新】

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 知识点积累 系列文章的第一篇&#xff0c;记录golang语言相关的知识点 1.结构体的mapstructure是什么 mapstructure:"default" mapstructure是一个Go语言的库&#xff0c;用于将一个map中的值映射到…

C语言王道第八周一题

Description 初始化顺序表&#xff08;顺序表中元素为整型&#xff09;&#xff0c;里边的元素是 1,2,3&#xff0c;然后通过 scanf 读取一个元素&#xff08;假如插入的是 6&#xff09;&#xff0c;插入到第 2 个位置&#xff0c;打印输出顺序表&#xff0c;每个 元素占 3 个…

添加了gateway之后远程调用失败

前端提示500&#xff0c;后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个&#xff0c;因为在请求地址写了两个参数&#xff0c;实际上只传了一个参数 解决方案&#xff1a;加上(required false)并重启所有相关服务

【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson13(买东西)(餐厅点餐事宜;询问有无座位;食物如何调理:牛排、咖啡等;菜单等相关)

《美语从头学初级入门篇》 注意&#xff1a;被 删除线 划掉的不一定不正确&#xff0c;只是不是标准答案。 文章目录 Lesson 13 At the Restaurant 在餐厅会话A会话B笔记餐厅询问有无座位&#xff1b;餐厅电话订座其他餐厅询问有无座位的问法 吸烟区与非吸烟区&#xff08;smo…

[力扣 Hot100]Day18 矩阵置零

题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 出处 思路 在原数组上直接操作势必会出现“冗余”的0&#xff0c;即原本[i,j]处不是0&#xff0c;例如由于i行的其他位置有0导致[i,j]…

Shell中的AWK

1.awk的工作原理 逐行读取文本&#xff0c;默认以空格或tab键为分隔符进行分隔&#xff0c;将分隔所得的各个字段保存到内建变量中&#xff0c;并按模式或者条件执行编辑命令。awk倾向于将一行分成多个"字段"然后再进行处理。awk信息的读入也是逐行读取的&#xff0…

day38_MySQL

今日内容 0 复习昨日 1 引言 2 数据库 3 数据库管理系统 4 MySQL 5 SQL语言 0 复习昨日 1 引言 1.1 现有的数据存储方式有哪些&#xff1f; Java程序存储数据&#xff08;变量、对象、数组、集合&#xff09;&#xff0c;数据保存在内存中&#xff0c;属于瞬时状态存储。文件&…

删除有序数组中的重复项[简单]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个非严格递增排列的数组nums&#xff0c;请你原地删除重复出现的元素&#xff0c;使每个元素只出现一次&#xff0c;返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。 考虑nums的唯一元素…

Source Insight 4的使用经验

问题1 函数结束提示符<<end tagDebugData>> 在source insight里的options→preference→syntax decorations→auto annotations→annotate closing braceswith end-comments关闭或启动显示. 但是有的有有的没有&#xff0c;奇怪! 参照网络答案&#xff1a; Sou…

DataX介绍

一、介绍 DataX 是一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 github地址 详细文档 操作手册 支持数据框架如下&#xff1a; 架构 Reader&#xff1…

IPV4 转 IPV6 解决方案大全

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

App全测试扫描漏洞工具

APP 有漏洞被测要下架&#xff0c;怎么处理&#xff1f; 如题&#xff0c;今天被问到&#xff1a;市面上有什么好的 APP 漏洞扫描工具推荐&#xff1f;我们的 APP 有漏洞&#xff0c;需要下架 APP&#xff1f; 前言 事情的经过是这样的&#xff1a; 1&#xff1a;学员公司测试…

UnityShader(九)Unity中的基础光照(下)

标准光照模型 光照模型有许多种&#xff0c;但在早期游戏引擎中&#xff0c;往往只使用一个光照模型&#xff0c;被称为标准光照模型。 标准光照模型只关心直接光照&#xff0c;也就是那些直接从光源发射出来照射到物体表面后&#xff0c;经过物体表面的一次反射直接进入摄像…

在Meteor Lake上测试基于Stable Diffusion的AI应用

上个月刚刚推出的英特尔新一代Meteor Lake CPU&#xff0c;预示着AI PC的新时代到来。AI PC可以不依赖服务器直接在PC端处理AI推理工作负载&#xff0c;例如生成图像或转录音频。这些芯片的正式名称为Intel Core Ultra处理器&#xff0c;是首款配备专门用于处理人工智能任务的 …

【安装记录】在pve中创建debian12虚拟机

1、官网下载debian12:https://www.debian.org/ 2、安装虚拟机 &#xff08;1&#xff09;上传 iso 文件到pve服务器&#xff1a; 等待上传中。。。 上传完毕结果如下&#xff1a; &#xff08;2&#xff09;创建虚拟机 类别我也不清楚有什么区别&#xff1f;我看推荐使用host…

[数据结构与算法]哈希算法

目录 哈希算法 常见哈希函数&#xff1a; MD5 (Message Digest Algorithm 5): SHA-1 (Secure Hash Algorithm 1): SHA-256 (Secure Hash Algorithm 256-bit): 代码演示: 哈希算法 哈希算法是一种将任意长度的输入数据映射为固定长度的输出数据的算法。哈希函数的主要目标是…

瑞_数据结构与算法_红黑树

文章目录 1 什么是红黑树1.1 红黑树的背景1.2 红黑树的特性 ★★★ 2 红黑树的Java实现2.1 红黑树颜色枚举类Color2.2 红黑树节点类Node2.2.1 实现判断是否是左孩子方法isLeftChild()2.2.2 实现查找叔叔节点方法uncle()2.2.3 实现查找兄弟节点方法sibling() 2.3 红黑树类RedBla…