2012年3月20日

csu 1010 Water Drinking

摘要: 并查集变种;# include <stdio.h># include <memory.h># define MAXN 100005int pre[MAXN];int dis[MAXN];int main(){ int n, x, y, i, mind, ans; while (~scanf("%d", &n)) { memset(dis, 0, sizeof(dis)); for (i = 0; i < MAXN; ++i) pre[i] = i; while (n--) { ... 阅读全文

posted @ 2012-03-20 23:04 getgoing 阅读(293) 评论(0) 推荐(0) 编辑

csu 1004 Xi and Bo

摘要: 并查集;/* 下面的问题已经找到原因:dev c++使用c++编译器,变量end的命名可能出现冲突,使用gcc编译不会出现报错*/遇到了一个诡异的问题:全局变量放在main外报错。# include <stdio.h># define MAXN 105int father[MAXN];int main(){ int T, sta, end, n, m, x, y; int i; scanf("%d", &T); while (T--) { scanf("%d%d%d", &sta,&end,&n); f... 阅读全文

posted @ 2012-03-20 17:45 getgoing 阅读(570) 评论(3) 推荐(0) 编辑

csu 1009 抛硬币

摘要: 稍微演算一下,就会发现只要把每一列大小次序依次选择元素,然后相乘相加,结果一定是最大的;比如a > b, c > da cb dac+bd > ad+bc (移向做差),然后扩展到多行多列的情况就行了。有一条警告,不知道怎么排除。29 *\csu1009.c [Warning] passing arg 4 of `qsort' from incompatible pointer type 1 # include <stdio.h> 2 # include <stdlib.h> 3 4 # define LMAX 105 5 # define C 阅读全文

posted @ 2012-03-20 17:43 getgoing 阅读(486) 评论(2) 推荐(1) 编辑

[转载]register修饰符

摘要: 以下内容转载自百度百科:Register register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码, 但是使用register修饰符有几点限制。 首先,register变量必须是能被CPU所接受的类型。这通常意味着register变量必须是一个单个的值,并且长度应该小于或者等于整型的长度。不过,有些机器的寄存器也能存放浮点数。 其次,因为register变量可能不存放在内存中,所以不能用“&”来获取register变量的地址。 由于寄存器的数量有限,而且某些寄存器只能接受特定类... 阅读全文

posted @ 2012-03-20 00:30 getgoing 阅读(289) 评论(0) 推荐(0) 编辑

导航