随笔分类 - UASCO
摘要:题目来源:usaco training 这是一个模拟题。题目较长,不太容易理解意思,尤其对于本人这种四级还没过的菜b。给你5个轮子,每个轮子有一个转动的速度,和不多于5个空隙。每个空隙给出一个起始角度和空隙的大小(用一个角度表示,这里我是拿google翻译extent了这个词才明白的,不然样例都没看懂)。如果明白了题目意思就能简单不少了。因为不管轮子转动的速度是多少,最多转动360s以后肯定也会回到原点了(v*360%360==0)。所以枚举转动时间即可。View Code 1 /* 2 ID: like_091 3 PROG: spin 4 LANG: C++ 5 */ 6 #include
阅读全文
摘要:usaco卡了很久的一个题,因为这个题三个月没有碰usaco。开始是用了直接模拟的方法,其实是可以过掉除了最后一个数据外的所有数据的。最后一个数据就是1w*1w的,内存限制。usaco自己给的提示我硬是没看懂。 利用了矩形分割的方法。每次加入一个新矩形都把它和原来的矩形比较,如果没有交集就不处理,直接处理下一个矩形,否则分四种情况: (1) 原来的矩形上部超出了现有矩形,把超出的部分分割为一个新矩形。加入矩形库中。 (2) 原来的矩形下部超出…… (3) 左部…… (4) 右部…… 根据以上四种情况分别处理,再把原来的那个矩形从矩形库中删除。我写的比较挫的代码,还好一遍过了。/*ID: li.
阅读全文
摘要:博客园速度非常不稳定,可能要考虑换地方了。虽然我非常喜欢博客园的模板和气氛。 这个题早就知道是怎么做的了。先求出回文数在再判断是不是素数。关键是不知道区间,那就把所有的全部求出来。虽然可能会超时,但是如果使用点技巧的话还是没问题的。 如果先筛素数的话开一亿的数组90m,肯定超内存了。据说可以只开一千万的,因为偶数就不用判了嘛。这个具体怎么实现尚不知晓。usaco的判题机构貌似极其严格,就连伪素数测试都能挑出错来。就直接拿模板上的素性测试过了。自己写的暴力测素数函数超了。代码贴一下。日后再整理吧。这两天都没怎么写解题报告了。/*ID: like_091PROG: pprimeLANG: C++.
阅读全文
摘要:本题纯属水题,一看5s的时限就直接暴力。1Y!/*ID: like_091PROG: ariprogLANG: C++*/#include<iostream>#include<cmath>#include<fstream>using namespace std;const int MAX = 250;int d[MAX * MAX * 2 + 1], tem;struct Node{ int x, y;}node[10001];int cmp(const void *a, const void *b){ Node *c = (Node *)a; Node *
阅读全文
摘要:都说是个简单题,可能是我好久没编什么,退化了,连别人写的bfs,dfs都看不懂。悲剧!这个题我一开始想到直接枚举应该不会超时,因为只是4^9的规模。但是由于剪枝不会,位运算不会等一系列不会指挥果断悲剧。翻阅了无数解题报告之后竟然没看懂别人的意思。后来知道了答案只有一个根本无需判重,才在一个前辈的代码的帮助下勉强ac,悲剧的usaco,好难呀!bt题也不少。本代码主要参考别人的。/*ID: like_091PROG: clocksLANG: C++*/#include <iostream>#include <fstream>using namespace std;int
阅读全文
摘要:这应该是usaco上遇到的第一个BT题,而且是极其BT。硬是让我纠结了一整天。尤其是最后一种情况,种类繁多,参考了大牛的结题报告才过的。各种WA。刚开始活生生写了300多行代码。AC的时候还有180行。肯定还有很大的优化空间。被此题搅的脑残了,懒得改进了。想不出IOI三个小时怎么写得出来。看来都是牛人。佩服! 我开始觉得这个题应该就是枚举,但是要细心。因为只有4个矩形,4!X 2^4;空间要求不大。直接硬搜。但是主要是最后一种情况比较复杂,需要分为5类考虑。 ( 1 ) h[2] == h[3]; ( 2 ) h[2] >= h[0] + h[3]; ( 3 ) h[3] &
阅读全文
摘要:最多就9个数,直接一层一层枚举就行。注意判断出现的数的每一位都要出现在集合中。
阅读全文
摘要:经过两个多小时的coding,终于磕磕绊绊的过了。其实这个题难的地方不是解法,而是文件的输入输出。因为文件不是在一行,所以以前知道的那些从文件里面输入输出的函数全都不好使。eof这个函数以前没见过,弄了好久才会。接受能力有问题。代码主要是借鉴lrj大哥的,懒得写了。还抄错了,wa了好久。简单题目主要是考察细节的地方,如果比赛肯定遇不到这种简单题。如果说刷通usaco算入门的话,那就不足为奇了。
阅读全文
摘要:第一感觉就是这个题应该是一个dp,分析了好久状态转移方程,似懂非懂,反正程序是不知道怎么下手,dp对我来说是最难得部分之一。看了下这一节应该是贪心算法才对。后面想了想,用了个猥琐的解法。把数组排序一遍,要是相邻的两个元素是a=b+1的关系,他们就共用一根木棒,因为即使后面那间用一根新的木棒也不会省长度。这样就把数组化成了几块。再说那些相邻的数之间还有数存在的。把他们的距离保存下来。然后排序,设有x块,有y根木棒,那么还要消除x-y个空隙,直接把这x-y个空隙的长度加到总长度里面,ac。
阅读全文
摘要:USACO很多函数都限制掉了,不让用,所以很多库函数都会WA,后面找的模板和库函数都用不上了,逼我直接写了个最脑残的程序,输入输出还输反了。无限wa。总之要小心,库函数不要随便用。特别是比较生疏的,wa的可能性比较大。可能网站的目的就是让自己从头开始写,什么都得自己写。比如itoa,goto等都不提供。纯粹的编码。strlen都不让用。 因为这个题是处理数,所以平时那些对付字符串的函数都用不上。把数字转化成字符串其实有函数,但是绝对不好使。网站不会这么轻易让你ac的。这是我用字符串接受和保存进制转换的代码:判断字符串是不是回文串的比较简单: 最后就是说一下itoa这个函数,百度到的,感觉挺
阅读全文
摘要:这个题简直就是赤裸裸的map,虽然没用过,但是很明显是,也不难,看一眼就会了。因为有可能会给12个数字,所以肯定不能枚举组合吧。文件里面一共才五千个名字,一次循环简直根本花不了什么时间。只要一个字符串一个字符串检查,再决定是否输出就够了。基础题,不多说了。
阅读全文
摘要:看到这个题还以为是个搜索题,搜索向来不会,以为得卡在这儿,后面仔细看了下题,几个变换发型没什么难的,就是这句In the case that more than one transform could have been used, choose the one with the minimum number above. 以为要用很多次变换才能变换到目的数组,看了下题目的翻译,才知道这句话的意思是如果有多种可用的转换方法,请选择序号最小的那个。如果是这样的话那就简单了。只要按照序号枚举就行了。记得第六个应该放在第六个位置。还有只要遇到一样的状态,就打印序号,然后退出。如果忘记退出会打印多个数
阅读全文
摘要:虽然有明显的贪心思想,我还是有足够的wa去纠结。奶牛貌似很受美国人欢迎,哪儿都有。由于英语不太好,题目看的不明不白,尤其是细节方面的东西。比如有可能没有间隔,那就得输出0,要是不看测试数据今晚都得纠结在这。硬是逼我加了个flag进去。虽然这手段比较猥琐,但是用惯了。还有需要注意的就是可能有个区间被另外一个区间包含也说不定,测试数据总是会想方设法挑你毛病,如果多看看测试数据,没准还能上TC上去找别人的茬。快排加上几个细节,这个入门题就没什么难的了。
阅读全文
摘要:做完第三题发现USACO真是个好地方,推荐acm没有入门的同学上去刷通关,据说大牛的一个月就通关,一般就得四五个月。我觉得usaco最好的一个地方就是会给测试数据,错误会有一些提示什么的,而且怎么提交也没人管,虽然多次提交这习惯不好,但是可能很多人还不是熟悉文件的操作。
阅读全文
摘要:用吉大的模板貌似是错的,反正在我自己电脑上就没正确。做水题还用模板,作孽呀。不管怎么说,用模板还是很方便,要是按照我以前的做法,求哪天是星期几真没这么简单,只能佩服那些牛人们。记得大一学c语言的时候有这么个题好像好多人都没做出来,我是写出来了,但是好像用了几十行,原来五行以内就写完了。acm确实总会有让人吃惊的地方。
阅读全文
摘要:今天做了usaco的第一题,本来是个基础题,花了不少时间。几乎没有什么算法,过了sample很简单,但是测试数据怎么也过不了。看来usaco上的题测试数据都比较变态。
阅读全文
浙公网安备 33010602011771号