当前位置: 首页 > news >正文

蓝桥杯每日一题2023.11.19

题目描述

“蓝桥杯”练习系统 (lanqiao.cn)

题目分析

首先想到的方法为dfs去寻找每一个数,但发现会有超时

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, cnt, a[N];
void dfs(int dep, int sum, int start)
{if(dep == 4){if(sum == 0 && cnt == 0){for(int i = 0; i < 4; i ++){cout << a[i] << ' ';}cnt ++;}return;}for(int i = start; i <= sqrt(sum); i ++){a[dep] = i;dfs(dep + 1, sum - (i * i), i);} 
}
int main()
{cin >> n;dfs(0, n, 0);return 0;
}

使用二分

先将后两个数确定,将其后两个数的平方和以及分别对应的数字存入结构体中,再一一枚举前两个数,二分出可以匹配的后两个数,确定出答案

#include<bits/stdc++.h>
using namespace std;
const int N = 5e6 + 10;
int n, num;
struct node
{int ss, c, d;
}sum[N * 2];
bool cmp(node x, node y)
{if(x.ss != y.ss){return x.ss < y.ss;	} else{if(x.c != y.c){return x.c < y.c;}else{return x.d < y.d;}}
}
int main()
{cin >> n;for(int c = 0; c * c <= n; c ++){for(int d = c; c * c + d * d <= n; d ++){sum[num ++] = {c * c + d * d, c, d};}}sort(sum, sum + num, cmp);for(int a = 0; a * a <= n; a ++){for(int b = 0; a * a + b * b <= n; b ++){int t = n - a * a - b * b;int l = 0, r = num - 1;while(l < r){int mid = l + r >> 1;if(sum[mid].ss >= t)r = mid;else l = mid + 1;}if(sum[l].ss == t){cout << a << ' ' << b << ' ' << sum[l].c << ' ' << sum[l]. d;return 0;}} }return 0;
}
http://www.lryc.cn/news/236317.html

相关文章:

  • <b><strong>,<i><em>标签的区别
  • c++中的特殊类设计
  • 开源更安全? yum源配置/rpm 什么是SSH?
  • 庖丁解牛:NIO核心概念与机制详解 04 _ 分散和聚集
  • Java读写Jar
  • 【四元数简述】
  • ClickHouse SQL 查询优化
  • 「Verilog学习笔记」数据选择器实现逻辑电路
  • 【Go入门】Web工作方式
  • 综述:目标检测二十年(机翻版)(未完
  • quinn源码解析:QUIC数据包是如何发送的
  • scss的高级用法——循环
  • Linux安装Chrome浏览器 -linux安装choeme
  • 六大排序(插入排序、希尔排序、冒泡排序、选择排序、堆排序、快速排序)未完
  • JVM垃圾回收相关概念
  • C++各种字符转换
  • MSSQL-逻辑级常用命令
  • 【如何学习Python自动化测试】—— 时间等待
  • 《数字图像处理-OpenCV/Python》连载(44)图像的投影变换
  • AI机器学习 | 基于librosa库和使用scikit-learn库中的分类器进行语音识别
  • Asp.net MVC Api项目搭建
  • C语言中文网 - Shell脚本 - 8
  • 性能测试学习——项目环境搭建和Jmete学习二
  • C++标准模板库(STL)-map介绍
  • 使用docker部署ELK日志框架-Elasticsearch
  • 第7章 模式匹配与正则表达式
  • 单元测试实战(三)JPA 的测试
  • 初刷leetcode题目(3)——数据结构与算法
  • 76基于matlab的免疫算法求解配送中心选址问题,根据配送地址确定最佳配送中心地址位置。
  • C++二分查找算法:找到 Alice 和 Bob 可以相遇的建筑