动态规划:洛谷 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles
洛谷 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles
洛谷一个普及-的题,我以前也是用DFS做的,现在用DP+滚动数组,提时间省空间!
我的题解:
1 //洛谷 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 using namespace std; 6 int dp[1005]; 7 int pre[1005];//存放上一层的数据 8 int main() 9 { 10 int n; 11 scanf("%d", &n); 12 int data; 13 for (int i = 1; i <= n; ++i)//输入n层 14 { 15 for (int j = 1; j <= i; ++j)//i层就输入i个元素 16 { 17 scanf("%d", &data); 18 dp[j] = max(pre[j - 1] + data, pre[j] + data); 19 //第一层也没事 反正一开始pre里都是空的 20 //这里用的是滚动数组,节约空间,每一次旧的存在pre中,新的覆盖dp 21 } 22 memcpy(pre, dp, sizeof(dp));//每次把新得到到一层存入pre中 23 //memcpy注意要头文件cstring 24 } 25 int ans = -99999; 26 for (int i = 1; i <= n; ++i) 27 { 28 ans = max(dp[i], ans); 29 } 30 printf("%d", ans); 31 return 0; 32 }
本来想开二维数组,后来发现滚动数组很方便,只需要一个pre存储一下数据,每次用memcpy赋值覆盖一下,十分方便!
通过啦~
分类:
动态规划
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具