跳至正文

USACO 2.4.5 Fractions to Decimals 解题报告

  • OI路程

这题的话,其实也好说,就是利用余数进行判断,看代码吧: de lang="C">/ LANG: C ID: yylogoo1 PROG: fracdec / #include int num[100001]; int mod[100001]; char str[77]; int len; void add(char ch) { if(len == 76){ printf("%s\n", str); str[0] = ‘\0’; len = 0; }[……]

继续阅读

USACO 2.4.4 comehome 解题报告

  • OI路程

这一题其实很简单,只是有个陷阱,考验你们细心与否,就是两个牧场之间可能不只有一条路径,所以这里注意一下就不会出大问题,代码如下所示: de lang="c">/ LANG: C ID: yylogoo1 PROG: comehome / #include #define INF 0xFFFFFF int map[52][52]; int getnum(char c) { if(c <= ‘a’ && c map[i][k] + map[k][j]){[……]

继续阅读

如果有一天,我老了

  • 随笔

 

  如果有一天,我老了,我会在病床上静静地躺着,什么都不想了,只是静静地躺着。偶尔儿女会带着孙子孙女来看我,那时,我能做的也许只有傻傻的望着他们,什么都不想。吃着他们为我削的干净的苹果,为我吃那些三四元一碗的米粉和混沌,平平淡淡的日子,我确十分开心。但当他们离去,空荡荡的病房,又只有静静地躺着了,好好睡睡吧,也许明天日子就到头了。

  如果有一天,我老了,我会放下所有的追求和向往,安逸地在看着电视,我只会在公园里散散步,和另外一群老家伙夸奖我的孙子,赞扬我的孙女,不会再有自恋和自私了,这时候也不会有人说这是自负[……]

继续阅读

USACO 2.4.3 Cow Tours 解题报告

  • OI路程

这个题目涉及的算法真的好多好多,一下子还真摸不着头脑,但摸着没摸着都先听我说。 首先要把链接在一起的那些牧区之间的距离算出来(勾股定理),然后要把各个牧场的牧区标示出来(洪水填充),这样就能进行下一步了,再把各个节点之间的距离算出来,用floyd-warshall算法,O(n^3)的那个算法,然后,再把每个牧区在这个牧场距离最远的节点之间的距离算出来,再把每个牧场的直径算出来,这题目就大概出来了。 最后在循环两个牧区,如果是在一个牧场就退出循环,如果是在两个不同的牧场的话,那如果连接起来这个新的牧场的直径就有三[……]

继续阅读

USACO 2.4.2 Overfencing 解题报告

  • OI路程

题目看了之后容易发现就是广搜,从两个入口对全图进行广搜,搜到最后一个所需要的路程就是答案,广搜实现一点儿也不难,我的实现感觉还是比较好的,用一个宏和一个函数实现这个功能,然后用数字代表前进的方向,0:北,1:南,2:西,3:东。 但这题难的地方我觉得是把图转化成数据和寻找入口,其实难也不难,只是希望实现的代码简单些。刚开始我想根据变量循环的位置来判断,但这种方法的弊端就是代码量太大,要好多好多的判断,难的写,就直接使用-和|(墙的标识。)来标记数据就可以了,发现这个实现很简单,但是麻烦的就是找入口,最后我还是用了[……]

继续阅读

USACO 2.4.1 The Tamworth Two 解题报告

  • OI路程

这题模拟的这个细节不用说把?就是俺顺序来,如果不知道的话看我的代码,这部分(deal函数)写的比较清楚,但是比较麻烦的问题是循环多久才结束呢?题目并没有说什么特殊条件那?呵呵,暗示的条件还是有的,在1010的牛和人在每个格子上最多就是4种方向吧?也就是说每个格子对每个人来说都有400种状态,那么400400就是所有的状态,如果在160000种情况都没有相遇的话那么一定是在死循环中间(即死追死跑。) 代码如下: de lang="c"> / LANG: C ID: yylogoo1 PRO[……]

继续阅读

USACO 2.3.5 Controlling Companies 解题报告

  • OI路程

读取a公司控制b公司的股份c,再把这个股份加给所有控制a的公司上,如果可以产生控制一个公司的情况,那么就控制该公司,并且把其公司占有其他公司的所有股份都自己加一份,如果有可以控制的情况,那么继续控制。 代码如下: / LANG: C ID: yylogoo1 PROG: concom / #include #define MAX 101 int have[MAX][MAX], con[MAX][MAX]; void con(int a, int b) { int i; if(con[a][b]){ r[......]

继续阅读

mount -n 的用途

  鸟哥的书上有这么一个例子,当计算机出问题了,当/etc只读时怎么挂载根目录,它用的指令是mount -n -o remount,rw / ,那么这个mount -n是什么意思呢?

[……]

继续阅读