十五届蓝桥杯国赛模拟(下)

题单详情 - 蓝桥云课 (lanqiao.cn)

填空题:

2360 互质

互质的定义是:两个数最大公约数为1,因此此题利用gcd模板即可AC:

#include<iostream>
using namespace std;
int ans;
int gcd(int a,int b){return b?gcd(b,a%b):a;
}
int main(){for(int i=1;i<=2020;i++) if(gcd(i,1018)==1) ans++;cout<<ans<<endl;return 0;
}

17121 混乘数字

下列代码肯定是超时的,但是此题为填空题,考试时先利用dev算出答案,最后直接输出结果即可:

#include<iostream>
#include<cstring>
using namespace std;
long long ans,flag[10],cnt[10];
bool check(long long x){memset(cnt,0,sizeof cnt);long long xx=x;while(xx>0){cnt[xx%10]++;xx/=10;}for(long long i=1;i*i<=x;i++){long long j=x/i;if(i*j==x){memset(flag,0,sizeof flag);long long ii=i,jj=j;int key=0;while(ii>0){flag[ii%10]++;ii/=10;}while(jj>0){flag[jj%10]++;jj/=10;}for(int k=0;k<=9;k++){if(flag[k]!=cnt[k]){key=1;break;}}if(key==0) return true;}}return false;
}
int main(){//for(int i=1;i<=1000000;i++) if(check(i)) ans++;//cout<<ans<<endl;cout<<590<<endl;return 0;
}

17133 逆元

费马小定理:
如果p是一个质数,而整数a不是p的倍数,则有a^(p-1) ≡ 1(mod p)
即 a^(p-1) = p*k+1 ,即 a*a^(p-2) =p*k+1乘法逆元的定义 :
如果 (a*x) mod p=1 ,即 a*x=p*k+1 ,则称x为a的模p的乘法逆元
乘法逆元的结论 :
a存在乘法逆元的充要条件是a与p互质,当p为质数时, a^p−2即为a的乘法逆元

fast_power  AC: 

#include<iostream>
using namespace std;
typedef long long ll;
const int p=2146516019;
int temp,ans;
int fast_power(int a,int b,int p){int res=1;while(b){if(b&1) res=(ll)res*a%p;b>>=1;a=(ll)a*a%p;}return res;
}
int main(){/*for(int i=1;i<=233333333;i++){temp=fast_power(i,p-2,p);ans^=temp;}cout<<ans<<endl;*/cout<<1307261675<<endl;return 0;
}

编程题:

18427 翻转

动态规划 AC:

#include<iostream>
#include<cstring>
using namespace std;
const int N=1e5+10;
char a[N][2];
int n,dp[N][2];
//dp[i][0]:前i个串拼在一起组成的min长度(第i个没有翻转)
//dp[i][1]:前i个串拼在一起组成的min长度(第i个有翻转)
int main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];//初始化dp数组memset(dp,0x3f,sizeof dp);dp[1][0]=dp[1][1]=2;//动态规划for(int i=2;i<=n;i++){dp[i][0]=min(dp[i-1][0]+1+(a[i-1][1]!=a[i][0]),dp[i-1][1]+1+(a[i-1][0]!=a[i][0]));dp[i][1]=min(dp[i-1][0]+1+(a[i-1][1]!=a[i][1]),dp[i-1][1]+1+(a[i-1][0]!=a[i][1]));}cout<<min(dp[n][1],dp[n][0])<<endl;return 0;
}

17139 非对称二叉树

树形DP AC:

#include<iostream>
using namespace std;
const int N=40;
typedef long long ll;
ll n,m,ans,dp[N][N];
//dp[i][j]:有i个节点并且高度为j的非对称二叉树数量
int main(){cin>>n>>m;dp[0][0]=1;for(int i=1;i<=n;i++){for(int j=0;j<n;j++){int k=i-1-j; for(int hj=j;hj>=0;hj--){for(int hk=k;hk>=0;hk--){int maxx=max(hj,hk);int minn=min(hj,hk) ;if(maxx>=m*minn) dp[i][maxx+1]+=dp[j][hj]*dp[k][hk];}}}}for(int i=n;i>=0;i--) ans+=dp[n][i];cout<<ans<<endl;return 0;
}

6251 游戏

单调队列+双重循环 (未AC 40points):

#include<iostream>
#define int long long
using namespace std;
const int N=1e5+5;
int n,k,a[N],que[N],maxx[N],minn[N];
double ans;
signed main(){cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];int head=0,tail=-1;for(int i=1;i<=n;i++){while(head<=tail&&que[tail]<a[i]) tail--;que[++tail]=a[i];if(i-k>=1&&que[head]==a[i-k]) head++;if(i>=k) maxx[i]=que[head];}head=0,tail=-1;for(int i=1;i<=n;i++){while(head<=tail&&que[tail]>a[i]) tail--;que[++tail]=a[i];if(i-k>=1&&que[head]==a[i-k]) head++;if(i>=k) minn[i]=que[head];}for(int i=k;i<=n;i++) for(int j=k;j<=n;j++) ans+=maxx[i]-minn[j];printf("%.2lf",ans/((n-k+1)*(n-k+1)));return 0;
}

优化:

for(int i=k;i<=n;i++) for(int j=k;j<=n;j++) ans+=maxx[i]-minn[j];
printf("%.2lf",ans/((n-k+1)*(n-k+1)));

--->--->--->

for(int i=k;i<=n;i++) ans+=maxx[i];
for(int i=k;i<=n;i++) res+=minn[i];
printf("%.2lf",(ans-res)/(n-k+1));

AC: 

#include<iostream>
#define int long long
using namespace std;
const int N=1e5+5;
int n,k,a[N],que[N],maxx[N],minn[N];
double ans,res;
signed main(){cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];int head=0,tail=-1;for(int i=1;i<=n;i++){while(head<=tail&&que[tail]<a[i]) tail--;que[++tail]=a[i];if(i-k>=1&&que[head]==a[i-k]) head++;if(i>=k) maxx[i]=que[head];}head=0,tail=-1;for(int i=1;i<=n;i++){while(head<=tail&&que[tail]>a[i]) tail--;que[++tail]=a[i];if(i-k>=1&&que[head]==a[i-k]) head++;if(i>=k) minn[i]=que[head];}for(int i=k;i<=n;i++) ans+=maxx[i];for(int i=k;i<=n;i++) res+=minn[i];printf("%.2lf",(ans-res)/(n-k+1));return 0;
}

17152 最大区间

单调栈 AC:

#include<iostream>
#include<cstring>
#define int long long
using namespace std;
const int N=3e5+5;
int n,a[N],stackk[N],top,l[N],r[N],ans;
signed main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];a[0]=a[n+1]=-1;top=0;stackk[++top]=0;for(int i=1;i<=n;i++){while(a[stackk[top]]>=a[i])top--;l[i]=stackk[top];stackk[++top]=i;}top=0;stackk[++top]=n+1;for(int i=n;i;i--){while(a[stackk[top]]>=a[i]) top--;r[i]=stackk[top];stackk[++top]=i;}for(int i=1;i<=n;i++) ans=max(ans,(r[i]-l[i]-1)*a[i]);cout<<ans<<endl;return 0;
}

17147 最大阶梯

动态规划 AC:

#include<iostream>
#include<cstring>
#define int long long
using namespace std;
const int N=1e3+5;
int n,h[N][N],dp[N][N],ans;
void init(){for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) dp[i][j]=1;
}
signed main(){ios::sync_with_stdio(false);cin>>n;memset(h,-1,sizeof h);for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>h[i][j];//比较左边和上面init();for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(h[i][j]==h[i][j-1]&&h[i][j]==h[i-1][j]){dp[i][j]=min(dp[i][j-1],dp[i-1][j])+1;ans=max(ans,dp[i][j]);}}}//比较左边和下面init();for(int i=n;i>=1;i--){for(int j=1;j<=n;j++){if(h[i][j]==h[i][j-1]&&h[i][j]==h[i+1][j]){dp[i][j]=min(dp[i][j-1],dp[i+1][j])+1;ans=max(ans,dp[i][j]);}}}//比较右边和上面init();for(int i=1;i<=n;i++){for(int j=n;j>=1;j--){if(h[i][j]==h[i][j+1]&&h[i][j]==h[i-1][j]){dp[i][j]=min(dp[i][j+1],dp[i-1][j])+1;ans=max(ans,dp[i][j]);}}}//比较右边和下面init();for(int i=n;i>=1;i--){for(int j=n;j>=1;j--){if(h[i][j]==h[i][j+1]&&h[i][j]==h[i+1][j]){dp[i][j]=min(dp[i][j+1],dp[i+1][j])+1;ans=max(ans,dp[i][j]);}}}cout<<ans<<endl;return 0;
}

17117 火车运输

动态规划背包问题 AC:

#include<iostream>
#define int long long
using namespace std;
const int N=1005;
int n,A,B,w[205],dp[N][N];
signed main(){ios::sync_with_stdio(false);cin>>n>>A>>B;for(int i=1;i<=n;i++) cin>>w[i];for(int i=1;i<=n;i++){for(int j=A;j>=0;j--){for(int k=B;k>=0;k--){if(j>=w[i]) dp[j][k]=max(dp[j][k],dp[j-w[i]][k]+w[i]);if(k>=w[i]) dp[j][k]=max(dp[j][k],dp[j][k-w[i]]+w[i]);}}}cout<<dp[A][B]<<endl;return 0;
}

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

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

相关文章

C#实现Queue的加锁和解锁

在C#中&#xff0c;可以使用lock语句来对队列进行加锁和解锁&#xff0c;以确保在多线程环境下的线程安全。以下是一个简单的示例&#xff1a; using System; using System.Collections.Generic; using System.Threading;public class ThreadSafeQueue<T> {private read…

设计软件有哪些?建模和造型工具篇(3),渲染100邀请码1a12

这次我们接着介绍建模工具。 1、FloorGenerator FloorGenerator是由CG-Source开发的3ds Max插件&#xff0c;用于快速创建各种类型的地板和瓷砖。该插件提供了丰富的地板样式和布局选项&#xff0c;用户可以根据需要轻松创建木质地板、石板地板、砖瓦地板等不同风格的地面。F…

Spring 框架中 Bean 的生命周期?

在 Spring 框架中&#xff0c;Bean 的生命周期包括以下几个阶段: 1. 实例化(Instantiation):在这个阶段&#xff0c;Spring将根据配置文件或注解等方式创建Bean实例&#xff0c;并将其存储在容器中。 2. 属性赋值(PopulateProperties):在这个阶段&#xff0c;Spring将会自动将…

人生二选一:央企就业?美国做博士后?—请看她的抉择

一位30岁的女博士&#xff0c;收到国内央企和德国、美国的博士后邀请函&#xff0c;她该如何选择&#xff1f;知识人网小编推荐这篇文章&#xff0c;为大家解开谜题的同时&#xff0c;也给有同样纠结的学者提供一些启迪。 去年12月底的一个晚上&#xff0c;我收到美国一所高校发…

100个 Unity小游戏系列六 -Unity 抽奖游戏专题四 翻卡游戏

一、演示效果 二、知识点讲解 2.1 布局 void CreateItems(){reward_data_list reward_data_list ?? new List<RewardData>();reward_data_list.Clear();for (int i 0; i < ItemCount; i){GameObject item;if (i 1 < itemParent.childCount){item itemParent…

前端基础入门三大核心之HTML篇:Webpack、Vite、Grunt、Gulp的场景与实战运用

前端基础入门三大核心之HTML篇&#xff1a;Webpack、Vite、Grunt、Gulp的场景与实战运用 一、Webpack&#xff1a;模块打包与优化的集大成者基本概念与作用应用场景实战例 二、Vite&#xff1a;快速开发的现代化构建利器基本概念应用场景实战例 三、Gulp&#xff1a;任务自动化…

护网期间遇到的几个上传bypass waf、edr

1. weblogic部署war的时候 http/1.1 改成http/2绕过waf 其实jar和ear部署应该也可以&#xff0c;但是我没成功。 2. tomcat windows的话部署 1.war变成 1.w/a/r 应该是 1.w\a\r 3. 上传绕过waf filename"x.jsp" 换成 filename x.jsp 还不行把 把ban…

【MySQL精通之路】SQL优化(1)-查询优化(7)-嵌套循环联接

主博客&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(6)-索引条件下推-CSDN博客 下一篇&#xff1a; 1.嵌套循环连接算法 一个简单的嵌套循环联接&#xff08;NLJ&#xff09;算法一次从循环中的…

Python解析网页-requests_html

目录 1、什么是requests_html 2、安装与配置 3、快速入门 4、图片下载 1.什么是requests_html requests_html是一个Python库&#xff0c;用于从Web页面中提取数据。 它提供了对HTML内容的解析和处理功能&#xff0c;使您可以轻松地从网页中提取文本、链接、图像和其他元素。…

python字典形式的字符串转换成python字典的两种方法eval()和json.loads()

有时候我们需要将python字典形式的字符串转化成python字典&#xff0c;有两种方法&#xff1a; 方法一&#xff1a;eval() dic_str "{name:jack, age:18, gender:male}" # dic_str {"name":"jane", "age":27, "gender":…

嵌入式UI开发-lvgl+wsl2+vscode系列:4、动画(Animations)

文章目录 一、前言二、动画示例1、示例1&#xff08;基础按钮label的组合动画&#xff09;2、示例2&#xff08;回放效果动画&#xff09;3、示例3&#xff08;贝塞尔曲线3动画&#xff09;4、示例4&#xff08;动画时间轴&#xff09; 三、最后 一、前言 接下来我们进行动画的…

Golang | Leetcode Golang题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; func isSymmetric(root *TreeNode) bool {u, v : root, rootq : []*TreeNode{}q append(q, u)q append(q, v)for len(q) > 0 {u, v q[0], q[1]q q[2:]if u nil && v nil {continue}if u nil || v nil {return false}if …

pnpm使用教程

pnpm&#xff08;Performant npm&#xff09;是一个高性能的包管理器&#xff0c;旨在解决npm和yarn中的问题&#xff0c;提供更快的安装速度、节省磁盘空间、良好的monorepo支持以及高级安全性。下面是一个简要的pnpm使用教程&#xff1a; 安装 pnpm 通过 npm 安装 在已安装…

JWT使用方法

目录 基础概念 依赖 生成令牌 工具类 控制层 解析令牌 工具类 网关过滤器 效果 基础概念 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准&#xff08;(RFC 7519).该token被设计为紧凑且安全的&#xff0c;特别适用于分布式站点…

Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务(Service)

Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务&#xff08;Service&#xff09; 此文档从 Kubernetes 官网摘录 中文地址 英文地址 Kubernetes 中的 Service Service API 是 Kubernetes 的组成部分&#xff0c;它是一种抽象&#xff0c;帮助你将 Pod 集合在网络上公…

AI绘画工具

AI绘画工具利用人工智能技术生成艺术作品&#xff0c;这些工具通常基于深度学习算法&#xff0c;尤其是生成对抗网络&#xff08;GANs&#xff09;。以下是一些流行的AI绘画工具&#xff1a; DeepArt&#xff1a;使用神经风格迁移技术&#xff0c;将任何图片转换成著名画家的风…

深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

弘君资本:沪指跌0.46%,电力板块逆市爆发,半导体板块强势

28日&#xff0c;沪指早盘窄幅震动&#xff0c;午后回落走低&#xff1b;深证成指、创业板指大幅下探&#xff1b;两市成交额小幅萎缩。 截至收盘&#xff0c;沪指跌0.46%报3109.57点&#xff0c;深证成指跌1.23%报9391.05点&#xff0c;创业板指跌1.35%报1806.25点&#xff0c…

Windows 11 HBuilder X的安装和环境搭建教程

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 HBuilder X是一个由DCloud推出的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于构建基于HTML、CSS和JavaScript的跨平台应用程序&#xff0c;如微信小程序、App、H5等。它提供了丰富的功能…

【Unity】颜色混合计算

在图形渲染中&#xff0c;颜色混合&#xff08;Color Blending&#xff09;是指将多个颜色值组合在一起以生成最终显示的颜色。颜色混合技术广泛用于处理半透明效果、光照效果和后期处理效果。以下是一些常见的颜色混合模式&#xff1a; 1. 正常混合&#xff08;Normal Blendi…