算法实验—搜索算法
MokylinJay
Hello World!
展开
-
SDUTOJ 整数变换问题
#include<bits/stdc++.h> using namespace std; #define maxn 105 // n初始给定的数 // m为目标值 // minval最小操作步数 // res数组,记录每一步操作 int m, n, minval; char res[maxn]; int dfs(int step, int num) { // 如果当前操作步数,大于最少操作步数 // 则该操作序列不可能为最少操作序列 // 剪枝 if (st原创 2021-11-29 15:11:53 · 594 阅读 · 0 评论 -
SDUT 1776 - 工作分配问题
#include<bits/stdc++.h> using namespace std; #define maxn 25 int inf = 0x3f3f3f3f; // s数组记录工人和工作搭配的花费 // visited数组记录工人是否已分配工作 // sum记录当前累加的费用 // n为输入数据大小 // minval为最小费用 int s[maxn][maxn], visited[maxn], sum, n, minval; void dfs(int i) { // 分配原创 2021-11-29 14:53:06 · 122 阅读 · 0 评论 -
SDUTOJ 1767 - 运动员匹配问题
#include<bits/stdc++.h> using namespace std; #define maxn 25 // n输入的数据大小 // maxval寻找最大竞争优势 // sum累加当前竞赛优势 int n, maxval, sum; // p为男方搭配优势 // q为女方搭配优势 // f标记当前女方队员是否已经搭配 // res记录两个远动员搭配时的竞赛优势 int p[maxn][maxn], q[maxn][maxn], visited[maxn], res[max原创 2021-11-29 14:39:56 · 193 阅读 · 0 评论 -
SDUTOJ 1764 - 子集和问题
#include<bits/stdc++.h> using namespace std; int a[10005]; // 存放集合s的数据 int n, c, sum; int flag = 0; // 有解时flag=1 int ans[10005] = {0}; // 递归求解 // 从pos处向后查找,sum记录此时的加和,top作为ans数组的游标 void getRes(int pos, int sum, int top) { // 相加和大于c时,无解 // f原创 2021-11-28 22:56:38 · 243 阅读 · 0 评论