北航OJ 0009~0015 2014级第一次算法上机

这篇博客记录了作者在2017年完成北航OJ 0009到0015题目的过程,包括零崎的人间冒险系列和博弈问题。通过这些题目,作者体验了从初学者到理解递归、博弈论和搜索算法的转变,同时也提到了在编程中遇到的挑战,如超出数据类型范围和搜索解决方案的经验。
摘要由CSDN通过智能技术生成

这是我2017年8月底写完的练习题,那时还什么都不会,到现在看这种题已经特别简单了。不过还是有很长一段路要走啊。(你可能发现有两个抄袭的,source直接百度就能找到了…,想了很久都没想出来,自己写又全是BUG,入门还真是不容易呀。)这是给我自己看的总结,也算是重新思考一遍算法的思想吧。
0009 零崎的人间冒险Ⅰ
题意:就是很普通的递归汉诺塔

#include <stdio.h>
int main(){
    int n;
    void move(int n,char a,char b,char c);
    while(~scanf("%d\n",&n)){
        move(n,'A','B','C');
        printf("\n");
    }
}
void move(int n,char a,char b,char c){
    if(n==1)printf("%c to %c\n",a,c);
    else{
        move(n-1,a,c,b);
        printf("%c to %c\n",a,c);
        move(n-1,b,a,c);
    }
}

0010 零崎的人间冒险Ⅱ
设刚为A,怂为B,并将之看作加长字符串,根据题意A不能连续出现,那么我们有:
①如果在长度为i的字符串str加后缀A,那么str[i-1]不等于A
②如果在长度为i的字符串str加后缀B,那么str[i-1]为任意。
故这样的字符串个数设以A为结尾的有FA个,以B为结尾的有FB个,总共F个。

FA[1]=1,FB[1]=1
FA[n]</
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值