zoukankan      html  css  js  c++  java
  • HDU 5183 Negative and Positive (NP)

    HDU 5183 Negative and Positive (NP)

    思路:维护一下前缀和,从后往前向set里面插入前缀和,然后查找sum[i-1]+(-1)i+1*k在不在set里面。

    代码(快读+set):

    1466ms险过,用hash表应该快一点。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<set>
    using namespace std;
    #define ll long long
    #define pb push_back
    #define mem(a,b) memset(a,b,sizeof(a)) 
    
    inline int read(){  
       int s=0,w=1;  
       char ch=getchar();  
       while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}  
       while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();  
       return s*w;  
    } 
    
    const int N=1e6+5;
    ll a[N];
    ll sum[N]={0};
    set<ll>s;
    int main()
    {
        /*ios::sync_with_stdio(false);
        cin.tie(0);*/
        int t,cnt=0;
        scanf("%d",&t);
        while(t--)
        {
            cnt++;
            int n,k;
            scanf("%d %d",&n,&k);
            getchar();
            for(int i=1;i<=n;i++)a[i]=read();
            for(int i=1;i<=n;i++)sum[i]=sum[i-1]+(i%2?a[i]:-a[i]);
            /*for(int i=1;i<=n;i++)cout<<a[i]<<' ';
            cout<<endl;*/
            bool f=false;
            for(int i=n;i>=1;i--)
            {
                s.insert(sum[i]);
                if(i&1)
                {
                    if(s.find(sum[i-1]+k)!=s.end())
                    {
                        f=true;
                        break;
                    }
                }
                else
                {
                    if(s.find(sum[i-1]-k)!=s.end())
                    {
                        f=true;
                        break;
                    }
                }
            }
            printf("Case #%d: ",cnt);
            if(f)puts("Yes.");
            else puts("No.");
            s.clear();
        }
        return 0;
    }
  • 相关阅读:
    SAX方式解析XML文件实例
    DOM方式解析XML文件实例
    国外程序员整理的Java资源
    研发十大站点
    UMA
    [转]Hadoop YARN任务提交流程
    JAVA的内存模型
    2014年总结
    Storm因机器断电等,启动supervisor异常
    Python几个算法实现
  • 原文地址:https://www.cnblogs.com/widsom/p/7622243.html
Copyright © 2011-2022 走看看