算法设计与分析期末考试 on PTA

本文介绍了算法设计与分析期末考试在PTA平台上的几道典型题目,涉及算法复杂性、贪心算法、分支限界法、回溯法、动态规划等概念。同时,给出了包括求解第k小的数、装箱问题、0-1背包问题的解题思路和算法应用,强调了启发式搜索A*算法在解决八数码难题中的应用。最后,探讨了最长公共子序列问题的递归关系式和解决方案。
摘要由CSDN通过智能技术生成

4-1
算法的复杂性有时间复杂性和空间复杂性之分。

4-2
若存在两个正的常数c和n0,对于任意n≥n0,都有T(n)≤c×f(n),则称T(n)= Ω (f(n))。

4-3
用贪心算法求解的问题一般具有两个重要性质是:
贪心原则和最优子结构性质。

4-4
分支限界法采用
深度
优先的方式搜索解空间,回溯法采用
广度
优先的方式搜索解空间。

4-5
通常,
贪心算法、分支限界、回溯的求解策略是自顶向下求解,
动态规划是自底向上的递推求解。

4-6
回溯法搜索解空间树时,常用的两种剪枝函数为
约束函数和限界函数

4-7
分支限界法主要有
队列式 分支限界法和 优先队列式 分支限界法。
5-1
如下程序的功能是求解n后问题,请将程序补充完整。(每空2分,共10分)

#include <iostream.h>
#include <math.h>
int n,count,*x;
void Swap(int& a,int &b){
   
   int t=a;a=b;b=t; }
bool Check(int i){
       //检查当前第i个皇后的放法是否可行
   for (int k=1;k<i;k++)
       if (
(a[i]==a[j])||(abs(a[i]-a[j])==i-j)
)  return false;
    
else return true
;
}
void Output(){
   
    //以表格的形式输出一个解(x1,x2,…,xn),皇后所在的行列位置为“Q”,其它位置输出“_”。
     count++;
     for ( int i=1;i<=n;i++){
   
         for (j=1;j<=n;j++)
           if (x[i]==j) cout<<" Q";
           else cout<<"_";
         cout<<endl;
     }
 }
void Queen(int i){
   
    if  (i>n)Output();
    else 
        for (int j=i;j<=n;j++){
   
            
x[i] = j
;
            if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值