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

【回溯与邻里交换】纸牌三角

1.回溯算法

旋转有3种可能,镜像有2种

所以最后次数:counts/3/2

#include<iostream>
using namespace std;int num[9];
int counts=0;
bool bools[9];//默认为false 
int dfs(int step){if(step==9){//索引 if((num[0]+num[1]+num[2]+num[3]==num[3]+num[4]+num[5]+num[6])&&(num[0]+num[1]+num[2]+num[3]==num[6]+num[7]+num[8]+num[0]))counts++;return 0;}for(int i=0;i<9;i++){if(!bools[i]){bools[i]=true;num[step]=i;dfs(step+1);bools[i]=false;}}
}
int main(){dfs(0);cout<<counts/6;
}

2.邻里交换

#include<iostream>
#include<algorithm>
using namespace std;int a[]={1,2,3,4,5,6,7,8,9};
int counts=0;
int f(int a[],int step){if(step==sizeof(a)-1){//step为索引 if(a[0]+a[1]+a[2]+a[3]==a[3]+a[4]+a[5]+a[6]&&a[0]+a[1]+a[2]+a[3]==a[6]+a[7]+a[8]+a[0])counts++;return 0;}for(int i=step;i<sizeof(a);i++){int x=a[i];//交换 a[i]=a[step];a[step]=x;f(a,step+1);int y=a[i];//还原 a[i]=a[step];a[step]=y;}
}
int main(){f(a,0);cout<<counts/6;
} 

http://www.lryc.cn/news/328534.html

相关文章:

  • 微服务(基础篇-004-Feign)
  • Linux IRC
  • 五、Elasticsearch 集成
  • Qt 完成图片的缩放拖动
  • Linux 内核工具 iptables 配置TCP/UDP端口转发(命令参考)
  • love 2d Lua 俄罗斯方块超详细教程
  • SpringBoot+ElasticSearch实现文档内容抽取、高亮分词、全文检索
  • 利用Redis实现简单的短信登录
  • 在 Linux 中通过 SSH 执行远程命令时,无法自动加载环境变量(已解决)
  • c++使用类的一些注意事项
  • C++蓝桥考级一级到十八级的考点内容整理
  • C++智能指针简单剖析
  • mysql笔记:25. docker环境中mysql主从复制、主主复制实操
  • 大数据面试专题 -- kafka
  • 深度学习入门简单实现一个神经网络
  • win11 环境配置 之 Jmeter(JDK17版本)
  • Windows下载使用nc(netcat)命令
  • istio 设置 istio-proxy sidecar 的 resource 的 limit 和 request
  • flutter弹框
  • 2013年认证杯SPSSPRO杯数学建模B题(第一阶段)流行音乐发展简史全过程文档及程序
  • 代码随想录算法训练营第39天 | 62.不同路径, 63不同路径II
  • Redis 的慢日志
  • 第十四届蓝桥杯第十题:蜗牛分享
  • 不懂技术的老板,如何避免过度依赖核心技术人员
  • Vue系列-el挂载
  • python--os和os.path模块
  • 前端通用命名规范和Vue项目命名规范
  • NTP服务搭建
  • Linux离线安装mysql,node,forever
  • WPF中获取TreeView以及ListView获取其本身滚动条进行滚动