kalviny 发表于 2013-1-26 12:32:22

Milking Cows

/*ID: fykalv3LANG: CTASK: milk2 */#include <stdio.h>#include <string.h>#define MAX 1000000/*   第一次写hash表,之前看过很多提到hash的东西没有写过,据说在大量的搜索中效率很高。这次用了hash,最大的体会就是hash的作用就是mark,方便以后的操作查找相关的信息   其实记录最后的结果如果类型一样在不引起歧义的情况下,可以用数组来代替各种变量,代码就更简洁了 */int main(){FILE *fin = fopen("milk2.in", "r");FILE *fout = fopen("milk2.out", "w");int max = {0}; //简化代码int i, j, n, a, b, m1 = 1000000, m2 = 0;int hash;fscanf(fin, "%d", &n);memset(hash, 0, sizeof(hash));for (i = 0; i < n; i++) {fscanf(fin, "%d %d", &a, &b);if (a < m1) m1 = a; //找到较小的那个位置if (b > m2) m2 = b; // 找到较大的位置for (j = a; j < b; j++) //在a b中间的所有的位置都设置为1,mark一下,意思就是这个时间段有人挤奶hash = 1;}for (i = m1; i < m2; i += j) {for (j = 1; hash == hash; ++j)//遍历hash表,用j来记录中间是1或者是0的位置有多少;if (j > max]) // 每次遍历都去比较找到最大的位置max] = j;}fprintf(fout, "%d %d\n", max, max);fclose(fin);fclose(fout);exit(0);}
页: [1]
查看完整版本: Milking Cows