摘要: 传送门 动归,用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)