ecnu 核反应控制 数学

著名物理学家 Daffy Duck 提出了核反应控制的关键理论。

该理论的(玄学)表述是:在一个原子堆中有很多原子量不同的原子,如果原子 A 的原子量和原子 B 的原子量之和,恰好等于原子 C 的原子量,那么核反应控制难度将急剧增大。

该理论的(数学)表述是:有集合  A={a1,a2,,an} ,如果存在  i,j,k(ij,ik,jk)  使得  ai+aj=ak ,则输出 NO;否则输出 YES

Input

第一行是数据组数  T   (1T20) 。接下来  2T  行:

每两行一组数据,第一行是一个整数  n   (1n50 000) ,第二行是用空格隔开的  n  
个不同的整数  a1,a2,,an   (1a1,a2,,an200 000)

Output

对于每组数据,输出 Case x: y。其中 x 是从 1 开始的测试数据编号,y 是 YES 或 NO

解法:

枚举i j 计算 ak 用map查看ak是否在集合A中。时间复杂度O(N^2)。map可用数组代替,查找速度更快,枚举i j 有trick ,先对ai数组排序,

如果ai + aj 都大于200000了,那么后面的数相加的和只会越来越大,所以直接break掉。然后就过了QAQ  。。。


#include <iostream>
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const int maxn=1e6;
const ll mod=1e9+7;
int a[50005];
//struct node{
//    int val;
//    set<int> s;
//    bool operator<(const node t){
//        return val<t.val;
//    }
//    bool operator==(const node t){
//        return val==t.val;
//    }
//};

int  mp[200005];

int main()
{
    int t;
    scanf("%d",&t);
    for(int cas=1;cas<=t;cas++){
        int n;
        scanf("%d",&n);
        memset(mp,0,sizeof(mp));
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
            mp[a[i]]=1;
        }
        sort(a,a+n);
        int flag=0;
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                int x=a[i]+a[j];
                if(x<1||x>200000)break;
                if(mp[x]==1){
                    flag=1;
                    break;
                }
            }
            if(flag)break;
        }
        if(flag)printf("Case %d: NO\n",cas);
        else printf("Case %d: YES\n",cas);
    }
    return 0;
}














ECNU计科考研复试机试是上海东华大学计算机科学与技术专业硕士研究生复试环节的一部分。机试一般包括计算机基础知识测试、编程实践、算法设计与分析、数据结构、数据库等内容。 机试的目的是通过实际操作和任务完成,评估考生的计算机基础知识、编程能力和解决问题的能力。机试一般会提供一些实际问题,考生需要根据题目要求进行编程实现,并实现功能要求以及考察的相关知识点。机试的题目会有一定的难度,需要考生具备扎实的计算机基础知识和编程实践经验。 针对ECNU计科考研复试机试的准备,考生可以从以下几个方面进行: 1. 夯实计算机基础知识:系统复习计算机组成原理、操作系统、数据结构、数据库等相关课程的基础知识点,理解并掌握核心概念和原理。 2. 学习编程技巧:熟练掌握至少一种编程语言,例如C++、Java等,并了解常用的编程工具和调试技巧,提高编程能力。 3. 解题经验积累:多做一些编程题和算法题,提高解题能力和编程实践经验。可以通过参加一些线上或线下的编程竞赛来提升自己的算法和编程水平。 4. 多做模拟机试:通过模拟机试,熟悉机试的形式和题目类型,提前感受机试的压力和难度,并对自己的不足进行总结和改进。 总之,ECNU计科考研复试机试是对考生计算机基础知识和编程实践能力的综合考查,需要考生充分准备和深入理解相关知识点。只有全面提高自己的计算机科学水平,才能在机试中取得好成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值