第一行一个整数n,表示序列的长度(0 < n <=1000000) 第二行n个整数,表示第二种方法的记录。
一行,空格分隔的n个整数,表示第一种表示方法的序列。
5 0 0 0 2 4
2 4 5 5 5
题解:其实把入栈对应为括号就理解了。示例对应如下括号序列
///meek #include<stdio.h> int a[1000001],b[1000001]; int main() { int n; while(~scanf("%d",&n)) { for(int i=1; i<=n; i++) { scanf("%d",&a[i]); if(!a[i]) b[i] = 1; else b[i-a[i]]++, b[i] = 0; } int ans=0; for(int i=1; i<n; i++) ans=ans+b[i], printf("%d ",ans); printf("%d\n",ans+b[n]); } return 0; }
原文:http://www.cnblogs.com/zxhl/p/4992871.html