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掉。

    用两重循环才能过。

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

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

    这样就快的多。

  • 相关阅读:
    angular 中同级元素交替样式
    Type反射遍历类的属性
    对路径“xxxxx”的访问被拒绝。
    判断文件路径和文件是否存在
    List集合删除方法
    .NET 树型递归
    AngularJS使用ngMessages进行表单验证
    Windows 端口占用查询
    小程序页面高度控制
    如何理解多个域名解析到同一个服务器空间上?
  • 原文地址:https://www.cnblogs.com/YYCether666/p/11182181.html
Copyright © 2011-2022 走看看