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)
blank

相关推荐

  • Centos下添加用户到用户组

    Centos下添加用户到用户组

    2021年10月23日
  • hg261gu光猫说明书_hg2201t光猫设置教程

    hg261gu光猫说明书_hg2201t光猫设置教程电信光纤友华PT921G光猫激活成功教程关闭自带路由改桥接拨号教程电信光猫质量烂就算了,最受不了它自带的路由还做了手脚,导致VPN用不了。不让看AV就算了,打个外服游戏总可以吧?不知道为啥,网上关于光猫改桥接的教程基本没有,搜出来的也说得很不清楚,是和谐了还是什么原因不得而知。本人也是自己自己试出来的,其实修改难度并不大,只不过那个界面搞的特奇葩特不友好罢了。废话不多说,步骤如下:

  • SPSS操作(四):系统聚类分析

    SPSS操作(四):系统聚类分析现用如下数据做系统聚类分析:将数据导入spss中,如图:步骤如下:①【分析】—-【分类】—-【系统聚类】②x2、x3、x4、x5、x6、x7、x8添加到变量,x1(即地区)添加到个案标注依据小技巧:添加变量的时候,可以单击【医疗机构床位数(张)】,然后按住shift键不松,鼠标单击【医院(个)】就可以选择多个变量一起添加③点击【统计】勾选【解的范围】,可以根据自己的需要选择最小聚类数和最大聚类数(这里我设置为2和5),然后点击【继续】④点击【图】,(这里我选择的是做系谱图

    2022年10月18日
  • ManagementObjectSearcher的使用「建议收藏」

    ManagementObjectSearcher的使用「建议收藏」1.获取本地路径的网络访问地址privateIEnumerable<KeyValuePair<string,string>>GetShareFolders(){va

  • smtp搭建_smtp服务器指的是什么服务器

    smtp搭建_smtp服务器指的是什么服务器应用目标:更稳定地发送邮件实现难度:★★☆☆☆我们在发送电子邮件的时候,这封E-mail首先来到ISP提供的邮件服务器,再通过它发送出去。但如果ISP因为网络出现一些问题,则可能会耽搁邮件的发送,甚至可能会造成邮件丢失。如果用自己的机器做SMTP服务器来发邮件,那肯定不会出现上述情况啦!怎么样,心动了吧?下面咱们就一起来架设一个属于自己的SMTP服务器,让你的E-mail发送更安全。一、SMTP服…

  • MySQL索引失效的几种场景

    MySQL索引失效的几种场景

    2021年11月10日

发表回复

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

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