-
第四章作业
题目为:数轴上有n个闭区间[a_i, b_i],需要选取尽可能少的点,使得每个区间内至少包含一个点(不同区间可共享点)。我使用的核心策略是,将所有区间按右端点升序排序,然后依次遍历每个区间:若当前区间不包含已选的最后一个点,则选择当前区间的右端点作为新的点;若当前区间已包含已选的最后一个点,则跳过该 -
实验6
实验任务4 代码 #include <stdio.h> #define N 10 typedef struct { char isbn[20]; // isbn号 char name[80]; // 书名 char author[80]; // 作者 double sales_price; // 售 -
高级语言程序设计课程第九次个人作业
班级:https://edu.cnblogs.com/campus/fzu/gjyycx 作业要求:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15595 学号:102500428 姓名:杜翰墨 (1) (2) (3)(4) (5) 遍历 删 -
实验五
任务一 publisher.cpp #include <iostream> #include <string> #include "publisher.hpp" // Publisher类:实现 Publisher::Publisher(const std::string &name_): name -
算法第五章作业
1.用回溯法的方法分析“最小重量机器设计问题” 1.1 解空间:所有可能的部件-供应商组合的集合 1.2 解空间树: 树的深度为n(n个部件),根节点为第 0 层(未选择任何部件),第i层(1≤i≤n)对应第i个部件的选择 每个节点的分支数为m(当前部件的m个供应商) 叶子节点(第n层)对应一个完整 -
算法第四章作业
问题分析:选点问题的核心是:在数轴上给定若干闭区间,用最少数量的点覆盖所有区间(每个区间至少包含一个点)。 贪心策略:1、排序:将所有区间按右端点升序排列; 2、选点:初始化选点数量为 0,上一个选点位置为 “无效值”(如 - 1);遍历排序后的区间,若当前区间的左端点 > 上一个选点位置(说明当前 -
Section five Homework
当预算有限时,如何造出最轻的机器?——用回溯法解“最小重量机器设计问题” 在工程与算法的交汇处,我们常常要回答这样一个问题:如何在约束下做到“刚刚好”? 今天想和大家聊一个经典但容易被忽略的组合优化问题——最小重量机器设计问题。它不像旅行商那样广为人知,却真实反映了现实中的权衡艺术:在有限成本下,如 -
实验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 -
算法第五章作业
最小重量机器问题的回溯法: 解空间:因为要有n个部件组成机器,同时每一种部件有m个商人卖,所以要m个商人买n件东西,解空间就是m^n 解空间树:高度为n+1(一个也不要也是一种策略)的m叉树,根节点什么都没有(没有?没有也算高度哦);第i层节点是已经选了i个物品的情况;叶子节点代表n件东西全部选完了 -
第五章作业
回溯法分析“最小重量机器设计问题” 首先明确问题:最小重量机器设计问题通常是指:机器由n个部件组成,每个部件有m个可选型号,第 i个部件的第 j 个型号的重量为 wij、价格为 cij;要求选择每个部件的一个型号,使总价格不超过预算 C,且总重量最小。 1.1 解空间 解空间是所有满足“每个部件选一 -
算法第四章作业
贪心策略:我把所有区间按右端点从小到大排序,然后从第一个区间开始,每次选当前区间的右端点作为一个点,然后跳过所有包含这个点的区间,继续处理剩下的第一个不包含这个点的区间,直到所有区间都被覆盖。 证明贪心选择性质:就是要证明存在一个最优解包含我们第一次选的点(即右端点最小的区间的右端点)。设排序后第一 -
算法第四章作业
一、选点问题 贪心策略:按区间右端点升序排序,每次选择当前没有被覆盖的区间中最小的右端点作为选点。 具体步骤: 将所有区间按右端点 bi 从小到大排序,初始化计数器和上一个选点位置:count = 1(至少需要一个点),last_point = 第一个区间的右端点 遍历后续每个区间:如果当前区间的左 -
第四章作业
include include include using namespace std; int main() { int n; cin >> n; vector<pair<int, int>> intervals(n); for (int i = 0; i < n; ++i) { cin >> i -
高级语言程序设计课程第十次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15596 学号:102500328 姓名:刘宇桓 编写一个程序,将一 -
实验6
task4 源代码: #include <stdio.h> #define N 10 typedef struct { char isbn[20]; // isbn号 char name[80]; // 书名 char author[80]; // 作者 double sales_price; // -
实验6
实验任务1: 源代码: contestant.hpp: #pragma once #include <iomanip> #include <iostream> #include <string> struct Contestant { long id; // 学号 std::string name; -
实验作业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 sales_ -
c++实验六
实验任务一: 1 #include <algorithm> 2 #include <iostream> 3 #include <stdexcept> 4 #include <vector> 5 #include "contestant.hpp" 6 #include "utils.hpp" 7 8 -
高级语言程序设计课程第十次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15596 学号 102500336 姓名: 林陈帅 作业内容 (1)编 -
算法第五章作业
1.1.解空间:所有可能的解集合 1.2.解空间树:深度为 n+1 的 m 叉树 1.3.每个结点的状态值: (1)t:正在处理的部件编号 (2)cc:当前总价格 (3)cw:当前总重量 (4)cs[i]:第 i 个部件当前选择的供应商编号 2.回溯算法把问题分解成多步决策,每步尝试所有可能选择,可