zoukankan      html  css  js  c++  java
  • 05:LGTB 与偶数

    总时间限制: 
    10000ms
     
    单个测试点时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    LGTB 有一个长度为 N 的序列。当序列中存在相邻的两个数的和为偶数的话,LGTB 就能把它们删掉。

    LGTB 想让序列尽量短,请问能将序列缩短到几个数?

    输入
    第一行包含一个数 N 代表序列初始长度
    接下来一行包含 N 个数 a1, a2, ..., aN,代表序列
    输出
    输出包含一个数代表操作后序列最短长度
    样例输入
    10
    1 3 3 4 2 4 1 3 7 1
    
    样例输出
    2
    
    提示
    对于 50% 的数据,1 ≤ N ≤ 1000
    对于 100% 的数据,1 ≤ N ≤ 1e5
    , 0 ≤ ai ≤ 1e9
    【思路】
    一开始dp死活做不出来...
    栈 边读边处理....
    不太明白为什么处理顺序对答案没影响...
    【code】
    //05:LGTB 与偶数
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int n,top,sz[100009],stack[100009];
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&sz[i]);
            if(!top)stack[++top]=sz[i];
            else
            if(((stack[top]+sz[i])&1)==0)
            top--;
            else
            stack[++top]=sz[i];
        }
        printf("%d
    ",top);
        return 0;
    }
  • 相关阅读:
    第十一周上机练习
    JAVA第十周上机练习
    JAVA第九周上机练习
    JAVA第八周作业
    JAVA第八周上机作业
    JAVA第七周作业
    Java第七周上机练习
    Java第六周作业
    JAVA第六周上机练习
    34-指针与二维数组
  • 原文地址:https://www.cnblogs.com/zzyh/p/7207693.html
Copyright © 2011-2022 走看看