`
kalviny
  • 浏览: 5592 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Milking Cows

阅读更多
/*
ID: fykalv3
LANG: C
TASK: 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[2] = {0}; //  简化代码
	int i, j, n, a, b, m1 = 1000000, m2 = 0;
	int hash[MAX];
	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[j] = 1;
	}
	for (i = m1; i < m2; i += j) {
		for (j = 1; hash[i+j] == hash[i]; ++j)  //遍历hash表,用j来记录中间是1或者是0的位置有多少
			;
		if (j > max[hash[i]]) // 每次遍历都去比较找到最大的位置
			max[hash[i]] = j;
	}
	fprintf(fout, "%d %d\n", max[1], max[0]);
	fclose(fin);
	fclose(fout);
	exit(0);
}



分享到:
评论

相关推荐

    USACO题目Milking Cows及代码解析

    ### USACO 题目解析:Milking Cows #### 题目背景与要求 本题目来源于美国计算机奥林匹克竞赛(USACO),题目名为“Milking Cows”。题目描述了一个有趣的场景:三位农民每天早上给三头牛挤奶,并给出了各自的挤奶...

    USACO官网93题fps格式 OJ题库

    6 [1.2] 挤牛奶Milking Cows 7 [1.2] 方块转换 Transformations 8 [1.2] 回文平方数 Palindromic Squares 9 [1.2] 双重回文数 Dual Palindromes 10 [1.3] 混合牛奶 Mixing Milk 11 [1.3] 修理牛棚 Barn Repair 12 ...

    USACO英汉对照题目

    1.2.1 "Milking Cows" 可能与数组和排序有关,可能是优化挤牛奶的效率问题。 1.2.3 "Name That Number" 可能是关于数字表示和逻辑推理的问题。 1.2.4 "Palindromic Squares" 和 "Dual Palindromes" 强调了对回文数的...

    第1章总结1

    接着,1.2节重点是完整搜索,如"Milking Cows"中运用离散化技术,"Transformations"和"Name That Number"通过枚举解决,而"Palindromic Squares"和"Dual Palindromes"进一步强化了枚举法的应用。 1.3节围绕贪心算法...

    牛津小学英语6B期末试题及答案精选.doc

    1. **听力理解**:听力部分涵盖了多种句型和场景,如日常活动(如 milking cows, go camping)、比较级(runs faster than)、购物需求(writing paper and an envelope)、季节活动(go climbing in autumn)等。...

    USACO总结

    随着难度的提升,本章开始引入更复杂的问题,例如“Milking Cows”,这道题目的解决策略需要运用到贪心算法。此外,“Transformations”、“Name That Number”等题目进一步加深了对模拟算法的理解。 ### 四、...

    usaco题目的副本1

    8. **算法优化**:在"Milking Cows"和"Transformations"题目中,优化算法的关键在于减少对已有列表的直接修改,而是创建新列表来存储结果,这样可以使程序执行过程更简单,也更易于理解。 通过理解和应用这些知识点...

    USACO所有题目题解

    5. **Milking Cows (milk2)**: 本题涉及时间调度,有三种主要思路。第一种是离散化,通过排序并遍历,复杂度为O(nlogn+n)。第二种思路是在保持字符串不变的情况下,每次将首位移至末尾,从而从两头同时搜索。第三种...

    USACO题解(NOCOW整理版).doc

    Chapter 1 Section 1.2 Milking Cows (milk2) 这道题有三种思想。第一种思想是离散化(其实就是进行了优化的搜索而已),按照开始时间升序排序,然后从左到右扫一遍,复杂度是 O(nlogn+n) 的(排序+扫一遍,用堆、...

    USACO(Train)解题报告.doc

    ### Chapter 1 Section 1.2 - Milking Cows (milk2) 本题提出了三种解题思路。一种是离散化,通过对开始时间进行排序,然后遍历整个序列,复杂度为O(nlogn+n)。这种方法的关键是维护一个当前区间`[tmp_begin, tmp_...

    USACO全部题目

    #### Milking Cows 这道题考察了学生对动态规划的理解和应用能力。题目背景通常是关于如何最大化奶牛产奶量的问题,可以通过构建状态转移方程来求解最优解。动态规划的核心思想是将一个复杂问题分解成一系列更小的...

    USACO全部译题

    **1.2.1 Milking Cows** - **问题描述**:此题要求计算奶牛挤奶的最优方案,以达到最大化的产出。 - **算法思想**:可以使用贪心策略来解决问题,例如按照预期产出的降序来安排奶牛的挤奶顺序。 **1.2.2 ...

    2140 Herd Sums

    When the cows come to the barn for milking, they always come in sequential order from 1 to N. Farmer John, who majored in mathematics in college and loves numbers, often looks for patterns. He has ...

    USACO月赛题解1

    11. **Milking Grid** - KMP算法用于寻找最小重复子矩阵,计算长度和宽度的最小公倍数。 12. **Popular Cows** - 找到图中所有可达顶点,通过反向边和强连通分量(Strongly Connected Components, SCC)进行缩点。 ...

    poj图论题目汇总

    #### 2387 Til the Cows Come Home - 最短路 - **知识点**:最短路径算法。 #### 2391 *Ombrophobic Bovines - 最大流 - **知识点**:最大流算法。 #### 2394 Checking an Alibi - 最短路 - **知识点**:最短...

Global site tag (gtag.js) - Google Analytics