HDU 4334 Trouble

HDU 4334 Trouble

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

合并排序再枚举哭。

题意问五个数组中各抽一个加起来 和是否为 0。

開始想用 200*200*200 和 200*200 比。果然TLE了。

后来知道 得 200*200,200*200 ,200 。

先200*200 的枚举,排序,去重。然后三个元素加起来,微调 两个 200*200 的指针。

这题用 %lld 就WA。得用 %I64d 。贡献N多TLE。N多WA。怒刷存在感。

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>
#define INF 0x7fffffff
#define eps 1e-6
#define LL long long
using namespace std;
LL num[5][201];

LL sum1[201*201];
LL sum2[201*201];

int main()
{
//    freopen("in.txt","r",stdin);
//    freopen("2","w",stdout);
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        for(int i=0; i<5; i++)
            for(int j=0; j<n; j++)
                scanf("%I64d",&num[i][j]);

        int len1=0,len2=0;
        for(int i=0; i<n; i++)
            for(int j=0; j<n; j++)
                sum1[len1++]=num[0][i]+num[1][j];

        for(int i=0; i<n; i++)
            for(int j=0; j<n; j++)
                sum2[len2++]=num[2][i]+num[3][j];

        sort(sum1,sum1+len1);
        sort(sum2,sum2+len2);
        sort(num[4],num[4]+n);

        int l1=unique(sum1,sum1+len1)-sum1;
        int l2=unique(sum2,sum2+len2)-sum2;

        bool flag=0;
        int j,k;
        for(int i=0; i<n&& !flag; i++)
        {
            for(j=0,k=l2-1; j<l1&&k>=0;)
            {
                if(sum1[j]+sum2[k]+num[4][i]==0)
                {
                    flag=1;
                    break;
                }
                else if(sum1[j]+sum2[k]+num[4][i]>0)
                    k--;
                else
                    j++;
            }

        }

        if(flag)
            puts("Yes");
        else
            puts("No");
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118618.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • myeclipse8.6激活成功教程_eclipse最新版

    myeclipse8.6激活成功教程_eclipse最新版一、下载地址:https://pan.baidu.com/s/1SoFlyKb9Ylk3sEDXtsA5TA提取码:uent二、安装1、解压后双击.exe文件,然后点击下一步2、修改安装地址,然后下一步,等待安装…

    2022年9月26日
  • 常见数据库简答题_数据库基础知识试题

    常见数据库简答题_数据库基础知识试题数据库简答题第一章1.简述数据、数据库、数据库管理系统、数据库系统的概念(期末题库、课后题、大纲要求、试题三)数据:描述事物的符号记录数据库:(什么是数据库?答下面所有)长期存储在计算机内、有组织、可共享的大量数据的集合基本特征:(1)数据按照一定的数据模型组织、描述和存储(2)可为各种用户所共享(3)具有较小的冗余度(4)数据独立性较高(5)易扩展性数据库管理系统:(什么是数据库管理系统?答下面所有)(2001研招)位于用户与操作系统之间的一层数据管理软件,他与操作系统一样都是计

    2022年9月19日
  • keil5.24 +注册机 下载

    keil5.24 +注册机 下载下载地址:https://pan.baidu.com/s/1Tmgt9oMY71WBhlz4VM7uCw密码:fqhu管理员身份运行。否则破解失败

    2022年6月11日
  • android之相机开发

    在android中应用相机功能,一般有两种:一种是直接调用系统相机,一种自己写的相机。我将分别演示两种方式的使用:第一种:是使用Intent跳转到系统相机,action为:android.media.action.STILL_IMAGE_CAMERA关键代码:Intent intent = new Intent(); //调用照相机 intent.setAction(

    2022年3月10日
  • 访问页面升级访问_BPC页面访问缓慢无报错

    访问页面升级访问_BPC页面访问缓慢无报错概述引起BPC的页面访问缓慢的原因有很多,可能是由于网络慢、可能是由于BPC进程太忙、也可能是由于mongo数据库性能吃紧,所以对于页面访问缓慢需要根据具体情况实施解决方案注意:本文分析的页面访问缓慢,仅是慢,但不报错知识点根据前台页面表现来大致区分一下问题的归属:仅查询数据的页面访问缓慢点击链接跳转时,在当前页面停留较长时间可能是web处理不过来可能是网络慢或忙点击链接跳转时,页面白屏…

    2022年6月16日
  • 拉姆达语法_map的常用方法

    拉姆达语法_map的常用方法importorg.apache.commons.collections4.MapUtils;@OverridepublicList<Map<String,Object>>getGuidelineSceneStatistical(StringdeptCode){List<Map<String,Object>>mapList=newArrayList<>();List<

    2022年9月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号