1.HDU 4097 - Task schedule ( Hash+倒序处理 or 并查集 )
输入的第一行包含一个整数T, 表示一共有T组测试数据。 对于每组测试数据: 第一行是两个数字n, m,表示工作表里面有n个任务, 有m个询问; 第二行是n个不同的数字t1, t2, t3....tn,表示机器在ti时间执行第i个任务。 接下来m行,每一行有一个数字q,表示在q时间有一个工作表之外的任务请求。 特别提醒:m个询问之间是无关的。
#include <cstdio> #include <cstring> #define maxn 200005 #define clr(a,b) memset(a,b,sizeof(a)) int t, n, m, q, x; int Hash[maxn], res[maxn]; int main() { scanf("%d",&t); while(t--) { clr(Hash,0); scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%d",&x); Hash[x] = 1; } int last = maxn; for(int i=maxn;i>0;i--) { if(Hash[i] == 0) { last = i; res[i] = i; } else res[i] = last; } while(m--) { scanf("%d",&q); printf("%d\n",res[q]); } } }
Hash + 预处理
2.HDU 4098 - Bestcoder Sequences ( )
·BC」 Round 3
时间: 2024-10-28 23:48:39