蓝桥杯刷题第二十二天

news/2024/7/20 20:20:24 标签: 蓝桥杯, 深度优先, 算法

第一题:受伤的皇后

题目描述
有一个 n×n 的国际象棋棋盘(n 行 n 列的方格图),请在棋盘中摆放 n 个受伤的国际象棋皇后,要求:
任何两个皇后不在同一行。
任何两个皇后不在同一列。
如果两个皇后在同一条 45 度角的斜线上,这两个皇后之间行号的差值至少为 3 。
请问一共有多少种摆放方案。
输入描述
输入的第一行包含一个整数 n
其中,1≤n≤10。
输出描述
输出一个整数,表示答案。
输入
4
输出
2

深搜,对于每一行进行选择

check判断,列是否有

对角线是否有, 如果有,则行差值大于等于三

正对角线 行 + 列 == 该点 行 + 列

反对角线 行- 该点行 == 列 - 该点列

如果是dg,udg数组来表示

dg[x + y], udg[n - x + y]来判断,但是这种是正规皇后

#include<iostream>
using namespace std;

const int N = 12;
int a[12];  //表示第i行元素在第几列
int n, ans;

bool check(int row, int y){
  for(int i = 0 ; i < row; i++){
    if(a[i] == y) return false;
    if(a[i] + i == row + y && row - i < 3) return false;
    if(row - i == y - a[i] && row - i < 3) return false;
  }
  return true;
}

void dfs(int u){
  if(u == n){
    ans++;
    return ;
  }

  for(int i = 0; i < n; i++){
    if(check(u, i)){
      a[u] = i;
      dfs(u + 1);
      a[u] = 0;
    }  
  }
}


int main(){
  cin>>n;

  dfs(0);

  cout<<ans<<endl;
  return 0;
}

第二题:完全平方数

问题描述
一个整数 a 是一个完全平方数, 是指它是某一个整数的平方, 即存在一个 整数 b, 使得a=b 2
给定一个正整数 n, 请找到最小的正整数 x, 使得它们的乘积是一个完全平 方数。
输入格式
输入一行包含一个正整数 n
输出格式
输出找到的最小的正整数 x
样例输入 1
12
样例输出 1
3
样例输入 2
15
样例输出 2
15
评测用例规模与约定
对于 30 的评测用例, 1≤n≤1000, 答案不超过 1000 。
对于 60 的评测用例, 1≤n≤10 8 , 答案不超过 10 8
对于所有评测用例,1≤n≤10 12 , 答案不超过 10 12

一个数是完全平方数,一定有他分解得质因数得指数一定是偶数

所以我们找到指数非偶数的质因数,然后再乘到res里面就得到的最小要乘的数

考察分解质因数

#include <iostream>
using namespace std;

typedef long long LL;

int main()
{
  long long n;
  cin>>n;

  LL res = 1;
  for(LL i = 2; i <= n / i; i++)
    if(n % i == 0){
      LL s = 0;
      while( n % i == 0) s ++ , n /= i;
      if(s % 2) res *= i;
    }

  if(n > 1) res *= n;
  cout<<res<<endl;
  return 0;
}

http://www.niftyadmin.cn/n/188066.html

相关文章

java基础面试题(六)

RabbitMQ 1.什么是MQ&#xff1f;为什么使用MQ&#xff1f;MQ的优点 MQ&#xff1a;消息队列&#xff1b;是在消息传输过程中保存消息的容器。 主要是&#xff1a; 解耦&#xff1a;系统间通过消息通信&#xff0c;不用关心其他系统的处理 异步&#xff1a;多个系统写库时&…

Kotlin的数据流

LiveData 则是一种可观察的数据存储器类&#xff0c;与常规的可观察类不同&#xff0c;LiveData 具有生命周期感知能力&#xff0c;它遵循其他应用组件&#xff08;如 Activity、Fragment 或 Service&#xff09;的生命周期。这种感知能力可确保LiveData当数据源发生变化的时候…

Golang三个编译基本命令

Golang三个编译基本命令 在运行Go语言程序之前&#xff0c;先要将其编译成二进制的可执行文件 我们通常在编辑器编写完源码后使用go build或go run命令对GO语言程序进行编译 1、go build&#xff08;编译&#xff09; 作用&#xff1a;将Go语言程序和相关依赖编译成可执行文…

安装k8s工具之二-kubeasz

一、介绍 Kubeasz 是一个基于 Ansible 自动化工具&#xff0c;用于快速部署和管理 Kubernetes 集群的工具。它支持快速部署高可用的 Kubernetes 集群&#xff0c;支持容器化部署&#xff0c;可以方便地扩展集群规模&#xff0c;支持多租户&#xff0c;提供了强大的监控和日志分…

最近爬取网站遇到的一些难题总结出来,GET和POST,form data和json,表单数据和请求载荷,python爬取知识

验证码问题,这个比较简单,保存验证码图片到本地,人工肉眼识别验证码并输入就行. POST和GET,这是HTTP协议中向网站发送请求的两种方法, 每个网站用的方法不一样,甚至一个网站的每个网页用的方法都不一样, GET方法最简单,因为它把想要的数据,参数都放到网址里,所以用一条网址直…

Git(三)

目录&#xff1a; &#xff08;1&#xff09;仓库克隆 &#xff08;2&#xff09;抓取和拉取 &#xff08;3&#xff09;解决合并冲突 &#xff08;4&#xff09;IDEA中使用Git &#xff08;5&#xff09;IDEA克隆-更新-解决冲突 &#xff08;1&#xff09;仓库克隆 克隆…

看ChatGPT如何回答微博签到数据相关问题。

以下内容完全由chatGPT提供&#xff0c;相对来说&#xff0c;我对它的回答比较满意&#xff0c;但存在不足之处。请各位同学自行甄别ChatGPT回答的内容。以下回答均来自chatgpt&#xff0c;仅代表chatgpt的看法&#xff0c;不代表作者任何观点 1、作为一名博士研究生&#xff…

Vue的基础知识(属性、指令等)

目录 一&#xff1a;容器和Vue的关系 二&#xff1a;注意事项 三&#xff1a;v-bind 3.1 v-bind和v-model的区别 3.2 defineproperty 3.3 数据代理 3.4 Vue中数据代理的应用 3.5 事件修饰符 3.6 键盘绑定修饰符 3.7 计算属性 3.8 监视属性 3.9 深度监视 3.A 绑定样…