博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20190120 OJ递归
阅读量:4176 次
发布时间:2019-05-26

本文共 2023 字,大约阅读时间需要 6 分钟。

烤鸡
打靶问题
八皇后问题
背包问题
一、(ty 1-2) 烤鸡:
#include 
using namespace std;int n, kind = 0;int m1[10000][10], m2[10];void rec(int, int);int main(){ cin >> n; if (n > 30 || n < 10) //直接得答案 { cout << 0 << endl; return 0; } rec(0, 0); cout << kind << endl; for (int j = 0; j < kind; j++) { for (int i = 0; i < 10; i++) cout << m1[j][i] << " "; cout << endl; } return 0;}void rec(int total, int depth) //10-30时暴力深搜 { if (depth == 10) { if (total == n) { for (int j = 0; j < 10; j++) m1[kind][j] = m2[j]; kind++; } } else if (total >= n) return; else { for (int i = 1;i <= 3; i++) { m2[depth] = i; rec(total+i, depth+1); } }}
二、打靶问题:
/**打靶问题:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少?思路:这道题的思路与字符串的组合很像,用递归解决。一次射击有11种可能,命中1环至10环,或脱靶。*/#include 
#include
#include
#include
#include
using namespace std;//函数功能 : 求解number次打中sum环的种数//函数参数 : number为打靶次数,sum为需要命中的环数,result用来保存中间结果,total记录种数void ShootProblem_Solution(int number, int sum, vector
&result, int &total){ if (sum < 0 || number * 10 < sum) //加number * 10 < sum非常重要,它可以减少大量的递归,类似剪枝操作 { return; } if (number == 1) //最后一枪 { if (sum <= 10) //如果剩余环数小于10,只要最后一枪打sum环就可以了 { for (unsigned i = 0; i < result.size(); i++) { cout << result[i] << ' '; } cout << sum << endl; total++; return; } else { return; } } for (unsigned i = 0; i <= 10; i++) //命中0-10环 { result.push_back(i); ShootProblem_Solution(number-1, sum-i, result, total); //针对剩余环数递归求解 result.pop_back(); }}void ShootProblem(int number, int sum){ int total = 0; vector
result; ShootProblem_Solution(number, sum, result, total); cout<<"total nums = "<
<
八皇后问题:

   国际象棋中的皇后,可以横向、纵向、斜向移动。如何在一个8*8的棋盘上放置8个皇后,使得任意两个皇后都不在同一条横线、竖线、斜线方向上

   下面这个链接给出了易懂的讲解,为java语言描述:
  
   下面是C++语言描述的代码:

转载地址:http://fvtai.baihongyu.com/

你可能感兴趣的文章
Docker容器启动时的第一个进程的设置总结
查看>>
eclipse遇到的第一个问题
查看>>
Java中的内存管理(栈和堆、方法区)
查看>>
二进制 转换方法
查看>>
数组相关(定义、访问、遍历、复制/扩容、排序)
查看>>
面向对象基础梳理
查看>>
ArrayList数组集合方法一览
查看>>
序列化与反序列化
查看>>
IO流总结
查看>>
二叉树面试题(部分)
查看>>
关于Java继承-继承以后构造器的实现
查看>>
关于Java继承之重写与重载
查看>>
sql sever时间函数解析(一)
查看>>
数据库函数
查看>>
abstract(抽象)修饰符,可以修饰类和方法
查看>>
快速转载博客之复制原文HTML代码
查看>>
进制转换
查看>>
SQL 快速参考
查看>>
从钉钉后台API获取企业通信录
查看>>
从钉钉后台API获取企业通讯录以后,获取每个人的钉钉运动步数
查看>>