zoukankan      html  css  js  c++  java
  • CODEFORCES-1077c

    Good Array

    题目链接:https://vjudge.net/problem/CodeForces-1077C

    题目大意:给你n个数组成的序列,如果从中删除一个数后,其余的n-1个数组成der序列满足其中一个数

    等于其余数der和,求满足条件的数的位置

    题目思路:n-1个数组成的序列,设这个和值为a n-1个数der和就是 2*a,也就是说除去删除der那个数剩下的

    的和能被2整除,并且这n-1个数中存在值为a的数。也就是说我们需要先求的n个数的和,并且标记每一个数出现的次数

    在遍历一遍每一个值,如果sum-a[i]能被2整除并且vis[(sum-a[i])/2]为真值,就记录这个位置i。代码如下:

    #include<iostream>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    const int maxn=2e5+10;
    const int maxns=1e6+10;
    int dp[6];
    int vis[maxns];
    int a[maxn];
    int main()
    {  
    int n;
        cin>>n;
        long long sum=0;
        int maxx=-1;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            maxx=max(maxx,a[i]);
            vis[a[i]]++;
            sum+=a[i];
        }
        int cnt=0;
        int ans[maxn];
        for(int i=1;i<=n;i++)
        {
            if((sum-a[i])%2==0)
            {
                long long flag=(sum-a[i])/2;
                if(flag>maxx) continue;
                vis[a[i]]--;  //a[i]被删除自然要-1;
                if(vis[flag])
                {
                  ans[++cnt]=i;        
                  } 
                  vis[a[i]]++; //恢复原序列
            }
        }
        cout<<cnt<<endl;
        for(int i=1;i<=cnt;i++) cout<<ans[i]<<(i==cnt?'
    ':' ');
        return 0;
    } 
  • 相关阅读:
    JVM
    事务
    Spring中AutowireMode(自动装配模型)
    ImportAware应用
    spring中几个比较重要的扩展点
    动态代理在Spring中的应用
    基于ImportSelector模拟简单的Aop
    正则表达式分组(Grouping)
    正则表达式断言(Assertions)
    一个JSON解析器
  • 原文地址:https://www.cnblogs.com/tombraider-shadow/p/11219075.html
Copyright © 2011-2022 走看看