
算法竞赛
xh_Dopamine
这个作者很懒,什么都没留下…
展开
-
全排列问题
递归#include<cstdio>#include<cstdlib> #include<algorithm>#include<iostream>#include<queue>using namespace std;typedef long long ll;const ll N=1e4+10; int a[N];int n;void fun(int k){ if(k>=n) { for(int i=1;i<原创 2021-11-10 16:28:02 · 435 阅读 · 0 评论 -
0-1背包问题(多种解决方案)
问题描述现要将n个重量为w[i],价值为v[i]物品装到容量为c的背包中,如何使得背包价值最大输入描述第1行输入背包容量c和物品数量n第2-n+1行输入n个物品的重量与价值输出描述输出最大价值DFS#include<cstdio>#include<cstdlib> #include<algorithm>#include<iostream>#include<queue>using namespace std;typedef原创 2021-11-08 19:56:37 · 408 阅读 · 0 评论 -
装载问题(多种方法解决)
问题描述现要将n个重量为w[i]集装箱装到载重为c的轮船上,如何使得装载的集装箱重量最大输入描述第一行输入轮船载重量c和集装箱数量n第二行输入n个集装箱的重量输出描述输出最大重量和集装箱编号DFS#include<cstdio>#include<cstdlib> #include<algorithm>#include<iostream>#include<queue>using namespace std;typedef原创 2021-11-08 19:11:07 · 595 阅读 · 0 评论 -
全排列问题
文章目录定义递归法STL中的全排列定义从n个元素中取出n个元素进行排列,即为全排列。则共有n!种排列方式。所以全排列问题的时间复杂度为O(n*n!)递归法执行过程:首先枚举全排列第一个位置的数然后递归枚举后面位置上的数,直到最后一位递归到最后一位时,即找到了一个排列,输出每执行一次,需将数组还原一次代码:void fun(int a[],int l,int r)//a[]为储存元素的数组,l为第一个元素位置,r为最后一个元素位置{ if(l==r)//枚举前缀到数组最后一位数,原创 2021-10-26 14:30:20 · 685 阅读 · 0 评论