题目链接:uva 690 - Pipeline Scheduling
题目大意:有10个任务,5个管道,每个任务需要占用不同时间的管道,给出任务所占用管道的时间,求最短需要多少时间。
解题思路:dfs+剪枝,剪枝1,将所有可以的相对位置记录。剪枝2,当当前开销加上剩余任务的最有情况仍大于ans。
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 5;
const int M = 100;
int n, c, ans, w[N], jump[M];
bool judge (int* s, int k) {
for (int i = 0; i < N; i++)