蓝桥杯备战刷题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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Word | 论文使用 Springer LNICST 工具包进行格式化

目录 Step1&#xff1a;下载 Springer LNICST 工具包 Step2&#xff1a;导入宏文件 Step3&#xff1a;处理导入失败&#xff08;大概意思是这个宏不安全&#xff09; Step4&#xff1a;导入成功并使用 Step1&#xff1a;下载 Springer LNICST 工具包 会议官网的 SUBMISSIO…

合唱队形洛谷

这题的状态转移方程为dp[i]max(dp[i]&#xff0c;dp[j]1) 因而可以有代码 #include<iostream> #include<algorithm> using namespace std; int arr[102][2]; int a[102]; int main() { int n; cin >> n; for (int i 1; i < n; i) { cin >>…

1、docker入门

文章目录 1、tocker简介2、tocker的安装&环境配置2、配置阿里云镜像3、基本命令1、镜像命令2、docker基本命令3、镜像基本命令4、Docker 容器常用命令 1、tocker简介 新一代的虚拟化技术 2、tocker的安装&环境配置 uname -r1、首先查看liunx的内核 yum update -y2、更…

selenium-激活pycharm,以及在pycharm中使用selenium时标红报错问题处理

激活pycharm&#xff1a;http://idea.955code.com/ 01 pycharm中导入selenium报错 现象: pycharm中输入from selenium import webdriver, selenium标红 原因1: pycharm使用的虚拟环境中没有安装selenium&#xff1a; 解决方法: 在pycharm中通过设置或terminal面板重新安装s…

VR元宇宙的概念|VR体验店加盟|虚拟现实设备销售

VR元宇宙是一个结合了虚拟现实&#xff08;Virtual Reality&#xff09;和增强现实&#xff08;Augmented Reality&#xff09;等技术的概念&#xff0c;代表着一个虚拟的多维度世界。它是一个由数字化的空间构成的虚拟环境&#xff0c;可以通过虚拟现实设备进行交互和探索。 元…

本届挑战赛季军方案:基于图网络及LLM AGENT的微服务系统异常检测和根因定位方法

aiboco团队荣获本届挑战赛季军。该团队来自亿阳信通。 方案介绍 本届挑战赛采用开放式赛题&#xff0c;基于建行云龙舟运维平台的稳定性工具和多维监控系统&#xff0c;模拟大型的生活服务APP的生产环境&#xff0c;提供端到端的全链路的日志、指标和调用链数据。参赛队伍在组…

Linux系统——LAMP架构

目录 一、LAMP架构组成 1.LAMP定义 2.各组件的主要作用 3.CGI和FastCGI 3.1CGI 3.3CGI和FastCGI比较 4.PHP 4.1PHP简介 4.2PHP的Opcode语言 4.3PHP设置 二、LAMP架构实现 1.编译安装Apache httpd服务 2.编译安装Mysql 3.编译安装PHP 4.安装论坛 5.搭建博客 W…

spring boot 整合 minio存储 【使用篇】

zi导入依赖 <!--minio--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.0.3</version></dependency> yml配置&#xff08;默认配置&#xff09; spring:# 配置文件上传大小限制s…

LNMP 架构

环境准备&#xff1a;lnmp 需要安装 nginx mysql php 论坛/博客 软件 使用LNMP架构搭建 论坛 1. 关闭防火墙和和核心防护 systemctl disable --now firewalld setenforce 0 2. 编译安装 nginx 安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make 创建…

The dependencies of some of the beans in the application context form a cycle

1. 场景 项目启动报错如下&#xff1a; 翻译描述信息&#xff1a;应用程序上下文中某些bean的依赖关系形成一个循环 解释报错原因&#xff1a; 图中长方形指示的箭头代表了注入依赖的方向&#xff0c;marketSymbolServiceImpl注入了ownCurrencySettingService&#xff0c;own…

4_相机透镜畸变

理论上讲&#xff0c;是可能定义一种透镜而不引入任何畸变的。然而现实世界没有完美的透镜。这主要是制造上的原因&#xff0c;因为制作一个“球形”透镜比制作一个数学上理想的透镜更容易。而且从机械方面也很难把透镜和成像仪保持平行。下面主要描述两种主要的透镜畸变并为他…

亚马逊自养号测评:如何安全搭建环境,有效规避风险

要在亚马逊上进行自养号测评&#xff0c;构建一个真实的国外环境至关重要。这包括模拟国外的服务器、IP地址、浏览器环境&#xff0c;甚至支付方式&#xff0c;以创建一个完整的国际操作环境。这样的环境能让我们自由注册、养号并下单&#xff0c;确保所有操作均符合国际规范。…

【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】

文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…

观成科技:加密C2框架Covenant流量分析

工具介绍 Covenant是一个基于.NET的开源C2服务器&#xff0c;可以通过HTTP/HTTPS 控制Covenant agent&#xff0c;从而实现对目标的远程控制。Covenant agent在与C2通信时&#xff0c;使用base64/AES加密载荷的HTTP隧道构建加密通道。亦可选择使用SSL/TLS标准加密协议&#xf…

77. 组合(力扣LeetCode)

文章目录 77. 组合题目描述回溯算法组合问题的剪枝操作 77. 组合 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [ [2,4], [3,4],…

搭建LNMP环境并配置个人博客系统

LNMP是Linux&#xff08;操作系统&#xff09;、Nginx&#xff08;Web服务器&#xff09;、MySQL&#xff08;数据库&#xff09;和PHP&#xff08;脚本解释器&#xff09;的组合&#xff0c;常用于部署高性能的动态网站&#xff0c;如WordPress等博客平台 一、安装Linux操作系…

运用ETL工具快速拉通“有成财务”

如何运用ETL工具拉取“有成财务”数据并保存到数据库&#xff1f; ETLCloud 是一个数据集成平台&#xff0c;它提供了实时数据处理、抽取、转换、加载以及变更数据捕获&#xff08;CDC&#xff09;等功能。这个平台致力于简化和自动化企业级的数据同步与传输任务&#xff0c;并…

如何恢复数据?5个实用数据恢复方法!

亲爱的朋友们&#xff0c;你是否也有过这样的经历&#xff0c;电脑里的数据突然消失&#xff0c;让你手足无措&#xff1f;别担心&#xff0c;今天我就来教你如何恢复数据&#xff0c;让你不再为数据丢失而烦恼。 首先&#xff0c;我们需要了解数据丢失的原因。可能是你不小心…

华为云磁盘挂载

华为云磁盘挂载 磁盘挂载情况 fdisk -l 2. 查看当前分区情况 df -h 3.给新硬盘添加新分区 fdisk /dev/vdb 4.分区完成&#xff0c;查询所有设备的文件系统类型 blkid 发现新分区并没有文件系统类型&#xff08;type为文件系统具体类型&#xff0c;有ext3,ext4,xfs,iso9660等…

基于偏微分方程离散化计算的地下换热器建模与温度检测matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1地下换热器的建模 4.2温度检测技术 5.完整工程文件 1.课题概述 基于偏微分方程离散化计算的地下换热器建模与温度检测&#xff0c;模拟这个不锈钢圆桶中土壤的温度场和湿度场。 2.系统仿真结果 3.核…