跳至正文

tyvj 1003 越野跑

  • OI路程
  咋一看去感觉是一个很复杂的题目,不过仔细一想,可以以最坏时间O(n)来完成,因为来回一趟的路线是固定的——去一次,回一次,如果是平地的话需要的时间总量就是2f, 无论是上坡还是下坡, 来去一趟的时间都是u+d,所以就没什么考虑的了,输入一个就把要花的时间加上,判断下是否大于u,是就退出循环,不是就继续循环。。
  代码如下:

[……]

继续阅读

NOIP 2003 神经网络 解体报告

  其实这个题目很简单, 你们仔细想想,最像什么? 很多讨论图论第一个讨论得就是这个问题——拓扑排序, 不是吗? 几乎不用我提示了吧? 这里还有一个要注意的地方就是, 一个神经输入节点的u[i] > 0时也不回影响c[i]. 比如c[i] = 2, u[i]=100, 那么这个输入节点的c[i] 依然是2而不是-98。
  要说得救是这些, 代码如下:

#include <stdio.h>
#include <assert.h>
#define MAX 200
in[……]

继续阅读

我的WordPress开张了

  • Linux

  163的博客实在是不太好用, 在千辛万苦之下, 成功自己搭建一个LAMP(Linux Apache MySQL PHP), 这是传统地说法, 要我说应该是LAMPW, 因为我是用的是WordPress. 在报废了3个Linux系统之后, 第四个Fedora 14成功的将Apache MySQL PHP 都安装成功, 并且将WordPress给装好了, 只是这个机子(Fedora 14)的配置不怎么样(CPU: AMD 3200+,   内存: 512M, 硬盘:80G), 网络也不怎么样, 2MB的, 接了6台[……]

继续阅读

[转]解决Linux 下 Gvim 菜单栏没有字

  • Vim

正确的解决方法请参考这个:http://liulang.is-programmer.com/posts/329.html

输 入locale查看到的是

LOCALE="zh_CN.utf8"
LANG="zh_CN.utf8"
上面的是不标准的写法。

标 准的写法应该是:zh_CN.UTF-8

export LANG=’zh_CN.UTF-8′
后马上 恢复正常可以显示菜单。



之前的解决办法(不修改系统的locale设置):

今天在arch linux上装了gvim,发现打开之后看不到菜单文字[……]

继续阅读

USACO 1.5.3 SuperPrime Rib

  • OI路程

  这一题刚开始我是打算把所有的数都遍历一次,如当n=4时,就把1000~9999全部遍历,然后以此判断,但很快发现会超时,也可能是想起来以前刷的时候这个方法就是超时的,后来仔细想了一下,需要深搜!前遍历最高位,然后依次到个位,额,文字解释不清楚,用代码解释吧:

  问题出现了一些,但是因为是把程序的思路改了一两次,所以我就不好写哪里是错误了:
/
LANG: C
ID: yylogoo2
PROG: sprime
/
#include <math.h>
#include <stdio.h&g[……]

继续阅读

USACO 1.5.2 Prime Palindromes

  • OI路程

  这一题我用的依然是以前的解法,现只求回文数,而且偶数回文数不需要求(如:312213)必定是11的倍数但是11要特殊处理,反正这一次我错了不少地方。
  1,把变量名写错了,上面分明是给a赋值,下面却写成了对b进行操作。

  2,对于回文数的制造的下标弄错了(不好细说,看代码里的注释和上下文把。)
  3,循环的范围错误,也是制造回文的错误!
  4,字符串的结尾忘记’\0’了。
  5,搜索的范围错误!!
  一次AC,代码如下:
/
LANG: C
ID: yylogoo2
PROG: pprime
/
#include&nbsp[……]

继续阅读

USACO 1.5.1 Number Triangles

  • OI路程

  明显是一个动态规划,有两种思路,一种是至上而下的,一种是至下而上的,让我联想到了几个大国家的革命和改革,我支持改革,革命总是要留下一些历史痕迹,漏洞,所以我选择的是至下而上的改革。至下而上的DP有什么好处呢?好处多了,因为没有任何特殊情况要考虑,如果是至上而下的DP的话,首先有特殊情况,对于每一个内层循环的值等于外层的值的话,但是这个处理得好的话还是可以做到不要多余的if来判断i是否等于j,在输出答案时不需要遍历底层,在这里的代码我犯了一个小错误导致我的代码丢了最后一个点。
  犯的错误:数组的下标使用错误了,在[……]

继续阅读

USACO 1.4.4 Mother's Milk

  • OI路程

  这一题经过反复的深思熟虑,使用三元数组作为牛奶桶中的牛奶,可以解决很多不必要的纠纷!这个题目充分体现了数据结构对算法影响力的巨大!如果不使用数组而使用三个变量作为参数传递的话,真的会很麻烦的,虽然程序大致的时间复杂度不会改变,但是其常数项会大大增加!所以这题的数据结构选择十分重要。
  我的思路就是暴力枚举所有牛奶可能的情况,反复搜索,用used[a][c]防止重复搜索。

  这里我还有一个空间的优化,不需要单独为答案开辟一个数组,直接使用防止重复的used二维数组来输出就是,也省去了枚举中很多不必要的判断时间,所[……]

继续阅读

USACO 1.4.3 Arithmetic Progressions

  • OI路程

  算法应该是比较单纯的,先把所有的双平方数找出来,并排序;然后再比如双平方数num[i], num[i + 1],那么a = num[i], b = num[i + 1] – num[i] (num已经排序了),然后便利他们就是,唯一要注意的就是一个大的剪支,当a + (n – 1) b > 最大的双平方数时,那么就结束循环,把所有的答案a, b排序一次输出即可。

  Mistacks:
  1、求双平方数的时候,应该是i

i + j j,我却写成i j。

  2、双平方数应该是两个同时从0开始遍历的数的[……]

继续阅读

USACO 1.4.2 The Clocks

  • OI路程

  这一个题目我还算是自豪吧,代码比以前写的好看一点,仅仅是因为几行代码的原因,但是这几行代码我觉得挺好的!具体是哪几行,看代码的注释,代码中唯一的一个错误就是判断一个数据是否为答案时竟然忘记判断了!!

  代码如下:
/
LANG: C
ID: yylogoo2
PROG: clocks
/
#include <stdio.h>
#include <string.h>
int clocks[9];
char ways[9][6] = {"ABDE",[……]

继续阅读