中文题。
思路:将工作表存在vis的组数中。预处理一遍。具体看代码
AC代码:
#include<stdio.h> #include<string.h> bool vis[200100]; int tak[200100]; int main() { int j,i,ti; int n,m,t,num; while(scanf("%d",&t)!=EOF) { while(t--) { memset(vis,0,sizeof vis); scanf("%d %d",&n,&m); for(i=0;i<n;i++) { scanf("%d",&num); vis[num]=1;//有任务 } int count=200000; for(i=200000;i>=1;i--) { tak[i]=i;//任务本来在i时刻做 if(vis[i]==0)//i时刻有任务 count=i; else tak[i]=count;//在i时刻之前有任务 } for(i=0;i<m;i++) { scanf("%d",&ti); printf("%d\n",tak[ti]); } } } return 0; }
BestCoder Round #3 1001 && HDU 4907 Task schedule (预处理),布布扣,bubuko.com
BestCoder Round #3 1001 && HDU 4907 Task schedule (预处理)
原文地址:http://blog.csdn.net/u012377575/article/details/38364765