-
贪心策略、算法的相关理解
一、选点问题的贪心算法分析 问题定义 给定直线上 n 个闭区间 [a1,b1],[a2,b2],...,[an,bn],选择最少的点,使每个区间至少包含一个选定点。 贪心策略 排序:将所有区间按右端点从小到大排序。 选点:初始化选点 p=b1(排序后第一个区间的右端点),计数 coun -
实验六
实验任务1: contestant.hpp 1 #pragma once 2 #include <iomanip> 3 #include <iostream> 4 #include <string> 5 6 struct Contestant { 7 long id; // 学号 8 std::st -
实验6
实验任务1: 源代码contestant.hpp 1 #pragma once 2 #include<iomanip> 3 #include<iostream> 4 #include<string> 5 6 struct Contestant{ 7 long id; 8 std::string na -
实验六
任务一: contestant.hpp 1 #pragma once 2 #include<iomanip> 3 #include<iostream> 4 #include<iostream> 5 struct Contestant 6 { 7 long id; 8 std::string name -
第四次作业
一、选点问题分析与算法详解 你需要解决的是数轴上的选点问题:给定n个闭区间,选取最少的点使得每个区间内至少有一个点。 贪心策略 将区间按右端点升序排序,遍历区间时选择当前区间的右端点作为选点(仅当当前区间不包含已选点时)。 排序:将所有闭区间按照右端点bi从小到大的顺序进行排序。 选点:初始化一个点 -
算法第五章作业
一、回溯法分析最小重量机器设计问题 问题前提:机器包含 n 个部件,每个部件有 m 个供应商可选;wij 是第 i 个部件选第 j 个供应商的重量,cij 是对应成本;要求总成本不超过预算 C,总重量最小。 1.1 解空间 解是一个 n 维向量 X = (x₁, x₂, ... , x n),其中 -
第四章
从代码可知,该问题是区间选点问题,目标是用最少的点覆盖所有区间,每个点至少落在一个区间内。 贪心策略 步骤1:将所有区间按右端点从小到大排序; 步骤2:选择第一个区间的右端点作为第一个选点; 步骤3:依次遍历后续区间,若当前区间的左端点大于已选的最后一个点,则选择当前区间的右端点作为新的选点,重复此 -
算法第五章作业
1.1 解空间 问题的解可以表示为一个长度为 n 的序列 解空间规模为m的n次方,属于组合型问题。 1.2 解空间树 解空间树是一棵 m 叉树: 第i层表示对第i个部件的选择 每个结点向下分出m个子结点,对应不同供应商 从根到叶子的一条路径对应一个完整的机器设计方案 1.3 结点的状态值 每个结点表 -
NUIST-OOP-LAB06
实验6 文件I/O与异常处理 一、实验目的 会用标准 I/O 流 ( iostream / fstream ) 完成控制台和文件的读/写,并处理读/写过程中的异常。 会用操控符及流成员函数控制数据格式。 会用 throw/try/catch 及标准库异常类处理异常,并能解释异常处理流程。 能综合应用 -
实验6
实验任务4 1 #include <stdio.h> 2 #define N 10 3 4 typedef struct { 5 char isbn[20]; // isbn号 6 char name[80]; // 书名 7 char author[80]; // 作者 8 double sale -
实验六
任务4 1 #include <stdio.h> 2 #define N 10 3 4 typedef struct { 5 char isbn[20]; // isbn号 6 char name[80]; // 书名 7 char author[80]; // 作者 8 double sales_ -
第五次作业
回溯算法是通过递归尝试所有可能的解路径,走不通就回退到上一步换路径的暴力枚举策略,核心是尝试-回退,还能通过剪枝减少无效计算。 它的关键特点: 1. 递归驱动:每一层递归对应一个决策选择(如选/不选物品)。 2. 状态回溯:尝试后恢复状态,保证其他路径不受影响。 3. 可选剪枝:提前排除无效路径,优 -
实验6
实验任务4 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 10 4 5 typedef struct { 6 char isbn[20]; 7 char name[80]; 8 char author[80]; 9 double sal -
实验六
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #define N 10 4 5 typedef struct { 6 char isbn[20]; // isbn号 7 char name[80]; // 书名 8 char aut -
算法第五章作业
关于最小重量机器设计问题的回溯法分析 1.1 解空间 “最小重量机器设计问题”的解空间由所有可能的部件供应商选择方案构成。具体来说,若机器由 m 个部件组成,每个部件可从 n 个供应商中选择,则解空间为每个部件分配一个供应商编号,所有可能的组合数为 n的m次方。每一个解可以表示为一个长度为 m 的向 -
实验六
task 4 源代码: 1 #include<stdio.h> 2 #define N 10 3 4 typedef struct{ 5 char isbn[20]; 6 char name[80]; 7 char author[80]; 8 double sales_price; 9 int sa -
实验6
实验任务1 源代码: contestant.hpp 点击查看代码 #pragma once #include <iomanip> #include <iostream> #include <string> struct Contestant { long id; std::string name; -
高级语言程序设计课程第十次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15596 学号:102400116 姓名:黄博文 (1)编写一个程序, -
实验6
实验任务4 源代码 1 #include <stdio.h> 2 #define N 10 3 #include<stdlib.h> 4 typedef struct { 5 char isbn[20]; // isbn号 6 char name[80]; // 书名 7 char author[8 -
实验六
task4 1 #include <stdio.h> 2 #define N 10 3 4 typedef struct { 5 char isbn[20]; // isbn号 6 char name[80]; // 书名 7 char author[80]; // 作者 8 double sale