跳至正文

算法

Noip 2005 篝火晚会

  • OI路程

  纠结了不知道好久,最后发现题目的意思理解错了(b1, b2, ….., bm)这些b是任意选择的, 也就是说可以选择(1, 5, 7)之类的。那么把题目理解正确了就好说了,输出的就是没有站好的人数(就是位置站错了的),所以就很简单了。
  首先一个初始列队,一个目标列队(即每个人理想的左右的人[……]

继续阅读

tvyj 1006 isbn

  • OI路程

  对我面向对象的能力越来越喜欢了,对于抽离函数的能力,自认为已经算是比较强大的了!当然,还远远不够咯,但是这一切都是慢慢来的,发现我挺喜欢面向对象的,但是我又不喜欢C++,哈哈,题外话不说了。
  这一题其实比较简单,估计也没几个不能AC的,但是我就提交了两次,因为当不输出Right的时候我没把is[……]

继续阅读

tyvj 1005 采药

  • OI路程

  01背包的例子,不过第一次写的时候不小心把01背包写成了无限背包,代码如下:

#include <stdio.h>
#define max(a, b) ((a)>(b)?(a):(b))
int f[1001];

int main(void)
{
 [……]

继续阅读

[未AC]tyvj 1004 滑雪

  • OI路程
  以前看过这题,没看懂,现在是看懂了,就是在这里面找一个最长的递减(递增)序列,我的思路是,从最小的值开始向四周搜索,把每一个比它大的都算是一条路径,结果,很遗憾提交了4次也只70分,现在发现是思路不行,比如最小的0周围都是最大的数字,那么我的程序直接输出2,但是正确答案却不是1,代码先贴上:
  [……]

继续阅读

tyvj 1003 越野跑

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

继续阅读

NOIP 2003 神经网络 解体报告

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

继续阅读

USACO 1.5.3 SuperPrime Rib

  • OI路程

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

  问题出现了一些,但是因为是把程序的[……]

继续阅读

USACO 1.5.2 Prime Palindromes

  • OI路程

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

  2,对于回文数的制造的下标弄错了(不好细说,看代码里的注释和上下文把。)
 [……]

继续阅读

USACO 1.5.1 Number Triangles

  • OI路程

  明显是一个动态规划,有两种思路,一种是至上而下的,一种是至下而上的,让我联想到了几个大国家的革命和改革,我支持改革,革命总是要留下一些历史痕迹,漏洞,所以我选择的是至下而上的改革。至下而上的DP有什么好处呢?好处多了,因为没有任何特殊情况要考虑,如果是至上而下的DP的话,首先有特殊情况,对于每一[……]

继续阅读