备战蓝桥杯---递归与DFS刷题2

1.

数据范围允许直接暴力把所有组合都写一遍,我们用Pair来存,在sort中分式比较只要把自己的分子与对方的分母乘比较即可,下面介绍一下st树的写法,具体原理就不说了,它是先[0/1,1/1]然后取分子分母的平均化成两个区间:[0/1,1/2][1/2,1/1]依次类推变成二叉树,然后答案就是分界点的中序遍历,下面是AC代码:

#include<bits/stdc++.h>
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(){cin>>n;cout<<"0/1"<<endl;dfs(1,0,1,1);cout<<"1/1"<<endl;
}

2.

我们假设A=p1^k1*p2^k2....*pn^kn;

那么A^B=p1^(k1*B)*.....

对于p1^0+p1^1....+p1^n如何不用逆元的情况下快速求呢?

sum(p,k)=(p^0+...p^(k/2))+p^(k/2+1)*(p^0+...p^(k/2))=(1+p^(k/2+1))*sum(p,k/2),

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int mod=9901;
int qq(int a,int k){a%=mod;int res=1;while(k){if(k&1) res=res*a%mod;a=a*a%mod;k>>=1;}return res;
}
int sum(int p,int k){if(k==0) return 1;if(!k%2)  return (sum(p,k-1)+qq(p,k))%mod;return (1+qq(p,k/2+1))%mod*sum(p,k/2)%mod;
}
signed main(){int A,B;cin>>A>>B;int res=1;for(int i=2;i<=A;i++){int s=0;while(A%i==0){s++;A/=i;}if(s){res=res*sum(i,s*B)%mod;}}if(!A) res=0;cout<<res<<endl;
}

3.

首先,我们看一下矩阵旋转公式:

[x,y]*[cosa,sina]

        [-sina,cosa]

我们先考虑一下子问题,我们把当前值-1,%当前任意象限的容量就得到了在n-1级上按照1划分的位置,然后就按照象限旋转即可,具体见下面AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
struct Point
{LL x, y;
};
Point calc(LL n, LL a)
{if (n == 0) return {0, 0};LL block = 1ll << n * 2 - 2, len = 1ll << n - 1;auto p = calc(n - 1, a % block);LL x = p.x, y = p.y;int z = a / block;if (z == 0) return {y, x};else if (z == 1) return {x, y + len};else if (z == 2) return {x + len, y + len};return {len * 2 - 1 - y, len - 1 - x};
}int main()
{int T;scanf("%d", &T);while (T -- ){LL n, a, b;cin>>n>>a>>b;auto pa = get(n, a - 1);auto pb = get(n, b - 1);double dx = pa.x - pb.x, dy = pa.y - pb.y;printf("%.0lf\n", sqrt(dx * dx + dy * dy) * 10);}
}

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

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

相关文章

web学习笔记(五十三)身份认证

目录 1.Web 开发模式 1.1 服务端渲染的 Web 开发模式 1.2 服务端渲染的优缺点 1.3 前后端分离的 Web 开发模式 1.4 如何选择 Web 开发模式 2. 身份认证 2.1 Session 认证机制 3. 在 Express 中使用 Session 认证 3.1 安装express-session 中间件 3.2 配置 express-ses…

electron 打不同环境的包

我用的打包工具: electron-builder 1、在package.json 文件的同级下创建2个js文件 electron-builder-test.config.js electron-builder.config.js electron-builder-test.config.js const basejson require(./electron-builder.config.js); module.exports {extraMetada…

智能变电站协议系列-5、IEC 104协议细化解读(IEC 60870以及如何获取对应国标和行标)

一、前言 通过之前整体性的协议分析&#xff0c;目前确定先基于IEC104做深入分析&#xff0c;来结合分析电网常见的业务&#xff0c;以此从协议侧关联深入到业务侧。在国内该标准也应用比较稳定和广泛了&#xff0c;所以研究104协议相关资料也会更全一些。 二、资料及标准收集…

【强化学习的数学原理-赵世钰】课程笔记(二)贝尔曼公式

【强化学习的数学原理-赵世钰】课程笔记&#xff08;二&#xff09;贝尔曼公式 一. 内容概述 1. 第二章主要有两个内容 &#xff08;1&#xff09;一个核心概念&#xff1a;状态值&#xff08;state value&#xff09;&#xff1a;从一个状态出发&#xff0c;沿着一个策略我…

OWASP TOP10 漏洞详解

前言 该内容是 OWASP TOP 10 的学习笔记&#xff0c;笔记内容来源 B 站龙哥的视频【12.Top漏洞10&#xff1a;服务器请求伪造_哔哩哔哩_bilibili】 一、访问控制崩溃 概念 未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据&#xf…

QA测试开发工程师面试题满分问答9: Python中内存管理的概念、原理、使用

概念原理 Python中的内存管理是由解释器自动处理的&#xff0c;它使用引用计数和垃圾回收机制来管理内存。以下是Python内存管理的一些关键概念、设计原理和最佳实践&#xff0c;以帮助您高效使用和管理内存&#xff1a; 引用计数&#xff1a;Python使用引用计数来追踪对象的引…

Shell学习 - 2.25 Shell $[]:对整数进行数学运算

和 (())、let 命令类似&#xff0c;$[] 也只能进行整数运算。 Shell $[] 的用法如下&#xff1a; $[表达式] $[] 会对表达式进行计算&#xff0c;并取得计算结果。如果表达式中包含了变量&#xff0c;那么你可以加$&#xff0c;也可以不加。 Shell $[] 举例&#xff1a; [c.bia…

delphi 中注册表的操作

例&#xff1a;列出注册表"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"中的所有键值到界面上或文本中&#xff1b;并把自己做的这个程序设置为开机启动。(写到前面那个注册表路径上就生效了) unit Unit1;interfaceusesWindows, Messages, Sys…

基于JAVA+SSM+微信小程序+MySql的图书捐赠管理系统设计与实现(前后端分类)

一、项目背景介绍&#xff1a; 在当今社会&#xff0c;图书捐赠是一种普遍而有益的行为&#xff0c;旨在促进阅读、教育和知识传播。图书捐赠可以帮助改善教育资源不足的地区、学校和社区的阅读环境&#xff0c;提供更多的学习机会和知识获取途径。随着互联网和移动技术的发展&…

安卓APP的开发:为了安全的设计

安卓APP的开发:为了安全的设计 安卓默认是为了安全和隐私而设计的.隐私方面的设计聚焦于最小化. 最小化权限请求,最小化位置读取,还有最小化跨APP的数据可见性. 为了安全的设计,遵循如下的最佳实践:加密,完整性和授权. 保护用户隐私 最小化权限请求 请求你的APP功能需要的最…

Linux初学(十六)NFS文件共享

一、NFS 1.1 简介 NFS&#xff08;Network File System&#xff0c;网络文件系统&#xff09;是一种分布式文件系统协议&#xff0c;允许不同的计算机之间通过网络共享文件和目录。 NFS类似于类似于Windows文件共享 将Linux的一个目录共享到网络中&#xff0c;网络中的其他所有…

Redis-更新策略,缓存穿透,缓存雪崩,缓存击穿

Redis-更新策略,缓存穿透,缓存雪崩,缓存击穿 1.缓存更新 策略 淘汰策略超时剔除主动更新 更新策略&#xff1a;先修改数据库还是先删除缓存 结论&#xff1a;先修改数据库&#xff0c;因为缓存的操作比较快&#xff0c;容易产生数据不一致更新缓存还是删除缓存&#xff1f; …

google tool:protobuf(持续更新)

protobuf是google推出的一个非常好用的工具, protobuf version diff 在不同protobuf的版本间会有细微的不同。 在2.4.0及更早版本中,生成的C++代码会将枚举类型的值放在全局命名空间中,而不是将枚举附属于具体的枚举类型作用域之下。这种情况下,枚举值通过ENUMTYPE_ENUMV…

网络协议——HTTP协议

目录 ​编辑 一&#xff0c;HTTP协议基本认识 二&#xff0c;认识URL 三&#xff0c;http协议的格式 1&#xff0c;发送格式 2&#xff0c;回应格式 四&#xff0c;服务端代码 五&#xff0c;http报文细节 1&#xff0c;Post与Get方法 2&#xff0c;Content_lenth 3&…

运维:Linux操作系统

一、Linux基础命令 1、ls命令 功能&#xff1a;列出文件夹信息 语法&#xff1a;ls [-l -h -a] [参数] 参数&#xff1a;被查看的文件夹&#xff0c;不提供参数&#xff0c;表示查看当前工作目录 -l&#xff0c;以列表形式查看 -h&#xff0c;配合-l&#xff0c;以更加人性…

【前端webpack5高级优化】提升打包构建速度几种优化方案

HotModuleReplacement&#xff08;HMR/热模块替换&#xff09; 开发时我们修改了其中一个模块代码&#xff0c;Webpack 默认会将所有模块全部重新打包编译&#xff0c;速度很慢 所以我们需要做到修改某个模块代码&#xff0c;就只有这个模块代码需要重新打包编译&#xff0c;…

老王讲IT:函数基础

IT老王&#xff1a;函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数&#xff0c;就是把 具有独立功能的代码块 组织为一个小模块&#xff0c;在需要的时候 调用 函…

html加载后端数据较慢问题记载

标题: html加载后端数据较慢问题记载 日期: 2024-04-06 22:29:00 标签: [html, flask] 分类: [Python, Flask] 网站页面最近加载很慢&#xff0c;不知道为什么&#xff0c;这里记录一下&#xff0c;一步一步查问题的思路。 说下环境 python3.8 flask2.3.3 mysql5.7 问题 刷…

爬虫实战一、Scrapy开发环境(Win10+Anaconda3)搭建

#前言 在这儿推荐使用Anaconda进行安装&#xff0c;并不推荐大家用pythonpip安装&#xff0c;因为pythonpip的坑实在是太多了。 #一、环境中准备&#xff1a; Win10&#xff08;企业版&#xff09;Anaconda3-5.0.1-Windows-x86_64&#xff0c;下载地址&#xff0c;如果打不开…

每日OJ题_两个数组dp①_力扣1143. 最长公共子序列

目录 力扣1143. 最长公共子序列 解析代码 力扣1143. 最长公共子序列 1143. 最长公共子序列 难度 中等 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样…