USACO
EaShion1994
这个作者很懒,什么都没留下…
展开
-
USACO Milking Cows(模拟)
题目请点我 题意: 题意很简单,最开始的时候想要用优先队列存储时间,用map存储对应时间起点与终点。按时间轴顺序排列的思路是没错的,但是忽略了很重要的一点,一个时间起点可能会有多个对应的时间终点。改用结构体存储,定义cmp,得到时间轴。有两个变量表示总的时间起点和终点,注意起点与终点变换的条件,不断向后遍历就可以了。 代码实现:/*ID: eashionLANG: C++TASK: mi原创 2015-07-14 19:43:10 · 656 阅读 · 0 评论 -
USACO Ordered Fractions(枚举)
题目请点我题解:最开始的时候想要大数去做,但是发现实现不了,其实是想多了,分子和分母都必须是代码实现:/*ID:eashionTASK:frac1LANG:C++*/#include #include #include #include #include #define MAX 170#define LL long longusing namespace原创 2015-08-27 17:05:16 · 446 阅读 · 0 评论 -
USACO Superprime Rib(dfs)
题目请点我 题解: 这道题其实很简单,dfs+从前往后判断就好了,每递归一层就进行一次判断。 代码实现:/*ID: eashionLANG: C++TASK: sprime*/#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#define MAX原创 2015-07-19 14:57:03 · 607 阅读 · 0 评论 -
USACO Prime Palindromes(dfs)
题目请点我 题解: 这道题看起来是一道很简单的题目,但是数据量很大。如果暴力判断会超时,预处理筛法标记素数则会超内存。最后看了网上的解法才知道要逆推,生成回文数,这还是要第一次遇到。并且很重要的一点是偶数位的回文数都能被11整除,所以只需要生成奇数位的,偶数位回文素数符合情况的值可能有11一个。挺考验思维的,重要的是do mathmatics first. 代码实现:/*ID: eashio原创 2015-07-19 14:34:46 · 569 阅读 · 0 评论 -
USACO Arithmetic Progressions(暴力)
题目请点我 题解: 这道题的题意是找出集合里所有固定长度为N的等差数列,集合内的元素均为P^2+q^2的形式(0<=p,q<=M)。时间要求5s内,本着KISS,直接暴力。但是后来竟超时了,检查后发现是map的问题,本想利用map实现常数级的查找,但是显然map内部不是这样的,所以对于普通的数据类型,数据量不大(250^2+250^2)的情况下还是利用数组标记查找好一点,get。 代码实现:/原创 2015-07-19 11:14:31 · 1003 阅读 · 0 评论 -
USACO Mother's Milk(bfs)
题目请点我 题解: 水杯倒水的问题很经典,套路也是一样的,bfs找出所有状态。这道题的关键在于每次都应该进行六次的倒水尝试,细心一点。PS:三维数组表示状态真的很方便。 代码实现:/*ID: eashionLANG: C++TASK: milk3*/#include <iostream>#include <cstdio>#include <cstdlib>#include <c原创 2015-07-19 12:40:43 · 788 阅读 · 0 评论 -
USACO Combination Lock
题目点这里 题解: 简单题,注意最大值和最小值是相邻的。 代码实现:/*ID: eashionLANG: C++TASK: combo*/#include <iostream>#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>#define MAX 110using namespace原创 2015-07-18 17:36:01 · 553 阅读 · 0 评论 -
USACO Ski Course Design(枚举)
题目请点我 题解: 水题,不会超时。枚举标准起点就可以。 代码实现:/*ID: eashionLANG: C++TASK: skidesign*/#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#define MAX 1010#defin原创 2015-07-18 21:37:09 · 549 阅读 · 0 评论 -
USACO Wormholes(模拟)
题目请点我 题解: 这道题思路很简单,就是简单的深搜,找出所有的组合,然后判断能否成环。关键在于如何判断能否成环,我的思路是利用递归模拟,看能否第二次经过某一个点。中间也出现了错误,首先,每次访问的下一个点应该是同一行上当前点右边的第一个点;其次,某个点被访问过必须是作为起点被访问过,而不仅仅是到达。 代码实现:/*ID: eashionLANG: C++TASK: wormhole*原创 2015-07-18 19:35:59 · 661 阅读 · 0 评论 -
UASCO Prime Cryptarithm
题目点这里 题解: 简单深搜,很暴力。 代码实现:/*ID: eashionLANG: C++TASK: crypt1*/#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <map>#define MAX 12using namespace std;int N;原创 2015-07-18 17:33:59 · 453 阅读 · 0 评论 -
USACO Barn Repair(greedy)
题目请点我 题解: 简单贪心,先全部覆盖上,然后去掉两头,之后每次去掉一个最大的间隙。 代码实现:/*ID: eashionLANG: C++TASK: barn1*/#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#define MAX_原创 2015-07-17 22:17:33 · 480 阅读 · 0 评论 -
USACO Name That Number(File)
题目请点我题解: 题目应该不难理解,就是找出数字对应字典中的字符串。因为数字对字符是一对多的关系,所以输入的数字可能对应多个答案。如果每次都要一一对比查找的话显然太浪费时间。转换思路,对于字典中的字符串,他们都有自己唯一对应的数值,我们只需一次遍历,就能将他们全部转化,剩下的共作就是每次对比数值,输出对应字符串了。 PS:这道题在输入上坑了很久,原因在于%I64d 和 %lld ,用%I64d错原创 2015-07-16 20:04:57 · 685 阅读 · 0 评论 -
USACO The Castle(flood fill)
题目请点我题解:这道题真的好蛋疼啊,首先题意不好理解,搞了半天复杂的要死,有那么多要求,还要求那么多东西,做到一半都不想做了。。。感觉没什么技术含量,还做起来死费劲儿。但是强迫症非得按顺序做题啊,最后还是一点点把它给调出来了,说什么flood fill,其实也就是那么回事,没什么算法上的技巧,就是见招拆招的感觉。。。题意搞懂再做题,题意,不谢!第一步,根据他的规则把房间画出原创 2015-08-27 15:24:43 · 958 阅读 · 0 评论