跳至正文

算法

NOIp 2006 提高组 2 金明的预算方案

  首先要考虑的是,如果没有主件和附件的话,那题目将会非常的简单,那这就是最简单的01背包了,但是麻烦的是题目有主件和附件。那我们怎么办呢?不做了?开玩笑,既然你走了OI这条路,那就千万别回头!那我能不能用01背包来处理这个题目呢?当然是能的,注意题目中的这句话“每个主件可以有0个、1个或2个附件。[……]

继续阅读

NOIP 2006 提高组 1 能量项链

  因为以前做过这一题,所以很快就写出来了,不过在一个细节的地方纠结了好久,具体位置见注释。
  思路和以前是一样的,f[i][j] = max(map[i] map[i + a] map[i + j] + f[i][a] + f[i + a][j – i]); f[i][j]表示从第i个珠子往后[……]

继续阅读

NOIp 2007 提高组 4 树网的核

  这个题目网上有很多题解,不过直接照抄的话确实不太好,我还是说说我自己的过程吧。
  首先,可以知道的是“核”越长越好,确实说不太清楚,看下面的图吧:

NOIp 2007 提高组 4 树网的核 - NeWorldMaker - My S-K-Y
   如果核是A-B的话,A-B距离X的值为B到X的距离,假设为x,即B至X的距离,但是如果核是A-C的话,那么A-C距离X的值就会小于x,[……]

继续阅读

TYVJ 第三题 滑雪 解题报告

  • OI路程
题目:
背景 Background
  成成第一次模拟赛 第三道
描述 Description
    trs喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。
  例如样例中的那个矩形,可[……]

继续阅读

TYVJ 第二题 第K极值

  • OI路程
  思路很简单, 将数据进行一次排序, 取第t个和倒数第t个, 然后倒数第t个减去第t个, 再判断差是否为素数..
  听前辈们说NOIp不能使用库函数qsort, 而我一老使用, 为了避免考试0分的情况, 这里就自己写了一个快排, 当快拍的元素少于15个时就使用插入排序进行排序.
  代码如下:
#in[……]

继续阅读

NOIp 2007 第三题 矩阵取数游戏

  题目困扰了我很久,后来才知道,该怎么解题。
  这题说是说矩阵取数,但是仔细看看能够知道,和矩阵没什么关系,只每行的最大值有关,因为每行之间的最大没有任何关系。那么就将矩阵取数转变成了对数组取数,对数组取数很容易看出来是DP,DP方程如下:f[i][j] = max( 2 map[i] +&nb[……]

继续阅读

NOIP 2007 统计数字 解题报告

  这一题我的思路(应该)是O(nlogn)的,就是进行一趟快排加上对数组进行一次扫描。
  快排直接调用库函数,扫描就是用j记录当前自然数,c记录当前自然数出现的次数,如果num[i]和j相同,c++;不同就输出j和c,然后j=num[i], c = 1。在循环结束后还要将最后一个自然数输出。
  下[……]

继续阅读