zoukankan      html  css  js  c++  java
  • 看程序写结果

    看程序写结果

    题目描述:
    LYK 最近在准备 NOIP2017 的初赛,它最不擅长的就是看程序写结果了,因此它拼命地在练习。
    这次它拿到这样的一个程序:
    C++:
    scanf(“%d”,&n);
    for (i=1; i<=n; i++) scanf(“%d”,&a[i]);
    for (i=1; i<=n; i++) for (j=1; j<=n; j++) for (k=1; k<=n; k++) for (l=1; l<=n; l++)
    if (a[i]==a[j] && a[i]< a[k] && a[k]==a[l]) ans=(ans+1)%1000000007;
    printf(“%d ”,ans);
    LYK 知道了所有输入数据,它想知道这个程序运行下来会输出多少。
    输入格式:
    第一行一个数 n,第二行 n 个数,表示 ai。
    输出格式(program.out)
    一个数表示答案。
    输入样例:
    4
    1 1 3 3
    输出样例:
    4
    数据范围:
    对于 20%的数据 n<=50。
    对于 40%的数据 n<=200。
    对于 60%的数据 n<=2000。
    对于 100%的数据 n<=100000, 1<=ai<=1000000000。
    其中均匀分布着 50%的数据不同的 ai 个数<=10,对于另外 50%的数据不同的 ai 个数>=n/10。
    思路:
    题目的意思就是找到i,j,k,l
    使得a[i]==a[j]

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #define lon long long
    using namespace std;
    const int maxn=100010;
    const int mod=1000000007;
    lon n,a[maxn],b[maxn],s[maxn],sum[maxn];
    int main()
    {
        freopen("program.in","r",stdin);
        freopen("program.out","w",stdout);
        scanf("%lld",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%lld",&a[i]);
            b[i]=a[i];
        }
        sort(b+1,b+n+1);
        lon tot=unique(b+1,b+n+1)-b-1;
        for(int i=1;i<=n;i++)
        {
            lon pos=lower_bound(b+1,b+tot+1,a[i])-b;
            sum[pos]++;
        }
        lon ans=0;
        for(lon i=tot;i>=1;i--)
        {
            sum[i]=sum[i]%mod*sum[i]%mod;
            s[i]=s[i+1]+sum[i];
            ans=(ans+sum[i]*s[i+1]%mod)%mod;
        }
        cout<<ans;
        fclose(stdin);fclose(stdout);
        return 0;
    }
  • 相关阅读:
    ORA01034:ORACLE not available 问题的解决方法
    利用Bulk Insert将Excel中的大批量数据入库
    【Hibernate】*.hbm.xml配置
    lib和dll文件的区别和联系
    oracle ,mysql总date的比较
    C++ Primer 4 CPP Note 1.5 类的简介
    C++ Primer 4 CPP Note 1.4 控制结构
    未找到方法: Dispose System.IO.Stream
    pragma comment的使用
    C++ Primer 4 CPP Note 2.1 基本内置类型
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070901.html
Copyright © 2011-2022 走看看