本文主要是介绍hdu 4907 Task schedule(水题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:hdu 4907 Task schedule
题目大意:略。
解题思路:水题,开一个数组标记掉哪些时间是不可以的。然后从后面遍历一遍记录每个位置的最优解。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>using namespace std;
const int maxn = 1e5;
bool v[maxn*2+5];
int N, M, f[maxn*2+5];void init () {int a;scanf("%d%d", &N, &M);memset(v, 0, sizeof(v));for (int i = 0; i < N; i++) {scanf("%d", &a);v[a] = true;}int tmp = maxn * 2 + 1;for (int i = maxn * 2; i >= 0; i--) {if (v[i] == false)tmp = i;f[i] = tmp;}
}int main () {int cas, a; scanf("%d", &cas);while (cas--) {init();for (int i = 0; i < M; i++) {scanf("%d", &a);printf("%d\n", f[a]);}}return 0;
}
这篇关于hdu 4907 Task schedule(水题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!