4 Values Whose Sum is 0(POJ No.2785)

从零开始掌握Python机器学习:七步教程 基础篇 前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后... 阅读详情

4 Values whose Sum is 0

Time Limit: 15000MS Memory Limit: 228000K
Total Submissions: 40350 Accepted: 12353
Case Time Limit: 5000MS

Description

The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In the following, we assume that all lists have the same size n .

Input

The first line of the input file contains the size of the lists n (this value can be as large as 4000). We then have n lines containing four integer values (with absolute value as large as 228 ) that belong respectively to A, B, C and D .

Output

For each input file, your program has to write the number quadruplets whose sum is zero.

Sample Input

6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45

Sample Output

5

Hint

Sample Explanation: Indeed, the sum of the five following quadruplets is zero: (-45, -27, 42, 30), (26, 30, -10, -46), (-32, 22, 56, -46),(-32, 30, -75, 77), (-32, -54, 56, 30).

题目大意:

给定各有n个整数的四个数列A、B、C、D.要从每个数列中各选出一个数(分别为a,b,c,d),使四个数的和为0.求出这样组合的个数。当一个数列中由多个相同的数字时,把他们看作不同的数字。

方案一:

直接从四个数列中枚举四个数,时间复杂度为O(n^4),由于数据量为1e3级别,所以会超时

方案二:

题目是求a+b+c+d=0的方案数,可以把问题转换为c+d=-(a+b)的方案数,这样可以在O(n^2)内枚举出数列A和数列B能表示出的所有整数存入vis数组。然后再枚举c和d,再利用二分查找搜数组中大小为-(c+d)的元素的个数。

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 4e3+10;
int vis[maxn*maxn];
int A[maxn],B[maxn],C[maxn],D[maxn];
int main()
{
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>A[i]>>B[i]>>C[i]>>D[i];
    }
    //枚举
    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<n;j++)
        {
            vis[i*n+j]=A[i]+B[j];
        }
    }
    long long ans = 0;
    
    //因为要二分查找所以要先排序
    sort(vis,vis+n*n);
    //枚举C和D
    for(int i=0;i<n;i++)
    {
        for(int j = 0;j<n;j++)
        {
            int temp = -(C[i]+D[j]);
            int x = upper_bound(vis,vis+n*n,temp)-lower_bound(vis,vis+n*n,temp);
            if(x)
            {
                ans+=x;
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

 

银河飞腾FT6678实战指南:OpenMP多核并行编程优化技巧 本文详细介绍了在银河飞腾FT6678多核处理器上使用OpenMP进行并行编程的实战技巧与优化方法。从基础语法到环境配置,再到性能优化的五大核心技巧,包括循环并行化、并行粒度控制、reduction子句使用等,帮助开发者充分发挥FT6678的8核计算能力。通过实际案例展示如何将图像处理算法从200ms优化到28ms,并深入探讨了任务调度、内存访问优化等进阶主题。 阅读详情

相关推荐

AD从原理图到PCB超详细教程

我在学习AD的时候,看了网上很多教程,但是东西很杂,有很多条理不清而且废话很多,所以相信大家学习的时候也是遇到一样的困难。我就特地写一篇帖子,整理了一下AD从画原理图开始一直到画完PCB文件的所有步骤,一方面是供大家参考学习,另一方面可以方便我自己学习记忆更加深刻。我用的版本是AD16中文版,大家用新的版本AD20或者AD22应该操作都是差不多的。

人生寂寞如雪 18万+

poj 2785 4 Values whose Sum is 0

4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 10535 Accepted: 2904 Case Time Limit: 5000MS Description The SUM problem can b...

weixin_30663471的博客 341

从零到一:STM32CubeMX虚拟串口开发中的常见陷阱与优化策略

本文深入探讨了STM32CubeMX在USB虚拟串口开发中的常见问题与优化策略,涵盖数据流吞吐量瓶颈、实时性约束等核心挑战。通过实战案例和代码示例,详细解析了波特率同步异常、数据丢失等问题的解决方案,并提供了DMA配置和中断优先级调优的高级技巧,帮助开发者提升STM32虚拟串口的性能和可靠性。

weixin_29164185的博客 370

二分查数位置,时间复杂度分析

The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In the followin...

zhaochuanfei666的博客 663

3GPP协议解读_NTN系列(一)_38.811_非地面网络(NTN)的背景、应用场景和信道建模

非地面网络覆盖广,对物理攻击和自然灾害有一定的抵抗性。本文根据3GPP协议对NTN网络的背景、应用场景和信道模型进行了整理。

JCMLSY的博客 4927

【计算机视觉】基于复杂环境下的车牌识别

本文针对复杂环境下(光照变化、车牌变形、噪声干扰)的车牌识别问题,提出了一套完整的优化方案。通过四个核心环节进行改进:1)采用CLAHE、同态滤波等技术优化光照处理;2)使用边缘检测和透视变换应对车牌变形;3)结合中值滤波和暗通道去噪算法消除干扰;4)改进字符分割与识别方法。文章提供了详细的Python实现代码,展示了从预处理到字符识别的完整流程,并通过多策略融合显著提升了复杂场景下的识别准确率。实验结果表明,该方法能有效应对各类复杂环境挑战,为实际应用提供了可靠解决方案。

2401_84149564的博客 1627

POJ-2785 (折半枚举+二分查找)

4 Values whose Sum is 0 - POJ 2785 - Virtual Judge The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In the following,

Ghostttttttiii的博客 717

《自然语言处理实战入门》文本分类 ---- 使用词向量与SVM 进行文本分类

文本分类用电脑对文本集(或其他实体或物件)按照一定的分类体系或标准进行自动分类标记。 它根据一个已经被标注的训练文档集合, 找到文档特征和文档类别之间的关系模型, 然后利用这种学习得到的关系模型对 新的文档进行类别判断 。文本分类从基于知识的方法逐渐转变为基于统计 和机器学习的方法。

shiter编写程序的艺术 2388

第四十二题 UVA1152 和为0的4个值 4 Values whose Sum is 0

The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d) ∈ A × B × C × D are such that a + b + c + d = 0. In the following,...

苦鬼·。 824

WOFOST作物模型(3):敏感性分析

使用TAGP(Total Above Ground Production),地上总产量TSUM1,temperature sum from emergence to anthesis,萌发至开花所需温度TSUM2,temperature sum from anthesis to maturity,开花至成熟所需温度SPAN,life span of leaves growing at 35 Celsius,生长温度为35度时的叶龄。

所有专家都曾始于新手 1145

RabbitMQ高级特性 - 生产者消息确认机制

为了保证信息 从生产者 发送到 队列,因此引入了生产者的消息确认机制.通过事务机制实现.通过发送确认机制(confirm 和 return)实现.因为事务机制比较消耗性能,在实际工作中用的也不多,因此这里主要介绍confirm 和 return机制来实现发送放的确认.a)confirm 确认模式如上图,confirm 确认模式主要保障于 生产者 到 交换机 的消息可靠性.如果 Exchange成功收到消息,那么 ConfirmCallback 这个回调 ack 参数就为true。

CYK_byte的博客 1886

UVA 1152-4 Values whose Sum is 0(二分查找)

The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d) ∈ A × B × C × D are such that a + b + c + d = 0. In the following,...

在读NLP硕士 593

Android 车联网——CarAudioService介绍(六)

CarAudioService 是 Android Automotive OS 中的一个重要组件,用于管理车辆中的音频功能。它是 Android Auto 的一部分,负责处理车辆音频的播放、控制和路由。CarAudioService 使用标准的 Android 组件架构,基于 Binder 通信机制,提供了一组 API,用于管理车辆音频。它包括以下主要功能:音频路由管理:CarAudioService 可以让开发者控制音频的路由,即将音频发送到不同的输出设备,例如车辆的扬声器、耳机等。

小旭的专栏 3201

【POJ 2785】【折半枚举】4 Values whose Sum is 0【暑期 No.6】

题意:         给定各有n个整数的四个数列A、B、C、D。要从每个数列中各取出1个数,使四个数的和为0。求出这样的组合的个数。当一个数列中有多个相同的数字时,把它们作为不同的数字看待。   分析:         如果直接对四个数列进行枚举的话,将是O(n^4)的复杂度,因此可以考虑折半枚举的思想。         将A、B数组相加的所有可能性列出来加入数组,O(n^2),再进行...

lucius-liu.cn 516

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

160_折半枚举(双向搜索) 4 Values whose sum is 0 (POJ No.2785)

给出4 个数列,A,B,C,D,从每个数列中各取一个,问一共有多少种取法使得4个数的和为0. 如果数字有重复的话算不同的取法。  如果四重循环的话复杂度为n^4,太慢了,所以讲数组分成两组,A和B,C和D,先将CD所有可能的和列出,在对AB做二重循环,  用二分搜索法来找对应的CD的和,最后复杂度为O(n^2 logn).  // // 160_4 values whose sum is

Bernini @ buffalo 565

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POJ 2785 4 Values whose Sum is 0

题目: POJ 2785 4 Values whose Sum is 0 ,哈哈,我们今天来看一道稍微简单的二分题嘛,这是选自POJ上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面! 题目传送门: POJ 2785 4 Values whose Sum is 0 思路: 这道题你要是写个4重循环那可就太惨了,其实可以是2重循环的,我们计算前两列的分别两两相加的和,用b数组装,然后计算后两列的分别两两相加的和,用c数组装,我们只需要计算

小知识吖 5888

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【POJ 2785 --- 4 Values whose Sum is 0 】二分枚举

【POJ 2785 --- 4 Values whose Sum is 0 】二分枚举 Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x...

来日浅谈的博客 571

POJ2785:4 Values whose Sum is 0(二分)

Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 .

ACM!荣耀之路! 5093

POJ-2785 4 Values whose Sum is 0

二分查找POJ-2785 4 Values whose Sum is 0 POJ-2785 题目大意:输入四列数 代表集合a,b,c,d 问ai+bi+ci+di相加等于0的组合有多少种 解题思路:将ab集合每种组合对应的和储存 cd也是一样 然后查找cd集合中是否有ab集合元素的复数 ab集合和cd集合的大小最大可达4000*4000 直接遍历查找会超时 所以用二分查找法(注意在二分查找的时候 ...

鱼头的水题之路 571

poj 2785 4 Values whose Sum is 0 (二分+枚举)

题目链接:http://poj.org/problem?id=2785 题目大意:  给出四个长度为n的列表(从上到下)                     从每个列表分别取出一个数据,使得相加的结果为0                     问最多存在多少种情况? 解题思路:  n的范围(1                     可以转化为O(2*n^2):

ンZee的解题报告 1156

4 Values whose Sum is 0(POJ-2785)

Problem Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d...

Alex_McAvoy的博客 2246

POJ 2785:4 Values whose Sum is 0

http://poj.org/problem?id=2785 这道题目意思很简单,但是数据量很庞大,就需要设计比较好的算法。 方法一:利用二分搜索算法。根据题意,我们将数据分为左右两个部分,然后将左侧的两列之和加起来,然后排序,在对右侧的两列加起来,二分搜索相应的解的上下限。这里需要注意对一个数出现的上下界的寻找办法,代码要注意,也可以通过STL中的lower_bound与upperbound

BootStar 699

POJ2785 4 Values whose Sum is 0 【枚举】

4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 16000   Accepted: 4625 Case Time Limit: 5000MS Description The SUM problem can

长风的专栏 977

POJ 2785 4 Values whose Sum is 0 (折半搜索 )

【题目链接】:click here~~ 【题目大意】: The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a +

herongwei 的 BLOG 1688

POJ 2785 4 Values whose Sum is 0 枚举/二分查找

给出n行数据,每行4列,现在每列中选择一个位置,使选择的四个位置上的数字和为0,问有多少种选择方法。(如果一列中有重复的数字,选择不同位置上的相同数字各算不同情况)

Sheepsheep 187
上一篇: ACwing 871约数之和
下一篇: [蓝桥杯]四平方和
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值