回溯、取模、日期计算

C++回溯

文章目录

  • C++回溯
    • 1、回溯常见模板
    • 2、取每位数的模
    • 3、回文日期

1、回溯常见模板

/*回溯法模板def func():if 满足条件:return resultfor range 选择列表:选择func()撤销选择 
*/ 

代码示例:1.求1~n的全排列并打印出来。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+5;
int n;
int a[N],vis[N];
void dfs(int dep){if(dep==n+1){for(int i=1;i<=n;i++){cout<<a[i]<<" \n"[i==n];}return;}for(int i=1;i<=n;i++){if(vis[i])continue;vis[i]=1;//a[dep]=i;dfs(dep+1);vis[i]=0;//}}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n;dfs(1);return 0;
}

也可以使用库函数next_permutaition():

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+5;
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n;cin>>n;vector<int> a(n);for(int i=1;i<=n;i++){a[i-1]=i;}do{for(int i=0;i<n;i++)cout<<a[i]<<" \n"[i==n-1];}while(next_permutation(a.begin(),a.end()));	return 0;
}

2、取每位数的模

def isNmp:while(x):t=x%10;if 正确return truex/=10;
return false

3、回文日期

  1. int year = j % 10 * 1000 + (j / 10) * 100 + i % 10 * 10 + i / 10;

    • 这行代码是将给定的月份 i 和天数 j 转换为一个四位数的年份。类似于之前,j 被分成十位和个位,然后乘以相应的权重,而 i 也类似地处理,确保每个数字都在正确的位置上。最后,将它们加起来形成一个四位数的年份。
  2. int sum = year * 10000 + i * 100 + j;

    • 这行代码是将年份、月份和日期合并成一个整数表示一个完整的日期。年份乘以 10000 是为了把它移到正确的位置,月份乘以 100 是为了把它移到正确的位置,最后把日期直接加到末尾即可。
#include<bits/stdc++.h>
using namespace std;
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);// 1   2  3   4   5   6   7   8   9   10   11   12 // 31     31  30  31  30  31  31  30  31   30   31// 判断2月是否是闰年 =>  return x%400==0 || (x%4==0 && x%100!=0)// 闰年 29天 ,平年 28天int y[]={0,31,29,31,30,31,30,31,31,30,31,30,31};int n,m;cin>>n>>m;int ans=0;for(int i=1;i<=12;i++){for(int j=1;j<=y[i];j++){int year=j%10*1000+(j/10)*100+i%10*10+i/10;int sum=year*10000+i*100+j;if(sum>m||sum<n)continue;else ans++;}}cout<<ans;return 0;
}

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

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

相关文章

银行5G短消息应用架构设计

&#xff08;一&#xff09;RCS简介 1.1 RCS的提出与标准制定 RCS(Rich Communication Services & Suite&#xff0c;富媒体通信)是GSMA(Groupe Speciale Mobile Association&#xff0c;全球移动通信系统协会)在2008年提出的一种通讯方式&#xff0c;RCS融合了语音、消息…

基于STM32的智能快递箱设计与实现

基于STM32的智能快递箱设计与实现 **摘要&#xff1a;**随着电子商务的飞速发展&#xff0c;快递业务日益繁荣&#xff0c;智能快递箱作为解决“最后一公里”配送难题的有效手段&#xff0c;受到了广泛关注。本文设计并实现了一款基于STM32微控制器的智能快递箱系统&#xff0…

springboot3+jdk17+MP整合最新版jersey详细案例,正真做到拿来即用

如题&#xff0c;springboot3.x java17 MP 整合最新jersey&#xff0c;各种请求类型&#xff08;实战/详解&#xff09; 文件上传下载 jersey资源注册 拦截器&#xff08;JWT&#xff09; 跨域处理 全局异常 Valid注解校验 等等 &#xff0c;除非你必须整合security&am…

SpringCloud Alibaba Nacos简单应用(二)

&#x1f600;前言 本篇博文是关于SpringCloud Alibaba Nacos简单应用&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的…

【spring】@Lazy注解学习

Lazy介绍 Lazy 注解是一个配置注解&#xff0c;用于指示 Spring 容器在创建 bean 时采用延迟初始化的策略。这意味着&#xff0c;除非 bean 被实际使用&#xff0c;否则不会被创建和初始化。 在 Spring 框架中&#xff0c;默认情况下&#xff0c;所有的单例 bean 在容器启动时…

【Linux】模拟实现shell(bash)

目录 常见的与shell互动场景 实现代码 全部代码 homepath()接口 const char *getUsername()接口 const char *getHostname()接口 const char *getCwd()接口 int getUserCommand(char *command, int num)接口 void commandSplit(char *in, char *out[])接口 int execut…

aurora仿真使用等

IP设置 代码 aurora_8b10b aurora_8b10b_inst (/**********************************************************************************///axi_stream tx.s_axi_tx_tdata(s_axi_tx_tdata), // input wire [0 : 31] s_axi_tx_tdata.s_axi_tx_tkeep(s_axi_tx_…

2024开年首展,加速科技展台“热辣滚烫”

3月20日&#xff0c;备受瞩目的半导体行业盛会SEMICON China 2024在上海新国际博览中心盛大启幕&#xff0c;展会汇集了来自全球的半导体领域顶尖企业与专业人士。加速科技作为业界领先的半导体测试设备供应商携重磅测试设备及解决方案精彩亮相&#xff0c;展示了最新的半导体测…

KIMI爆了!对比文心一言和通义千问它到底有多强?

原文:赵侠客 前言 最近国产大模型KIMI爆了大部分人应该都知道了&#xff0c;从我个人的感受来看这次KIMI爆了我不是从技术领域接触到的&#xff0c;而是从各种金融领域接触到的。目前国内大模型可以说是百模大战&#xff0c;前几年新能源大战&#xff0c;今年资本割完韭菜后留…

简述TCP的三次握手与四次挥手

A表示客户client&#xff0c;即主动发起连接的应用程序&#xff1b;B表示服务器&#xff0c;即被动等待连接建立的应用进程。 TCP建立连接&#xff0c;三报文握手&#xff0c;也可以是四报文握手。 总流程可以简化为&#xff1a;A向B发送连接请求&#xff0c;B向A确认&#xf…

JAVA学习-NIO.Files工具类

Java NIO&#xff08;New IO&#xff09;提供了一组用于处理文件和文件系统的工具类&#xff0c;其中包含了Files工具类。Files工具类提供了对文件和目录进行操作的静态方法&#xff0c;如创建、复制、删除、移动、重命名等等。以下是Files工具类的特点、常用方法以及与其他类的…

面试宝典:MySQL索引进阶深度分析

在数据库高级开发的面试中&#xff0c;索引是一个绕不开的重点话题。MySQL中的索引机制对于查询性能有着决定性的影响。本文将深入探讨MySQL索引的高级特性和优化策略&#xff0c;帮助开发者在面试中展现出对数据库索引机制的深刻理解和高级应用能力。 索引的基本概念 MySQL中…

Linux:Prometheus的源码包安装及操作(2)

环境介绍 三台centos 7系统&#xff0c;运行内存都2G 1.prometheus监控服务器&#xff1a;192.168.6.1 主机名&#xff1a;pm 2.grafana展示服务器:192.168.6.2 主机名&#xff1a;gr 3.被监控服务器&#xff1a;192.168.6.3 …

C++之循环中使用auto关键字

在C中&#xff0c;auto是一个类型说明符&#xff0c;用于自动推导变量的类型。编译器会根据初始化表达式的类型来自动推断变量的类型。使用auto可以使代码更加简洁&#xff0c;并减少手动键入类型信息的需要&#xff0c;尤其是在处理复杂类型或模板时。 在C中&#xff0c;使用…

codeTop102:二叉树的层序遍历

前言 在已知BFS的方式后&#xff0c;知道每次从队列中取一个节点&#xff0c;就要将这个节点的所有子节点按照顺序放入队列。 难点在于怎么确定将同一层的节点放在一个数组里面的输出&#xff0c;也就是输出一个二维数组&#xff1f; 解决方法: 每次while循环将队列上轮放入的…

android四大组件之一ContentProvider

ContentProvider ContentProvider 是 Android 中用于实现数据共享的一种组件&#xff0c;它可以让不同的应用程序之间共享数据。数据通常以表格的形式组织&#xff0c;类似于数据库的表。其他应用程序可以通过 ContentResolver 来查询或修改这些数据。 ContentProvider、Conten…

什么是C++中的指针和引用?它们有什么区别?/ 数组名和指针(这里为指向数组首元素的指针)区别?

一、什么是C中的指针和引用&#xff1f;它们有什么区别&#xff1f; 在C中&#xff0c;指针和引用都是重要的概念&#xff0c;它们用于处理内存地址和变量之间的关系&#xff0c;但两者之间存在明显的区别。 指针是一个特殊的变量&#xff0c;其值为另一个变量的地址。换句话…

【课程】Mysql优化

Mysql优化教程01-关键技术.wmvMysql优化教程02-表的设计.wmvMysql优化教程03-慢查询(一).wmvMysql优化教程04-慢查询(二).wmvMysql优化教程05-慢查询(三).wmv Mysql优化教程06-索引(一).wmv Mysql优化教程07-索(二).wmv Mysql优化教程08-索引(三).wmv Mysql优化教程09-索(四).w…

Vue2(十):全局事件总线、消息订阅与发布、TodoList的编辑功能、$nextTick、动画

一、全局事件总线&#xff01;&#xff01; 任意组件间通信 比如a想收到别的组件的数据&#xff0c;那么就在a里面给x绑定一个demo自定义事件&#xff0c;所以a里面就得有一个回调函数吧&#xff0c;然后我要是想让d组件给a穿数据&#xff0c;那就让d去触发x的自定义事件&…

洛谷_P2678 [NOIP2015 提高组] 跳石头_python写法

P2678 [NOIP2015 提高组] 跳石头 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) d, n, m map(int,input().split())data [0] for i in range(n):value int(input())data.append(value) data.append(d)def check(mid):now 0cnt 0for i in range(1,n2):if abs(data[now]-da…