[NOIP2012 提高组] 借教室 - 洛谷
对答案进行二分,因为多次在一个区间加上一个数,所以我们可以使用差分,最后对差分数组求前缀和判断是否满足要求
import javax.jws.Oneway;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Arrays;
class Main{
static int n, m;
static int[] classroom;
static long[]dif;
static int[][] section;
public static void main(String[] args) throws IOException {
StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
cin.nextToken();
n = (int)cin.nval;
cin.nextToken();
m = (int)cin.nval;
classroom = new int[n];
for(int i=0;i>1;
if(!isOk(mid)){
res=mid;
h=mid-1;
}
else
l=mid+1;
}
System.out.println("-1\n"+(res+1));
}
public static boolean isOk(int day){
Arrays.fill(dif,0);
for(int i=0;i<=day;i++){
dif[section[i][1]-1]+=section[i][0];
dif[section[i][2]]-=section[i][0];
}
for(int i=0;i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)