题意:n个作业,每个作业有deadline和做完这个作业需要花的时间cost,完成作业每超过一天就减一分,求减去的最小的分数
分析:作业的全排列中取最优解,但是15!太大了会超时,所以用二进制来状态压缩,15个二进制位,第i位的0/1代表第i个作业是否完成。
1.会用状态压缩
2.保存和输出最优解序列方法
慢慢加深理解吧
代码:
#include
#include
#include
#...
分类:
其他好文 时间:
2015-06-07 09:36:10
阅读次数:
101
最近在准备复习算法设计的考试,下边记录一些,看笔记时突然想到的解法。
问题是这样的
用递归实现 n 个元素的全排列。当时老师给出的解答是 假定第i个元素 ri 放在首位,于是 f(r1,r2,…,rn) = f(ri U {r1, r2,….,rn}) = U (ri & f(r1,r2, …, rn)), 当时应该是听懂了,不过现在看到这个笔记,又醉了。 (这货居然是我上课记的笔记 。。。。...
分类:
其他好文 时间:
2015-06-06 12:05:55
阅读次数:
105
1 #include 2 /* 3 输入一个数n,输出1~n的全排列,有多少种不同的排列? 4 //暴力枚举当然可以,写判断累死.for循环嵌套起来也是累. 5 6 这里运用的是depth first search,DFS 深度优先搜索的思想 7 装作n对应的是n张扑克牌,将其放入n个盒子里有...
分类:
编程语言 时间:
2015-06-06 01:36:54
阅读次数:
143
【题目】
输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的三位数999。
【分析】
思路1:循环打印,但是遇到大数问题,就不好解决了。
思路2:对大数问题,考虑用字符串储存十进制数,就不会考虑溢出的问题,用字符串模拟数字的加法,再把字符串表达的数字打印出来。
思路3:更简洁的办法是利用全排列递归方法,n位所有十进制数其实就是n个从0到9的全排列...
分类:
其他好文 时间:
2015-06-04 17:17:05
阅读次数:
151
Given a collection of numbers, return all possible permutations.For example,
[1,2,3] have the following permutations:
[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].全排列的问题,分析可以参考这篇文章这道题目的题解:c...
分类:
其他好文 时间:
2015-06-04 15:50:20
阅读次数:
119
2015-06-04问题简述: 输出一串字符的全排列,顺序不同于一般的字母序,而是 A 9 #include 10 #include 11 #include 12 using namespace std;13 14 int n;15 char str[13],ans[13];16 int visi....
分类:
其他好文 时间:
2015-06-04 11:31:56
阅读次数:
115
#include
#include
#include
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void permutation(int nums[],int i,int n)
{
int j=0;
if(i==n)
{
for(j=0;j<n;j++)
printf("%d ",nums[...
分类:
编程语言 时间:
2015-06-03 17:44:26
阅读次数:
143
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
输入
第一行输入整数N(1
每...
分类:
其他好文 时间:
2015-06-02 11:19:39
阅读次数:
87
就是一道 DFS剪枝+枚举全排列 的题目
我用了vector来存点对的,不用考虑越界的问题。不过效率貌似不如直接用数组高。
WA了三次,花了好长时间找原因╮(╯▽╰)╭
多么弱智的错误啊=。=
WA代码#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-06-02 09:22:31
阅读次数:
143
问题:给出一个数,计算出其全排列结果。回答:方法一:#include #include #include #define maxN 4using namespace std; int main(){ int p[maxN] = {-1}; for(int i=0; i#include //#def....
分类:
其他好文 时间:
2015-05-30 10:32:42
阅读次数:
97