首页 > 其他 > 详细

洛谷 P2141 珠心算测验 题解

时间:2019-12-13 00:52:02      阅读:141      评论:0      收藏:0      [点我收藏+]

P2141 珠心算测验

题目


Main Idea:

    随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?

Summary:

    1.读题:因为另外两个不同数之和可能相等,而且这里提问是有多少个数等于另外两个不同数之和,所以这里有去重的意思。

Problem Solving Idea:

    (第一次读题的时候被“集合中的数各不相同”给麻痹了,所以脑子宕机完全没意识到另外两个不同数之和也可能会是同一个数QAQ)
    标记去重。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int b[20051];
int main()
{
    int n,temp=0,ans=0;
    cin>>n;
    int a[n+1];
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    for(int i=0;i<n;i++)    cin>>a[i];
    for(int i=0;i<n-1;i++){
        for(int j=i+1;j<n;j++){
            temp=a[i]+a[j];
            for(int k=0;k<n;k++){
                if(a[k]==temp&&k!=i&&k!=j){
                    if(b[temp]==0)  ans++;
                    b[temp]++;
                    break;
                }
            }
        }
    }
    cout<<ans;
    return 0;
}

洛谷 P2141 珠心算测验 题解

原文:https://www.cnblogs.com/Fhr2001/p/12032365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!