USACO-1.5.2-Number triangles
来源:互联网 发布:有利网 知乎 编辑:程序博客网 时间:2024/06/01 21:47
题目链接:http://train.usaco.org/usacoprob2?a=zGnNu71M0aJ&S=numtri
题目大意:算这个数字三角阵的最大值,从顶向下,一个数字可以加它下方或者右下方的数字。是一道经典的贪心算法的题目。放在这一个小结里好像主要是为了掌握滚动数组的使用,就是k ^ 1的那个部分吧。
解题思路:经典的贪心算法题,算到每一行的最大值。我对这道题目的印象特别深刻。代码如下:
#include <iostream>#include <fstream>#include <cstring>using namespace std;int maxOne(int a, int b){ return a > b ? a : b;}int main(){ ifstream fin("numtri.in"); ofstream fout("numtri.out"); int a[1001], iMax[2][1001]; //只需要记录下当前行的最大值和前一行能得到的最大值 int k, n, ans; memset(iMax, 0, sizeof(iMax)); memset(a, 0, sizeof(a)); fin >> n; k = 0; for (int i = 1; i <= n; ++i) { k = k ^ 1; //k会在0和1之间不断切换 for (int j = 1; j <= i; ++j) { fin >> a[j]; iMax[k][j] = a[j] + maxOne(iMax[k ^ 1][j], iMax[k ^ 1][j - 1]); } } ans = 0; for (int i = 1; i <= n; ++i) { ans = iMax[k][i] > ans ? iMax[k][i] : ans; } fout << ans << endl; fin.close(); fout.close(); return 0;}
0 0
- USACO-1.5.2-Number triangles
- USACO 1.5 Number Triangles
- USACO 1.5-Number Triangles
- USACO 1.5 Number Triangles
- [USACO 1.5.1] Number Triangles
- USACO 1.5 Number Triangles (numtri)
- USACO Section 1.5 Number Triangles
- USACO Section 1.5 Number Triangles
- USACO 1.5.1 Number Triangles
- USACO Section 1.5 Number Triangles
- USACO section 1.5.1 Number Triangles
- USACO:1.5.1 Number Triangles 数字金字塔
- USACO 1.5 Number Triangles 数塔问题
- USACO-Section 1.5 Number Triangles(DP)
- USACO 1.5 Number Triangles (DP动态规划)
- USACO 1.5 数字金字塔 Number Triangles
- USACO-Section 1.5 Number Triangles[贪心]
- Number Triangles(usaco)
- Shell
- bootstrapdatetimepicker ff 浏览器 不兼容处理方法
- [LeetCode]Remove Nth Node From End of List
- lnmp环境搭建——php部分
- jacob-word-入门
- USACO-1.5.2-Number triangles
- Socket编程如何实现服务器端接收客户端数据
- git 服务器+git linux客户端搭建
- Android系统 截屏监听 的 原理与实现
- 立体视觉:算法与应用(六)
- html学习笔记之<mate>标签
- mysql5.7忘记密码时,修改root密码
- err: select Deployment target nothing to show 及查看端口占用
- HTTP400