链接:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=23701题意:求n个点的最大公约数,有两种操作,增加一个数,删去一个数,删去的数肯定是已经存在的离线处理,先要离散化然后找到每个数相应的位置插入或删除,简单的单点更新gcd(a,b,c,d)=gcd(gcd(a,b),gcd(c,d));View Code #include<cstdio>#include<vector>#include<cstring>#include<algorithm>using names Read More
posted @ 2012-03-28 21:29 Because Of You Views(779) Comments(0) Diggs(0) Edit
2A的题,因为注释没去完。。。。。。题意:给你n个数,求长度大于2的且相邻数字绝对值差不超过H的序列的个数很容易想到一个朴素的O(n^2)DPdp[i]=sigma(dp[j],abs(val[i]-val[j])<=H)由于DP转移过程是求和的操作,所以可以用树状数组来优化求和操作进一步转换:val[i]-H<=val[j]<=val[i]+H,所以每次把val[i]-H到val[i]+H之间的树状数组中的数求和 假设和为pre,dp[i]=pre+1;表示以i结尾的序列的个数序列长度>=1,求和后再把dp[i]放进树状数组即可最后的答案还要减掉n,取出长度为1的序列 Read More
posted @ 2012-03-28 11:21 Because Of You Views(601) Comments(0) Diggs(0) Edit
http://codeforces.com/problemset/problem/160/E题意 :一条直线上有很多车站有n辆车 每辆车的信息是 s,f,t 出发的站点,目的地,以及出发的时间,中途可以在其他站停留m个乘客 每个乘客的信息是 start ,to ,tx 出发的站点 要到的站点 出发时间如果一个乘客能够做上某辆车必须满足s<=start,to<=f,tx<=t而且要满足车的出发时间越早越好。输出时每个乘客应该坐上的车,如果没有输出-1限制条件比较多,出发点 终点 时间都要题目满足要求,而且要在满足前两者的情况下,出发的尽可能早首先很容易想到排序,把汽车和乘客的信 Read More
posted @ 2012-03-28 10:05 Because Of You Views(391) Comments(0) Diggs(1) Edit