剪枝例题一道

例题一

Code force round
我的思路,DFS遍历所有x,y,然后用set记录所有k,但是TLE了,最后发现,可以应用剪枝,如果一个x,y得出的k已经在set中存在了,那么不用再继续DFS后续了。

#include "bits/stdc++.h"
using namespace std;
using ll = long long;
#define For for(int i=1;i<=n;i++)
#define Whole(x) for(auto item:x)
const int N = 2e5;
set<int> ans;
int l,a,b;
void dfs(int sa,int sb){int k=l;k/=sa;k/=sb;if(ans.find(k!=ans.end())//这两行return;//是剪枝,避免重复DFSans.emplace(k);if(k%a==0)dfs(sa*a,sb);if(k%b==0)dfs(sa,sb*b);
}
void inline solve() {cin>>a>>b>>l;ans.clear();dfs(1,1);cout<<ans.size()<<endl;
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int num = 1;cin >> num;while (num--) {solve();}return 0;
}

还有暴力遍历法
令l/a=la l/b=lb(余数此处不显示0)
则遍历l除以的a的次数从0到la次,分别看能除以b几次,得到不同的x y组合,从而得到不同的k加入到set里面。

#include "bits/stdc++.h"using namespace std;
using ll = long long;
#define For for(int i=1;i<=n;i++)
#define rFor for(int i=n;i>0;i--)
#define Whole(x) for(auto item:x)
const int N = 2e5;void inline solve() {int a,b,l;cin>>a>>b>>l;set<int> ans;while(1){int x=l;while(1){ans.emplace(x);if(x%b!=0){break;}x/=b;}if(l%a!=0){break;}l/=a;}cout<<ans.size()<<endl;
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int num = 1;cin >> num;while (num--) {solve();}return 0;
}

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

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

相关文章

react实战——react旅游网

慕课网react实战 搭建项目问题1.按照官网在index.tsx中引入antd出错&#xff1f;2.typescript中如何使用react-router3.react-router3.1 V63.2 V53.3V6实现私有路由 4.函数式组件接收props参数时定义数据接口&#xff1f;5.使用TypeScript开发react项目&#xff1a;6.要使一个组…

SQLite3中的callback回调函数注意的细节

调用 sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)该例程提供了一个执行 SQL 命令的快捷方式&#xff0c; SQL 命令由 sql 参数提供&#xff0c;可以由多个 SQL 命令组成。 在这里&#xff0c; 第一个参数 sqlite3 是打开的数据库对…

代码随想录算法训练营第day41|背包理论基础、416. 分割等和子集

目录 a.背包理论基础——01背包 1.二维数组的01背包表示 2.一维滚动数组表示 b. 416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; a.背包理论基础——01背包 背包问题分类&#xff1a; 对于面试的话&#xff0c;其实掌握01背包&#xff0c;和完全背包&#xff…

Excel F4键的作用

目录 一. 单元格相对/绝对引用转换二. 重复上一步操作 一. 单元格相对/绝对引用转换 ⏹ 使用F4键 如下图所示&#xff0c;B1单元格引用了A1单元格的内容。此时是使用相对引用&#xff0c;可以按下键盘上的F4键进行相对引用和绝对引用的转换。 二. 重复上一步操作 ⏹添加或删除…

SSM框架,MyBatis-Plus的学习(下)

条件构造器 使用MyBatis-Plus的条件构造器&#xff0c;可以构建灵活高效的查询条件&#xff0c;可以通过链式调用来组合多个条件。 条件构造器的继承结构 Wrapper &#xff1a; 条件构造抽象类&#xff0c;最顶端父类 AbstractWrapper &#xff1a; 用于查询条件封装&#xf…

首屏性能优化:提升用户体验的秘籍

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

复盘-excel

excel-选列没有用&#xff0c;选小标题才可以 将簇状柱形图放置在一个新表上##### excel: 添加数据模型时&#xff0c;要通过套用表格格式与外部断开连接 透视分析2010年人数未解决(第四套&#xff09; 通过日期显示星期几 判断星期几 因为前面已经通过星期六&#xff0c…

03_Tomcat

文章目录 Tomcat概念自制简易的服务器JavaEE规范Tomcat安装Tomcat启动Tomcat的资源部署直接部署虚拟映射 Tomcat的设置 Tomcat 概念 服务器&#xff1a;两层含义。 软件层面&#xff1a;软件&#xff0c;可以将本地的资源发布到网络中&#xff0c;供网络上面的其他用户来访问…

WPF 防止按钮Click时间多次点击响应

可能不是最好的办法&#xff0c;但是用起来效果也还是可以的。 原理&#xff1a;通过IsEnabled属性来控制按钮状态。btnConfirm.IsEnabled / this.IsEndbled 这两种方式是等价的。 案例比较简单&#xff0c;如果后期做开发的话代码量变大&#xff0c;只在结尾添加 this.IsEn…

网络综合布线

综合布线的英文表达为Structured Cabling System&#xff08;通俗表达为Cabling System&#xff0c;简称CSC&#xff0c;最早由AT&T提出&#xff09;或Premises Distribution System&#xff08;PDS&#xff0c;目前国标采用这一称法&#xff09;。   综合布线起源与发展…

Druid数据库连接池配置

客户端DruidDataSource 配置项描述建议值maxWait从连接池中获取connetion的最长等待时间10s TimeBetweenEvictionRunsMillis 轮询检查数据库连接池状态的间隔60s MinEvictableIdleTimeMillis 躺在连接池没有干活的空闲状态的最小值300s MaxEvictableIdleTimeMillis 1.躺在连接…

grafana table合并查询

注&#xff1a;本文基于Grafana v9.2.8编写 1 问题 默认情况下table展示的是一个查询返回的多个field&#xff0c;但是我想要的数据在不同的metric上&#xff0c;比如我需要显示某个pod的读写IO&#xff0c;但是读和写这两个指标存在于两个不同的metirc&#xff0c;需要分别查…

LeetCode27: 移除元素

题目描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

【DevOps基础篇】容器化架构基础设施监控方案

【DevOps基础篇】容器化架构基础设施监控方案 目录 【DevOps基础篇】容器化架构基础设施监控方案要监视什么不同监控系统方案比较1. Datadog2. Prometheus3. ELK(Elasticsearch、Logstash、Kibana)4. Sysdig5. 自行打造!如何选择总结推荐超级课程: Docker快速入门到精通 当…

Android谈谈ArrayList和LinkedList的区别?

Android中的ArrayList和LinkedList都是Java集合框架中的List接口的实现&#xff0c;但它们在内部数据结构和性能特性上有所不同&#xff1a; 1. **内部数据结构**&#xff1a; - ArrayList是基于动态数组&#xff08;可调整大小的数组&#xff09;实现的。它在内存中是连续…

ActivityRecord中Activity生命周期变化

本文基于AOSP13分析 ActivityRecord一些关键的属性&#xff1a; final class ActivityRecord extends WindowToken implements WindowManagerService.AppFreezeListener {// pause 超时时间private static final int PAUSE_TIMEOUT 500;// stop 超时时间private static fina…

Android中的抽象类与接口的区别是什么?谈谈List, Set, Map的区别?

目录 抽象类与接口的区别是什么&#xff1f; 谈谈List, Set, Map的区别&#xff1f; Android抽象类与接口的区别是什么&#xff1f; Android抽象类和接口在Java中都是用来实现多态和继承的重要特性&#xff0c;但它们之间存在一些关键的区别&#xff1a; 1. **定义和使用场…

多种方法求解数组排序

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

C++——string模拟实现

前言&#xff1a;上篇文章我们对string类及其常用的接口方法的使用进行了分享&#xff0c;这篇文章将着重进行对这些常用的接口方法的内部细节进行分享和模拟实现。 目录 一.基础框架 二.遍历字符串 1.[]运算符重载 2.迭代器 3.范围for 三.常用方法 1.增加 2.删除 3.调…

数据库-第十一章 并发控制【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 数据库系统概论系列文章传送门&#xff1a; 第一章 绪论 第二/…