摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4217这题是在比赛的过程中完成的,是一道线段树问题,我当时写了好久,感觉跟普通的线段树不一样,因为本来自己对线段树的理解就不是很透彻,所以写起来很困难,不过我最后还是把这个问题解决了,使自己对线段树的理解又加深了一层。代码如下:#include"stdio.h"__int64 sum;struct ln{ int left,right,num;}nod[800000];void create(int u,int l,int r){ int mid; nod[u].left=l;nod[u] 阅读全文
posted @ 2012-04-15 22:34 朝圣の路 阅读(182) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4221还是读题的问题,第一遍读题时,没太明白,以为是求最小的总得罚款数。但是第二组simple对不上,所以又重读一遍题,原来是求每任务让最大罚款尽可能的小,这样的话就很明了了,通过依次排序,就得到结果了。对了,还要注意这题int型装不下,要用——int64.代码如下:#include"stdio.h"#include"stdlib.h"typedef struct course{ int c,d;}node;int cmp(const void *a,const voi 阅读全文
posted @ 2012-04-15 22:30 朝圣の路 阅读(107) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4218恩。。。这题当时比赛的时候题意弄得稀里糊涂,不过赛后好好研究一下还是把题意弄得差不多了,其实这题没是用什么算法,只是简单的判断距离。不过这题在输出时的空格上不符合常理的降低了难度,允许输出后面的空格,刚开始不知道就PE了N次,不过最后多次改动之后终于过了。代码如下:#include"stdio.h"#include"string.h"int main( ){ int t,r,i,j,min,count=1; int a[50][50],num[50]; scanf 阅读全文
posted @ 2012-04-15 22:26 朝圣の路 阅读(95) 评论(0) 推荐(0) 编辑