51nod 1403 有趣的堆栈
2020-04-01 18:41
162 查看
主要是能分析出这样一个结论:
每个pop根据这个元素上面被压过多少个元素,可以知道他是在前面哪个pop之前被push的。
根据这些信息可以求得每个pop到上一个pop之间有多少个push,最后求个前缀和即可。
#include <stdio.h> const int maxN=1e6+5; int N, g[maxN], h[maxN]; int main() { scanf("%d", &N); for (int i = 1; i <= N; ++i) { scanf("%d", &g[i]); if (g[i]) h[i - g[i]] += 1; else h[i] = 1; } for (int i = 2; i <= N; ++i) h[i] += h[i - 1]; for (int i = 1; i <= N; ++i) printf("%d ", h[i]); puts(""); return 0; }
转载于:https://www.cnblogs.com/Rosebud/p/9517750.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 51Nod-1403-有趣的堆栈
- 51nod-1403 有趣的堆栈
- 51nod 1403 有趣的堆栈
- 51nod 1403 有趣的堆栈
- 51nod 1403 有趣的堆栈 (找规律题)
- 51nod 算法马拉松7 C.有趣的堆栈
- 1403 有趣的堆栈
- 1403 有趣的堆栈
- 51nod 1420 数袋鼠好有趣(贪心)
- 【51Nod1403】有趣的堆栈
- 有趣的堆栈
- 51nod 1420 数袋鼠好有趣 (贪心)
- 51Nod-1420-数袋鼠好有趣
- 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少
- 51Nod 1289 大鱼吃小鱼(模拟 有趣)
- 51nod 1420 数袋鼠好有趣【贪心】
- 51nod 1420 数袋鼠好有趣(贪心)
- 51Nod 1246 罐子和硬币(有趣)
- 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少
- 【51nod1403】 有趣的堆栈