摘要:
一道线段树的典型应用,标记真强大,没事怕错就多下放几次标记,反正没什么错。View Code 1 program tree_line(input,output); 2 type 3 node = record 4 sum,mark : int64; 5 left,right,x,y : longint; 6 end; 7 var 8 tree : array[0..1000000] of node; 9 n,m,tot ... 阅读全文
摘要:
给定N个数,每两个数有一个最大公约数,求最大的最大公约数。N<=10^5,每个数<=10^6枚举求是N^2*logN的,必定超时换一个思考的角度,如果我们假设最大公约数是多少,用多少时间可以判定是否成立呢?假设判定x,那么给变量每次加x,看有没有这个值,有的话就计数器加一,计数器一旦大于1,就成立,跳出即可。这样,我们开一个10^6的数组,v[i]记录值为i的数的个数,判定有没有值时就是O(1)的了,总体时间在max_number*logN左右View Code 1 program sgu499(input,output); 2 var 3 v : array[0..11000.. 阅读全文