蓝桥杯备战刷题one(自用)

1.被污染的支票

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int main()
{int n;cin>>n;vector<int>L;map<int,int>mp;bool ok=0;int num;for(int i=1;i<=n;i++){cin>>num;if(mp[num]==1)ok=1;else{mp[num]=1;L.push_back(num);}}sort(L.begin(),L.end());int x=L.back()*2;//?????vector<int>L2;for(int i=2;i<x;i++){if(x%i==0)L2.push_back(i);}if(L!=L2)ok=1;if(ok){cout<<-1<<endl;}else{cout<<x<<endl;} return 0;
}

2.日期统计

#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main()
{int ans=0;int num[100]={5, 6, 8, 6, 9, 1, 6, 1, 2, 4,9, 1, 9, 8, 2, 3, 6, 4, 7, 7, 5, 9, 5, 0, 3, 8, 7, 5, 8, 1,5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9,9, 1, 9, 4, 4, 6, 8, 6, 3, 3,8, 5, 1, 6, 3, 4, 6, 7, 0, 7,8, 2, 7, 6, 8, 9, 5, 6, 5, 6,1, 4, 0, 1, 0, 0, 9, 4, 8, 0,9, 1, 2, 8, 5, 0, 2, 5, 3, 3};int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};for(int mon=1;mon<=12;mon++){for(int day=1;day<=days[mon];day++){int temp[8]={2,0,2,3,mon/10,mon%10,day/10,day%10};int k=0;for(int i=0;i<100;i++){if(num[i]==temp[k]){k++;}if(k==8){ans++;break;}}}}cout<<ans<<endl;return 0;
}

3.01串的熵

#include <iostream>
#include <cmath>
using namespace std;
int main()
{int n=23333333;for(int i=0;i<=n/2;i++)//0的次数{double a=(i*1.0)/n;double b=((n-i)*1.0)/n;double ans=0;ans-=(a*log2(a)*i+b*log2(b)*(n-i));if(fabs(ans-11625907.5798)<0.0001){cout<<i<<endl;break;}}return 0;
}

(注意浮点数,double,以及比较大小时使用1e-4) 

4.冶炼金属

#include <iostream>
using namespace std;
#define ll long long
int main()
{ll n,a,b,minn,maxx;maxx=1e9;//要满足最小的minn=0;//要满足最大的cin>>n;for(ll i=0;i<n;i++){cin>>a>>b;minn=max(minn,a/(b+1)+1);maxx=min(maxx,a/b);}cout<<minn<<" "<<maxx;return 0;
}
//二分
#include <iostream>
using namespace std;
int a[10000+5];
int v[10000+5];
int n;
bool check_min(int x)
{for(int i=1;i<=n;i++){if(a[i]/x>v[i])return false;}return true;
}
bool check_max(int x)
{for(int i=1;i<=n;i++){if(a[i]/x<v[i])return false;}return true;
}
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i]>>v[i];}int L=1,R=1000000000,minn=0;while(L<=R){int mid=(L+R)>>1;if(check_min(mid)){minn=mid;R=mid-1;}else L=mid+1;}int maxx=0;L=1,R=1000000000;while(L<=R){int mid=(L+R)>>1;if(check_max(mid)){maxx=mid;L=mid+1;}else R=mid-1;}cout<<minn<<" "<<maxx<<endl;return 0;
}

5.飞机降落

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct node
{int t,d,l;
};
bool ok=0;
vector<node>v;
vector<int>vis;
int n;
void dfs(int cnt,int last)
{if(cnt==n){ok=1;return;}for(int i=0;i<n;i++){if(!vis[i]&&v[i].t+v[i].d>=last)//可以降落{vis[i]=1;dfs(cnt+1,max(last,v[i].t)+v[i].l);vis[i]=0;//恢复}}
}
int main()
{int t;cin>>t;while(t--){cin>>n;v.clear();vis.clear();for(int i=1;i<=n;i++){//t d l (t/t+d -- l)int x,y,z;cin>>x>>y>>z;v.push_back({x,y,z});vis.push_back(0);}ok=0;dfs(0,0);//0架飞机,0需要时间if(!ok)cout<<"NO"<<endl;else cout<<"YES"<<endl;}return 0;
}

6.接龙数列

这道题其实本质就是求解出数列中最长的接龙数列,计算出最长的接龙数列长度,数列总长度-最长接龙数列长度等于最少删除次数。这就是一个求最优解的问题,然而看到这道题的数据量可以发现,暴力求解一定会超时,因此考虑动态规划。 动态规划最重要的就是状态转移方程,而这个题目就可以定义状态为当前最长接龙数列长度,则dp[i]就是以i为数字最后一位的最长接龙数列长度,设x为当前数字的第一位(如果为接龙数列,也就是前一位数的最后一位),y为当前数字的最后一位,则转移方程可以写为dp[y]=max(dp[x]+1,dp[y])

#include <iostream>
using namespace std;
int f[10];//表示在i=0-9中,f[i]为以i数字为连接的最长接龙数列的长度
int main()
{int n;cin>>n;int ans=0;string s;for(int i=0;i<n;i++){cin>>s;int pre=s[0]-'0',nex=s[s.size()-1]-'0';f[nex]=max(f[nex],f[pre]+1);ans=max(ans,f[nex]);}cout<<n-ans<<endl;//总的-最长长度=删去的return 0;
}

7.岛屿个数

搜索出所有岛屿,这个不难做到。由于岛屿之间互相隔离,则如果岛屿的一个格子在一个环内,那么整个岛屿也都在环内。遍历所有的岛屿,选中当前岛屿的第一个格子,搜索周围海洋,若能搜索到地图的边界外,则此岛屿不在任何一个环内;否则,此岛屿在某个环内,岛屿数量减一。

#include <iostream>
#include <queue>
#include <vector>
#include <string>
using namespace std;
#define pii pair<int,int>
const int N=100;
int n,m,ans;
vector<vector<bool>>vis;
string s[N];
int dx[8]={-1,1,0,0,-1,1,-1,1};
int dy[8]={0,0,-1,1,-1,1,1,-1};
bool inmap(int x,int y)
{if(x<1||x>n||y<1||y>m)return 0;return 1;
}
//bfs统计岛屿的情况
void bfs(int x,int y)
{vis[x][y]=1;queue<pii>q;q.push({x,y});while(!q.empty()){auto t=q.front();q.pop();for(int i=0;i<4;i++){int xx=t.first+dx[i];int yy=t.second+dy[i];if(!inmap(xx,yy)||vis[xx][yy]||s[xx][yy]!='1')continue;vis[xx][yy]=1;q.push({xx,yy});}}
}
bool check(int x,int y)//是否不在环内,即周围是海洋(用是否到边界判断)
{vector<vector<bool>>fin(n+1,vector<bool>(m+1,0));fin[x][y]=1;queue<pii>q;q.push({x,y});while(!q.empty()){auto t=q.front();q.pop();//到达边界,证明不在环中if(t.first==1||t.first==n||t.second==1||t.second==m)return 1;for(int i=0;i<8;i++){int xx=t.first+dx[i];int yy=t.second+dy[i];if(!inmap[xx][yy]||fin[xx][yy]||s[xx][yy]!='0')continue;fin[xx][yy]=1;q.push({xx,yy});}}return 0;
}
int main()
{int t;cin>>t;while(t--){ans=0;cin>>n>>m;for(int i=1;i<=n;i++){cin>>s[i];s[i]='2'+s[i];}vis=vector<vector<bool>>(n+1,vector<bool>(m+1,0));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(!vis[i][j]&&s[i][j]=='1'){bfs(i,j);if(check(i,j))ans++;}}}cout<<ans<<endl;}return 0;
}

 8.子串简写

#include <iostream>
using namespace std;
int main()
{int k;//最小可以简写的长度cin>>k;string s;char st,ed;cin>>s>>st>>ed;long long ans=0;int st_num=0;for(int i=0,j=k-1;j<s.size();i++,j++){if(s[i]==st)st_num++;if(s[j]==ed)ans+=st_num;}cout<<ans<<endl;return 0;
}
//4
//abababdb a b

 (注意规律,开long long)

 9.整数删除

#include<bits/stdc++.h>
using namespace std;
//优先队列+双向链表
const int N=5e5+10;
#define ll long long
#define val first
#define pos second
#define pli pair<ll,int>
int n,k;
ll a[N],pre[N],nxt[N];
priority_queue<pli,vector<pli>,greater<pli>>q;//小根堆
int main()
{cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];q.push({a[i],i});pre[i]=i-1;nxt[i]=i+1;}pre[1]=-1;nxt[n]=-1;while(k--){pli now;do{now=q.top();q.pop();}while(a[now.pos]!=now.val);//保证弹出同一个int PRE=pre[now.pos];int NXT=nxt[now.pos];if(PRE!=-1){a[PRE]+=now.val;q.push({a[PRE],PRE});nxt[PRE]=NXT;}if(NXT!=-1){a[NXT]+=now.val;q.push({a[NXT],NXT});pre[NXT]=PRE;}a[now.pos]=-1;}for(int i=1;i<=n;i++){if(a[i]!=-1)cout<<a[i]<<" ";}return 0;
}

 10.景区导游

//最近公共祖先。倍增做法 (深搜)
#include <iostream>
#include <vector>
#define ll long long
using namespace std;
const int N=1e5+10;
vector<int>e[N],w[N];
int n,k;
ll dep[N],fa[N][20],dist[N],b[N];void dfs(int u,int father){fa[u][0]=father;dep[u]=dep[father]+1;for(int i=1;i<20;i++){fa[u][i]=fa[fa[u][i-1]][i-1];}for(int i=0;i<e[u].size();i++){int v=e[u][i];int t=w[u][i];if(v!=father){dist[v]=dist[u]+t;dfs(v,u);}}
}int lca(int u,int v){if(dep[u]<dep[v]) swap(u,v);for(int i=19;i>=0;i--){if(dep[fa[u][i]]>=dep[v])u=fa[u][i];}if(u==v) return v;for(int i=19;i>=0;i--){if(fa[u][i]!=fa[v][i]){u=fa[u][i],v=fa[v][i];}}return fa[u][0];
}ll sol(int x,int y){if(!x||!y) return 0;return dist[x]+dist[y]-2*dist[lca(x,y)];
}
int main(){    cin>>n>>k;for(int i=1;i<n;i++){int x,y,t;cin>>x>>y>>t;e[x].push_back(y);e[y].push_back(x);w[x].push_back(t);w[y].push_back(t);}dfs(1,0);ll Dis=0;for(int i=1;i<=k;i++){cin>>b[i];Dis+=sol(b[i],b[i-1]);}for(int i=1;i<=k;i++){cout<<Dis-sol(b[i-1],b[i])-sol(b[i],b[i+1])+sol(b[i-1],b[i+1])<<" ";}return 0;
}

 11.砍树

#include <iostream>
#include <vector>
using namespace std;
const int N=1e5+10;
vector<int>e[N],num[N];
int n,m,dep[N],fa[N][21],s[N],ans;
void dfs(int u,int Fa)
{dep[u]=dep[Fa]+1;fa[u][0]=Fa;for(int i=1;i<=20;i++){fa[u][i]=fa[fa[u][i-1]][i-1];}for(auto &v:e[u]){if(v==Fa)continue;dfs(v,u);}
}
int LCA(int u,int v)
{if(dep[u]<dep[v])swap(u,v);for(int i=20;i>=0;i--){if(dep[fa[u][i]]>=dep[v]){u=fa[u][i];}}if(u==v)return u;for(int i=20;i>=0;i--){if(fa[u][i]!=fa[v][i]){u=fa[u][i];v=fa[v][i];}}return fa[u][0];
}
void dfs2(int u,int Fa)
{for(int i=0;i<e[u].size();i++){int v=e[u][i],p=num[u][i];if(v==Fa)continue;dfs2(v,u);s[u]+=s[v];if(s[v]==m)ans=max(ans,p);}
}
int main()
{cin>>n>>m;for(int i=1;i<n;i++){int x,y;cin>>x>>y;e[x].push_back(y);e[y].push_back(x);num[x].push_back(i);num[y].push_back(i);}dfs(1,0);for(int i=1;i<=m;i++){int a,b;cin>>a>>b;s[a]++;s[b]++;s[LCA(a,b)]-=2;}dfs2(1,0);cout<<ans;return 0;
}

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

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

相关文章

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬&#xff0c;我又回来了&#xff0c;最近2月太忙啦&#xff08;过年、奶娃、本子、材料、结题&#xff09;&#xff0c;断更了。现水一篇证明我还活着&#xff01;&#xff01;&#xff01; 最近在写国自然本子&#xff0c;遇到一个估计大家都会遇到的问…

Unity将4个纹理图拼接成1个纹理

需要的效果 最终实现的效果大概如下: 4个贴图上去 这里随便放一个切分的图。 Shader代码如下 直接上代码: // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)// Unlit shader. Simplest possible textured shad…

UE5 C++ Widget练习 Button 和 ProgressBar创建血条

一. 1.C创建一个继承Widget类的子类&#xff0c; 命名为MyUserWidget 2.加上Button 和 UserWidget的头文件 #include "CoreMinimal.h" #include "Components/Button.h" #include "Blueprint/UserWidget.h" #include "MyUserWidget.genera…

Python实现自动检测设备连通性并发送告警到企业微信

背景&#xff1a;门禁机器使用的WiFi连接&#xff0c;因为某些原因会不定期自动断开连接&#xff0c;需要人工及时干预&#xff0c;以免影响门禁数据同步&#xff0c;故写此脚本&#xff0c;定时检测门禁网络联通性。 #首次使用要安装tcping模块 pip install tcpingfrom tcpin…

【学习笔记】Serdes中的高速接口设计

参考文献&#xff1a; 一、绪论 1.1 背景 “串行替代并行”&#xff1a; 串行传输使用差分信号传输以传输更长距离&#xff1b; 并行传输因串扰无法长距离传输&#xff1b;并行线路对信号偏斜量的要求&#xff0c;限制了最大的传输速率。 SerDesSerializer Deserializer S…

欧拉函数性质和快速幂算法及python实现

目录 欧拉函数 快速幂算法 快速模幂算法 欧拉函数 两个不同的正整数a,b&#xff0c;若gcd(a,b)1,则a和b互质&#xff0c;1与任何正整数都互质 欧拉函数的意义 φ(n) 表示小于或等于正整数n的所有正整数中与n互质的数的个数 如φ(32) 16&#xff0c;即小于32的数中有16个…

Prompt 编程的优化技巧

一、为什么要优化 一&#xff09;上下文限制 目前 GPT-3.5 以及 GPT-4最大支持 16K 上下文&#xff0c;比如你输入超过 16k 的长文本&#xff0c;ChatGPT 会提示文本过大&#xff0c;为了避免 GPT 无法回复&#xff0c;需要限制 上下文在16k 以内 上下文对于 GPT 来说是非常重…

STL常用容器(vector容器)---C++

STL常用容器目录 2.vector容器2.1 vector基本概念2.2 vector构造函数2.3 vector赋值操作2.4 vector容量和大小2.5 vector插入和删除2.6 vector数据存取2.7 vector互换容器2.7.1 vector互换容器收缩内存空间 2.8 vector预留空间 2.vector容器 2.1 vector基本概念 功能&#xf…

自然语言处理(NLP)—— 神经网络自然语言处理(2)实际应用

本篇文章的第一部分是关于探索词嵌入&#xff08;word embedding&#xff09;向量空间。词嵌入是一种语言模型和文本表示技术&#xff0c;其中单词或短语从词汇表被映射到向量的高维空间中。通过这种方式&#xff0c;可以通过计算向量之间的距离来捕捉单词之间的语义关系。 1.…

2024-02-23(Spark)

1.RDD的数据是过程数据 RDD之间进行相互迭代计算&#xff08;Transaction的转换&#xff09;&#xff0c;当执行开启后&#xff0c;代表老RDD的消失 RDD的数据是过程数据&#xff0c;只在处理的过程中存在&#xff0c;一旦处理完成&#xff0c;就不见了。 这个特性可以最大化…

R语言空间分析、模拟预测与可视化

随着地理信息系统&#xff08;GIS&#xff09;和大尺度研究的发展&#xff0c;空间数据的管理、统计与制图变得越来越重要。R语言在数据分析、挖掘和可视化中发挥着重要的作用&#xff0c;其中在空间分析方面扮演着重要角色&#xff0c;与空间相关的包的数量也达到130多个。在本…

搜维尔科技:第九届元宇宙数字人大赛,参赛小组报名确认公告

各位参赛选手大家好&#xff0c;近期已收到新增报名信息如下表&#xff0c;请各位参赛选手确认&#xff0c;如果信息有误或信息不完整请电话联系赛务组工作人员进行更正 随着元宇宙时代的来临&#xff0c;数字人设计成为了创新前沿领域之一。为了提高大学生元宇宙虚拟人角色策划…

uniapp实现单选框

采用uniapp-vue3实现的一款单选框组件&#xff0c;提供丝滑的动画选中效果&#xff0c;支持不同主题配置&#xff0c;适配web、H5、微信小程序&#xff08;其他平台小程序未测试过&#xff0c;可自行尝试&#xff09; 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net…

SpringBoot实现缓存预热方案

缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。 那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系统呢? 实现方案概述 在 Spring Boot 启动之后,可以通过以下手段实现缓存预热: 使用…

数据界的达克摩斯之剑----深入浅出带你理解网络爬虫(First)

目录 一.引言 二.网络爬虫产生的背景 三.爬虫背后的相关技术和原理 1.插入URL的概念解析 2.常见的几种URL格式 四.网络爬虫的分类 1.通用网络爬虫 2.增量式网络爬虫 3.Deep Web爬虫 一.引言 网络爬虫是一种自动获取网页内容的程序或技术。它就像一只“小蜘蛛”&#x…

Java设计模式 | 七大原则之依赖倒转原则

依赖倒转原则&#xff08;Dependence Inversion Principle&#xff09; 基本介绍 高层模块不应该依赖低层模块&#xff0c;二者都应该依赖其抽象&#xff08;接口/抽象类&#xff09;抽象不应该依赖细节&#xff0c;细节应该依赖抽象依赖倒转&#xff08;倒置&#xff09;的…

Redis 16种妙用

1、缓存 2、数据共享分布式 3、分布式锁 4、全局ID 5、计数器 6、限流 7、位统计 8、购物车 9、用户消息时间线timeline 10、消息队列 11、抽奖 12、点赞、签到、打卡 13、商品标签 14、商品筛选 15、用户关注、推荐模型 16、排行榜 1、缓存 String类型 例如&#xff1a;热点…

《TCP/IP详解 卷一》第8章 ICMPv4和ICMPv6

目录 8.1 引言 8.1.1 在IPv4和IPv6中的封装 8.2 ICMP 报文 8.2.1 ICMPv4 报文 8.2.2 ICMPv6 报文 8.2.3 处理ICMP报文 8.3 ICMP差错报文 8.3.1 扩展的ICMP和多部报文 8.3.2 目的不可达和数据包太大 8.3.3 重定向 8.3.4 ICMP 超时 8.3.5 参数问题 8.4 ICMP查询/信息…

猫头虎分享已解决Bug || Invariant Violation: Element type is invalid

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

oracle官网下载早期jdk版本

Java Downloads | Oracle JDK Builds from Oracle 以上压缩版&#xff0c;以下安装版 Java Downloads | Oracle 该链接往下拉能看到jdk8和jdk11的安装版 -- end