zoukankan      html  css  js  c++  java
  • Codeforces Gym 100203G G

    G - Good elements
    Time Limit: 20 Sec

    Memory Limit: 256 MB

    题目连接

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87954#problem/G

    Description

    You are given a sequence A consisting of N integers. We will call the i-th element good if it equals the sum of some three elements in positions strictly smaller than i (an element can be used more than once in the sum).

    How many good elements does the sequence contain?

    Input

    The first line of input contains the positive integer N (1 ≤ N ≤ 5000), the length of the sequence A.

    The second line of input contains N space-separated integers representing the sequence A ( - 105 ≤ Ai ≤ 105).

    Output

    The first and only line of output must contain the number of good elements in the sequence.

    Sample Input

    2
    1 3

    Sample Output

    1

    HINT

    题意

          给你一个序列,任意一个数只要等于在它前面的任意三个数之和(可以相同)则称为good数

    题解

          有时候能用数组尽量用数组,set还是有祸害的

    代码:

    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <set>
    #include <vector>
    #include <queue>
    #include <typeinfo>
    #include <map>
    #include <stack>
    typedef long long ll;
    using namespace std;
    inline ll read()
    {
        ll x=0,f=1;
        char ch=getchar();
        while(ch<'0'||ch>'9')
        {
            if(ch=='-')f=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9')
        {
            x=x*10+ch-'0';
            ch=getchar();
        }
        return x*f;
    }
    //***************************
    int s[5000000];
     int main()
     {
         int ans=0;
         int a[50004];
         int n=read();
         for(int i=1;i<=n;i++)
         {
             scanf("%d",&a[i]);
             for(int j=1;j<i;j++)
             {
                 if(s[a[i]-a[j]+500000])
                 {
                     ans++;
                     break;
                 }
             }
             for(int j=1;j<i;j++)
             {
                 s[a[i]+a[j]+500000]=1;
             }
             s[a[i]+a[i]+500000]=1;
         }
         cout<<ans<<endl;
         return 0;
     }
  • 相关阅读:
    weiphp 微调研数据管理控制器
    微调研设置问题控制器
    weiphp调研部分代码
    weiphp 投票插件的主控制器部分代码3
    php Stream Contexts 小记
    通过 Composer Github Packagist制作发布共享PHP包
    SFTP远程文件上传
    百度推广 SEM闪投系统
    Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='
    Swoole 初识
  • 原文地址:https://www.cnblogs.com/zxhl/p/4733431.html
Copyright © 2011-2022 走看看