上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 41 下一页
摘要: 传送门 以 去掉多少个 为阶段不好做。 去掉 k 个也可以变成选 n - k 个 f[i][j] 表示前 i 个数中 选 j 个的最优解,a[i] 必选 f[i][j] = min(f[i][j], f[k][j - 1] + abs(b[k] - b[i])) (2 <= j <= min(i, 阅读全文
posted @ 2017-05-24 16:13 zht467 阅读(122) 评论(0) 推荐(0)
摘要: 传送门 幼儿园DP。 ——代码 1 #include <cstdio> 2 #include <iostream> 3 4 const int MAXN = 2001; 5 int n, m, ans = ~(1 << 31); 6 int a[MAXN][MAXN], f[MAXN][MAXN]; 阅读全文
posted @ 2017-05-24 15:18 zht467 阅读(99) 评论(0) 推荐(0)
摘要: 传送门 和奶牛那个题很像,每一行状态互不影响,也就是求 n 遍DP 不过高精度非常恶心,第一次写,调了我一上午。 ——代码 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 5 struct Big_int 6 { 7 阅读全文
posted @ 2017-05-24 11:35 zht467 阅读(138) 评论(0) 推荐(0)
摘要: 传送门 f[i][j][k] 表示 左右两段取到 i .... j 时,取 k 次的最优解 可以优化 k 其实等于 n - j + i 则 f[i][j] = max(f[i + 1][j] + a[i] * (n - j + i), f[i][j - 1] + a[j] * (n - j + i) 阅读全文
posted @ 2017-05-24 08:14 zht467 阅读(135) 评论(0) 推荐(0)
摘要: 传送门 动归,用f[i][j]表示到达第I列高度为j时最少需要飞的次数,容易想到最裸的转移: f[i][j]=min(min(f[i-1][j-up[i-1]*k]+k),f[i-1][j+down[i-1]]) 但是会超时 考虑怎么优化k的循环,发现k可以从k-1转移过来,从图上来理解就是比如k= 阅读全文
posted @ 2017-05-22 14:54 zht467 阅读(160) 评论(0) 推荐(0)
摘要: 传送门 又是个模拟水题,考虑边界就好,连long long都不用开。 ——代码 1 #include <cstdio> 2 #include <iostream> 3 4 int n, d, ans, max; 5 int a[201][201]; 6 7 inline int read() 8 { 阅读全文
posted @ 2017-05-22 14:44 zht467 阅读(161) 评论(0) 推荐(0)
摘要: 传送门 距离为2的点会产生权值,第一问,只需要在dfs的时候把一个点相邻的点都处理出来就行。 具体处理方式看代码,然而这样只处理了一遍,最后在乘2就好了。 第二问只需要处理一个点相邻的点中最大的和次大的就行。 ——代码 1 #include <cstdio> 2 #include <cstring> 阅读全文
posted @ 2017-05-22 10:29 zht467 阅读(121) 评论(0) 推荐(0)
摘要: 传送门 虽然是模拟,但是我们可以用矩阵保存结果,来是其更加简便。 ——代码 1 #include <cstdio> 2 #include <iostream> 3 4 int map[5][5] = {{0, 0, 1, 1, 0}, 5 {1, 0, 0, 1, 0}, 6 {0, 1, 0, 0 阅读全文
posted @ 2017-05-22 10:02 zht467 阅读(122) 评论(0) 推荐(0)
摘要: noip2013年的题考了300分 才发现出现了好多问题。 比如,不能想当然,还是得仔细思考题目,还有,样例都是太水,得多测几组。 各种需要注意的细节,比如 i >= 1 可以直接用 i 代替,而 i >= 0 就呵呵了。 还有最重要的一件事,不要用系统保留字。 noip的知识点学得差不多了,感觉可 阅读全文
posted @ 2017-05-22 09:41 zht467 阅读(127) 评论(0) 推荐(0)
摘要: 传送门 n2 过不了惨啊 70分做法 f[i][0] 表示第 i 个作为高的,的最优解 f[i][0] 表示第 i 个作为低的,的最优解 (且第 i 个一定选) 那么 f[i+1][1]=max(f[j][0])+1,i>=j>=1,h[j]>h[i+1], f[i+1][0]=max(f[j][1 阅读全文
posted @ 2017-05-21 21:28 zht467 阅读(177) 评论(0) 推荐(0)
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 41 下一页