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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows pip 安装 whl文件

    windows pip 安装 whl文件在安装之前,一直比较迷惑究竟如何用,安装完后,发现竟然如此简单!首先我一般用的是python27,官网下载python27msi安装window764位后,已经自带了Pip和easy_install但是却不晓得如何安装whl目录,经过搜索后发现,把pip和easy_install加入到环境变量中,就可以便捷使用了。1、先找到python的安装目录,以及pip工具所在目录:2、将目录加入环境…

    2022年5月16日
    76
  • mac datagrip2021 激活码[在线序列号]

    mac datagrip2021 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    119
  • Qtime定义(手工废物利用简单好看)

    QTime::QTime()默认构造函数,构造一个时,分,秒都为0的时间,如00:00:00.000(午夜)QTime::QTime(inth,intm,ints=0,intms=0)构造一个用户指定时,分,秒的时间.其参数有效值为:h:0–23m:0–59ms:0–999QTimeQTime::addMSecs(intms)const返回一个当前时间对象之后或之前m…

    2022年4月10日
    51
  • 计算机网络——子网划分(内含习题讲解)

    计算机网络——子网划分(内含习题讲解)PS:(习题是由b站–计算机网络-谢希仁第7版-河南科技大学视频中获得)前情提要:我们在这之前已经学过了两级的IP地址:但是两级的IP地址有很多弊端,所以我们将要学习三级IP地址,也就是两级IP地址的升级版那我们要注意什么呢?一:我怎么去知道人家用的是两级IP还是三级IP呢?答:利用子网掩码;二:那什么是子网掩码呢?…

    2022年4月19日
    36
  • php微信自动回复机器人,微信自动回复机器人功能怎么实现?[通俗易懂]

    php微信自动回复机器人,微信自动回复机器人功能怎么实现?[通俗易懂]原标题:微信自动回复机器人功能怎么实现?微信自动回复机器人功能怎么实现?最近有不少小伙伴都在询问这个问题。很多人在微信营销的过程中,都会有这样的问题,微信好友太多,想要都在第一时间回复,实在没有精力。下面小编就给大家分享如何使用微信自动回复机器人,大家再也不用担心回复不过来而忙的焦头烂额啦。首先通过米云微信软件,扫码将所以微信号登录,就可以将所有微信号的对话集成,全部聊天里整合了所有微信号的聊天…

    2022年10月1日
    4
  • 区块链之P2P技术

    区块链之P2P技术P2P网络:Intel:通过系统间的直接交换达成计算机资源与信息的共享IBM:由若干互联协作的计算机构成并具备如下特性之一:系统依存于边缘化设备的主动协作;每个成员同时扮演客户端和服务器的角色;系统应用的用户能意识到彼此的存在而构成一个虚拟或真实的群体节点彼此对等,既作为服务和资源的提供者,又作为服务和资源的获取者区块链依靠P2P网络可扩展性、健壮性:P2P网络中的所有对等节点都可以提供带宽、存储空间以及计算能力等资源,随着更多节点的加入,系统整体的资源和服务能力也在同步地得到扩充。负载均衡

    2022年6月22日
    65

发表回复

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

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