摘要: 跟8年前NOIP 2000 方格取数的题目几乎一样,不多解释了,代码:#include <stdio.h>#include <stdlib.h>#define min(a, b) ((a)<(b)?(a):(b))#define max(a, b) ((a)>(b)?(a):(b))int map[51][51];int f[100][51][51];int main(int argc, char **argv){ int i, j, k, c; int m, n; scanf("%d%d", &m, &n); for(i 阅读全文
posted @ 2011-07-30 20:28 zqynux 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 这算什么算法呢?? 模拟吧,反正很简单,代码:#include <stdio.h>#include <stdlib.h>int num[2000] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};int ans;int main(int argc, char **argv){ int i, j; int n; scanf("%d", &n); n -= 4; for(i = 10; i < 2000; i++){ num[i] = num[i / 10] + num[i % 10]; } for(i = 0; i &l 阅读全文
posted @ 2011-07-30 19:59 zqynux 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 双线程动态规划,f[i][j][k]代表移动i次,两个点的横坐标分别是j, k,转移方程如下: f[i][j][k] = max(f[i - 1][j][k],f[i - 1][j][k - 1],f[i - 1][j - 1][k],f[i - 1][j - 1][k - 1]) 代码如下:#include <stdio.h>#include <stdlib.h>int map[11][11];int f[20][11][11];#define max(a, b) ((a)>(b)?(a):(b))int main(int argc, char **argv){ 阅读全文
posted @ 2011-07-30 19:42 zqynux 阅读(1329) 评论(0) 推荐(1) 编辑
摘要: 最开始写的伪代码如下:寻找当前油量能到达的最便宜的加油站 如果找到了,那就开过去加油。 如果找不到, 那就寻找最近的比本站便宜的站点 找到的话就加油刚好开过去 找不到的话就寻找次优站点,充满油开过去 如果找不到任何站点,那就输出No Solution 但是发现可以优化结构,就又写了一个:寻找距离当前站最近的比当前站便宜的站点 如果找到了,油量够就直接开过去,油量不够就冲到刚好可以开过去 如果找不到,就到前面找一个充满油量能到得了的最便宜的站点,充满油开过去。 如果加满油找不到任何站点,那就输出No Solution 代码如下:#include <stdio.h>#include & 阅读全文
posted @ 2011-07-30 12:41 zqynux 阅读(2163) 评论(0) 推荐(1) 编辑