zoukankan      html  css  js  c++  java
  • 我只是来打个电话

    Telephon(暴力解决)

    题目简介:

    精神病院有一个这样的测试。
    给出一个正整数集合,集合中的数各不相同,然后要求病人回答:
    其中有多少个数,恰好等于集合中另外两个(不同的)数之和?
    回答正确的人,即可以出院。
    但是,条件是苛刻的——
    一秒。
    直到变成废墟前,也没有人从中逃出。
    但是如今不同了。
    对吧?

    Input
    共两行,第一行包含一个整数 n,表示测试题中给出的正整数个数。
    第二行有 n 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。

    Output
    一个整数,表示测验题答案。

    Examples

    telephone.in 4

    telephone.out  1 2 3 4 2

    Notes

    对于所有数据,满足 3 ≤ n ≤ 5000,给出的正整数不超过 10000。 Task1[50%] n ≤ 100 Task2[100%]
    无特殊限制

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int a[5001],b[20001];
    int main()
    {
        int n,ans=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        cin>>a[i];
        for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
        b[a[i]+a[j]]=1;
        for(int i=1;i<=n;i++)
        {
            if(b[i]==1)
            ans++;
        } 
        cout<<ans;
        return 0;
    } 

    思路:

    很容易想到O(n三方)算法;

    三重循环暴力枚举

    但是5000在那,你怎么都会被T掉。

    用两重循环才能过。

    机缘巧合顺理成章地想到桶排。

    将能够得到到的数存起来。

    这样就快的多。

  • 相关阅读:
    omnibus gitlab-ce安装
    Helm
    pod状态为Back-off
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
    云主机搭建Kubernetes 1.10集群
    Linux清除Windows密码
    Nginx负载均衡之健康检查
    MariaDB主从复制搭建
    Python基础
    Tomcat URL重写
  • 原文地址:https://www.cnblogs.com/YYCether666/p/11182181.html
Copyright © 2011-2022 走看看