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

蓝桥杯C++大学B组一个月冲刺记录2024/3/13

蓝桥杯C++大学B组一个月冲刺记录2024/3/13

规则:每日三题

向日葵的花语是说不出的爱恋
不过今天有点水题了

1.有序分数

给定一个整数 N,请你求出所有分母小于或等于 N,大小在 [0,1] 范围内的最简分数,并按从小到大顺序依次输出。

这个题在被划分为递归一章,是由于Stern-Brocot Tree可以通过中序递归来解决这个问题
但是这个题数据范围仅n <160。所以时间复杂度为O(n2logn)的暴力做法也可以解决这个题

#include<iostream>
#include<vector>
#include<algorithm>using namespace std;typedef pair<int,int>PII;vector<PII>q;int n;bool cmp(PII a,PII b){return a.first * b.second < a.second * b.first;
}int gcd(int a,int b){return b?gcd(b,a % b):a;
}int main(){cin >> n;q.push_back({0,1});for(int i = 1;i <= n; ++i){for(int j = 1;j <= i;++j){if(gcd(i,j) == 1) q.push_back({j,i});}     }sort(q.begin(),q.end(),cmp);for(int i = 0;i < q.size();++i){cout << q[i].first << '/' << q[i].second << endl;}return 0;    
}

以下是y总的递归做法,时间复杂度O(n2)

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int n;void dfs(int a, int b, int c, int d)
{if (a + c > n) return;dfs(a, b, a + c, b + d);printf("%d/%d\n", b + d, a + c);dfs(a + c, b + d, c, d);
}int main()
{scanf("%d", &n);puts("0/1");dfs(1, 0, 1, 1);puts("1/1");return 0;
}

2.递归实现指数型枚举

从 1∼n这 n个整数中随机选取任意多个,输出所有可能的选择方案。

简单的dfs,比较巧妙的是用二进制编码来记录状态

#include<iostream>using namespace std;const int M = 20;int p[M];
int n;void dfs(int i){if(i > n){for(int i = 1;i <= n; ++i){if(p[i] == 1) cout << i << ' ';else continue;   }cout << '\n';}else{p[i] = 1;dfs(i + 1);p[i] = 0;dfs(i + 1);}}int main(){cin >> n;dfs(1);return 0;
}
http://www.lryc.cn/news/317371.html

相关文章:

  • 计算机网络——Internet结构和ISP
  • E.接龙数列【蓝桥杯】/动态规划
  • cv2.cvtColor()将二维转化为彩色图像
  • 为什么 VSCode 不用 Qt 而要用 Electron?
  • 环信ChatroomUIKit功能详解——超详细介绍
  • 怎么读取springboot中的properties.yml配置文件里的配置值(亲测有效)
  • 18、设计模式之解释器模式(Interpreter)
  • cpp qt 一个奇怪的bug
  • 第6章:MATLAB文本数据处理进阶篇的目录 (MATLAB入门课程)
  • 软件杯 深度学习 opencv python 公式识别(图像识别 机器视觉)
  • vscode通过多个跳板机连接目标机(两种方案亲测成功)
  • C++基础复习003
  • Docker Commit提交
  • 百度现在应该怎么去做搜索SEO优化?(川圣SEO)蜘蛛池
  • 登录凭证------
  • matplotlib系统学习记录
  • 【DL】ML系统学习笔记 1
  • ffmpeg视频处理常用命令
  • 前端npm和yarn更换国内淘宝镜像
  • 华为配置OSPF的Stub区域示例
  • 学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面
  • C语言学习大纲
  • Unity URP 如何写基础的曲面细分着色器
  • android pdf框架-8,图片缓存
  • UE5.2 SmartObject使用实践
  • 奇舞周刊第521期:实现vue3响应式系统核心-MVP 模型
  • Mybatis-plus手写SQL如何使用条件构造器和分页
  • Vue的table组件合并行方法
  • 5. C语言字符串处理常用方法
  • ts--(入门到离职系列)