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

  1.合法日期

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{map<string,int>mp;int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};for(int i=1;i<=12;i++){for(int j=1;j<=days[i];j++){string s=to_string(i)+to_string(j);mp[s]=1;}}string m,d;cin>>m>>d;m+=d;if(mp[m])cout<<"yes"<<endl;else cout<<"no"<<endl;return 0;
}

 2.删除字符

#include <iostream>
#include <string>
using namespace std;
//使字典序最小,即删掉字典序大的
//可以删除q次
//在删除每一次时,把每一个字母删掉都试一下是不是比之前的小,如果是则贡献答案
int main()
{string s;cin>>s;string s1,s2,s3;s2=s3=s;int q;cin>>q;while(q--){for(int i=0;i<s.size();i++){s3=s;//原来的(保证每次for循环挑选出一位)s1=s3.erase(i,1);//从i开始删除1位if(s1<s2)//s2表示上一个答案{s2=s1;}}s=s2;//for循环结束后更新s}cout<<s<<endl;return 0;
}

 3.最小谈判

#include <iostream>
#include <queue>
using namespace std;
const int N=1000+10;
int n;
int ans;
priority_queue<int,vector<int>,greater<int>>q;//小根堆
int main()
{cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;q.push(x);}while(q.size()!=1){if(q.size()==1)break;//每次取出最小的两个int t1=q.top();q.pop();int t2=q.top();q.pop();ans+=(t1+t2);q.push(t1+t2);}cout<<ans<<endl;return 0;
}

 4.排列小球

#include <iostream>
using namespace std;
//有限制地枚举方案,采用dfs可以进行搜索和回溯
int sum;//三个小球的总数量
int a[3];//三个小球各自的数量
int ans;//答案即方案数
void dfs(int sum,int x,int last)
{//sum为目前还未放入进行排列的小球的数量,x为目前要放入小球的数量,//last为上次放小球的小球颜色if(sum==0){//若能够全部放完则记录一次答案ans++;return;}for(int i=0;i<3;i++)//枚举三种颜色的小球,看那种符合题意{if(i==last)//颜色相同则跳过continue;//找到不同颜色的for(int j=x+1;j<=a[i];j++)//从x+1开始枚举{a[i]-=j;dfs(sum-j,j,i);a[i]+=j;//恢复现场}}
}
int main()
{for(int i=0;i<3;i++){cin>>a[i];sum+=a[i];}dfs(sum,0,-1);cout<<ans<<endl;return 0;
}

 5.灌溉

#include <iostream>
using namespace std;
const int N=110;
int a[N][N];
int b[N][N];
int n,m,t,k,ans;
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
int main()
{cin>>n>>m>>t;while(t--){int x,y;cin>>x>>y;a[x][y]=1;b[x][y]=2;//为出水管}cin>>k;for(int g=1;g<=k;g++){for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]==1){for(int p=0;p<4;p++){int xx=i+dx[p];int yy=j+dy[p];if(xx<1||xx>n||yy<1||yy>m)continue;b[xx][yy]=1;}}}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(b[i][j]==2||b[i][j]==0)continue;a[i][j]=b[i][j];}}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]==1)ans++;}}cout<<ans<<endl;return 0;
}

6.受伤的皇后

#include <iostream>
using namespace std;
const int N=15;
int a[N];//a[i]=j表示第i行中放在了第j列
int n;
int ans;
bool isvalid(int row,int i)
{//判断已经放好的前row-1行是否可行for(int j=1;j<row;j++){if(a[j]==i||(row+i==a[j]+j&&row-j<3)||(row-i==j-a[j]&&row-j<3))return false;}return true;
}
//注意:反对角线:x+y==定值;正对角线:x-y==定值
void dfs(int row)//代码前row-1行已经放好,现在要放第row行
{if(row==n+1)//前面n行已经放好了{ans++;return;}for(int i=1;i<=n;i++)//枚举是否可行的列{if(isvalid(row,i)){a[row]=i;dfs(row+1);a[row]=0;}}
}
int main()
{cin>>n;dfs(1);//表示前0行已经摆好了就OK//注意不能是dfs(0),表示前0-1行已经摆好了,不行!!cout<<ans<<endl;return 0;
}

7.跳跃

#include <iostream>
using namespace std;
const int N=110;
const int MIN=-1e9;
int f[N][N];
int n,m;
//注意9个方向!(特别是后三个)
int dx[]={-1,-2,-3,0,0,0,-1,-1,-2};
int dy[]={0,0,0,-1,-2,-3,-1,-2,-1};
//动态规划的思想
int main()
{cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>f[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){//找到可以从9个方向下来中的最大值int temp=MIN;for(int k=0;k<9;k++){int xx=i+dx[k];int yy=j+dy[k];if(xx<1||xx>n||yy<1||yy>m)continue;temp=max(temp,f[xx][yy]);}if(temp!=MIN)//找到了才进行更新{f[i][j]+=temp;}}}cout<<f[n][m]<<endl;return 0;
}

8.逆序对数

#include <iostream>
using namespace std;
// 求逆序对-->归并排序
int q[]={87,39,35,1,99,10,54,1,46,24,74,62,49,13,2,80,24,58,8,14,83,23,97,85,3,2,86,10,71,15};
int temp[33];
int ans=0;
void merge_sort(int q[],int l,int r)
{if (l >= r)return ;int mid= (l + r) / 2;merge_sort(q, l, mid);merge_sort(q, mid + 1, r);int k = 0, i = l, j = mid + 1;while (i <= mid && j <= r){if (q[i] <= q[j])temp[k++] = q[i++];//注意等号!!else{temp[k++] = q[j++];ans += mid - i + 1;}}while (i <= mid)temp[k++] = q[i++];while (j <= r)temp[k++] = q[j++];for (i = l, j = 0; i <= r; i++, j++)q[i] = temp[j];//注意赋值!}
int main()
{merge_sort(q,0,29);cout<<ans<<endl;return 0;
}

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

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

相关文章

江苏双线服务器租用的优势有哪些?

随着互联网的快速发展&#xff0c;服务器也随着科技的发展变得多种多样&#xff0c;其中双线服务器租用格外受大家关注&#xff0c;那么江苏双线服务器租用到底有哪些优势呢&#xff1f; 1.网络环境稳定 江苏双线服务器租用的主要优点就是有着高速稳定的网络环境&#xff0c;双…

P4198 楼房重建题解(线段树, 分治)

题目描述 题面 简要题意&#xff1a; 给你一个长度为 n n n 的序列 a i a_i ai​ ( n ≤ 1 0 5 n \leq 10^5 n≤105)&#xff0c;要求进行 m m m 次操作 ( m ≤ 1 0 5 m \leq 10^5 m≤105) 。操作分两种&#xff1a; 1.单点修改。 2.查询整个序列中有多少个位置 x x x 满…

动态规划(背包理论)-算法题

416. 分割等和子集 题目 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割成 [1, …

Vivado Vitis 2023.2 环境配置 Git TCL工程管理 MicroBlaze和HLS点灯测试

文章目录 本篇概要Vivado Vitis 环境搭建Vivado 免费标准版 vs 企业版Vivado Windows 安装Vivado 安装更新 Vivado 工程操作GUI 创建工程打开已有工程从已有工程创建, 重命名工程GUI导出TCL, TCL复原工程TCL命令 Vivado 版本控制BlinkTcl脚本新建导出重建工程纯Verilog BlinkTc…

js处理IOS虚拟键盘弹出后输入框被遮住

​ JS IOS 前言 在项目开发的过程中&#xff0c;在IOS手机端系统下&#xff0c;当对输入框&#xff08;input/textarea&#xff09;进行focus操作时&#xff0c;键盘弹起遮住输入框。 问题描述 从页面底部focus输入框失败从页面中间focus输入框失败 原因 造成上述问题的&…

【MySQL】_自连接与子查询

目录 1. 自连接 2. 子查询&#xff08;嵌套查询&#xff09; 2.1 子查询分类 2.2 单行子查询示例1&#xff1a;查询不想毕业同学的同班同学 2.3 多行子查询示例2&#xff1a;查询语文或英语课程的信息成绩 3. 合并查询 3.1 示例1&#xff1a;查询id3或者名字为英文的课程…

Flutter 处理异步操作并根据异步操作状态动态构建界面的方法FutureBuilder

概述 当界面的内容需要依靠网络请求的数据&#xff0c;就需要处理苦恼的&#xff0c;状态是空&#xff0c;非空的逻辑了&#xff0c;不然页面构建可能会报错&#xff0c;而FutureBuilder提供了一个非常好的解决方法&#xff0c;直接看代码 代码 异步操作函数 即网络请求函数…

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解

一、分析判断 进入靶机&#xff0c;主页面如图&#xff1a; 主页面提供给我们一条关键信息&#xff1a; flag值在 表flag 中的 flag列 中。 接着我们尝试输入不同的id&#xff0c;情况分别如图&#xff1a; 当id1时&#xff1a; 当id2时&#xff1a; 当id3时&#xff1a; 我…

YOLOv8改进涨点,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)

目录 摘要 主要想法 GSConv GSConv代码实现 slim-neck slim-neck代码实现 yaml文件 完整代码分享 总结 摘要 目标检测是计算机视觉中重要的下游任务。对于车载边缘计算平台来说&#xff0c;巨大的模型很难达到实时检测的要求。而且&#xff0c;由大量深度可分离卷积层构…

【Redis | 第三篇】Springboot整合Redis

文章目录 3.Springboot整合Redis3.1Spring Data Redis介绍3.2整合步骤3.2.1导入依赖3.2.2配置redis数据源3.2.3使用RedisTemplate进行操作&#xff08;1&#xff09;创建RedisTemplate Bean&#xff08;2&#xff09;注入RedisTemplate&#xff08;3&#xff09;执行Redis操作&…

C++:常量表达式

C11开始constexpr作为一种声明&#xff0c;为编译器提供了在编译期间确认结果的优化建议&#xff0c;满足部分编译期特性的需求 constexpr和const区别 int b10; const int ab; //运行成功 constexpr int cb; //编译器报错&#xff0c;b的值在编译期间不能确定 const int size1…

面试笔记系列二之java基础+集合知识点整理及常见面试题

目录 Java面向对象有哪些特征&#xff0c;如何应用 Java基本数据类型及所占字节 Java中重写和重载有哪些区别 jdk1.8的新特性有哪些 内部类 1. 成员内部类&#xff08;Member Inner Class&#xff09;&#xff1a; 2. 静态内部类&#xff08;Static Nested Class&#…

Vue 组件和插件:探索细节与差异

查看本专栏目录 关于作者 还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#x…

Linux查看进程占用句柄

ps -ef |grep python # 查找工具执行PID python pid 11287lsof -p 11287 |wc -l 查看进程占用句柄设置句柄上限IOError: [Errno 24] Too many open files:解决方法

阿里云短信验证笔记

1.了解阿里云的权限操作 进入AccessKey管理 选择子用户 创建用户组和用户 先创建用户组&#xff0c;建好再进行权限分配 添加短信管理权限 创建用户 创建好后的id和密码在此处下载可以得到 2.开通阿里云短信服务 进行申请&#xff0c;配置短信模板 阿里云短信API文档 短信服务…

逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例

补充知识&#xff1a;进行AES解密需要知道四个关键字&#xff0c;即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的&#xff0c;m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文&#xff1a; 一般思…

性能测试-jvm

1、jps&#xff1a; 查看java进程 [rootVM-100-3-centos ~]# jps 7088 Jps 1521 ruoyi-admin.jar 3978 sys_perf_01-0.0.1-SNAPSHOT.jar [rootVM-100-3-centos ~]# 2、jmap&#xff1a; 查看java内存 [rootVM-100-3-centos ~]# jmap -heap 3978 Attaching to process ID 39…

【算法大家庭】分治算法

目录 &#x1f953;1.简单介绍 &#x1f9c8;2.汉诺塔问题 1.简单介绍 分治算法是解决问题的一种思想&#xff0c;它将一个大问题分解成若干个小问题&#xff0c;然后分别解决这些小问题&#xff0c;最后将小问题的解合并起来得到原问题的解。 分解&#xff1a;将原问题分解…

我的创作纪念日(直接跳过)

机缘 转眼已经工作多年了&#xff0c;在工作中收获了很多&#xff0c;也成长了很多。仔细写的话也不是几句话能概括完整的。 收获 时常记录一些心得或者是步骤&#xff0c;分享踩过的坑。有些时候同样的操作自己还会回来看看&#xff0c;说明还是有不少用处。 日常 随心&…

Mazing官方 2.17.17版新i功能介绍

iMazing官方 2.17.17版是一款管理苹果设备的软件&#xff0c;是一款帮助用户管理 IOS 手机的PC端应用程序&#xff0c;能力远超 iTunes 提供的终极 iOS 设备管理器。在iMazing官方版上与苹果设备连接后&#xff0c;可以轻松传输文件&#xff0c;浏览保存信息等&#xff0c;功能…