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");
    }
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MQTT服务器搭建非常详细流程(每一步都有,CMD窗口都有)

    MQTT服务器搭建非常详细流程(每一步都有,CMD窗口都有)搭建过程想搭建一个MQTT服务器,刚好找到ApacheActiveMQArtemis支持,而且是基于Java开发的,那跨平台就很方便。以下是在Windows7(64位)系统下搭建:下载首先下载ApacheActiveMQArtemis,官方地址:https://activemq.apache.org/components/artemis/download/下载bin包就可以安装随便解压Z:\apache-artemis-2.9.0创建使用cmd命令行进入cd->Z:\apa

  • 怎么开发微信公众帐号_建立微信公众号收费吗

    怎么开发微信公众帐号_建立微信公众号收费吗微信公众账号的注册流程(图文详解)

  • 用LoadRunner开发开心网外挂「建议收藏」

    用LoadRunner开发开心网外挂「建议收藏」现在基于WEB页面的网络游戏越来越流行,由于是基于HTTP的,因此应该可以用LoadRunner来开发外挂。今天略为试了一下,证实是可行的。以开心网的争车位游戏为例,用LoadRunner录制Web(HTTP/HTML)脚本,并进行适当的修改,主要是做一些关联和参数化。为速度起见,删掉一些资源请求的脚本。脚本摘录如下:Action(){char*parkID…

  • ELK入门

    ELK入门ELK入门

  • pycharm如何创建flask项目_适合flask的前端框架

    pycharm如何创建flask项目_适合flask的前端框架在网上看了很多办法,大都是用用命令行来实现,而且对Windows用户很不友好。其实只要在settings中选择projectinterpreter,再在右边点击+,再搜索flask选择第一个进行install就可以了,pycharm还会帮你装上所需要的其他插件第一篇博客,大家觉得有用的话给个赞可好你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Mar…

  • yuicompressor java_YUI Compressor[通俗易懂]

    yuicompressor java_YUI Compressor[通俗易懂]简介根据雅虎卓越性能团队的说法,40%到60%的雅虎用户拥有空闲缓存体验,所有页面浏览量中约有20%是使用空缓存完成的(请参阅TenniTheurer在YUIBlog上的这篇文章)有关浏览器缓存使用的更多信息)。这一事实概述了保持网页尽可能轻量化的重要性。改进页面或Web应用程序的工程设计通常会带来最大的节省,而且应始终是主要策略。通过正确的设计,有许多提高性能的辅助策略,例如缩小代码,HTTP…

发表回复

您的电子邮箱地址不会被公开。

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