NOIP 2013 Senior 4

来源:互联网 发布:学唱简谱软件 编辑:程序博客网 时间:2024/06/14 07:11

思路 1

强行模拟。一看就知道这个算法不好写,写出来还容易超时= =。

思路 2

考虑n=1的情况,发现此时操作次数就是第一列高度。再考虑n=2的情况,发现如果h[2]h[1],则不需要操作,否则只需要操作h[2]h[1]次。同理,继续操作下去,发现某一列需要的操作次数仅跟上一列的高度有关,所以用一个变量记录上一个的高度就可以了。

参考代码

    INT n;    n = readIn();    INT ans = 0;    INT pre = 0;    for (int i = 1; i <= n; i++)    {        INT cnt = readIn();        if (cnt > pre)        {            ans += cnt - pre;        }        pre = cnt;    }    cout << ans << endl;
原创粉丝点击