题目链接:https://vjudge.net/problem/UVA-1152

这题题意就是在四个集合内。每个集合分别里挑一个数a,b,c,d,求a+b+c+d=0有多少种选法。

暴力的话就是四重循环,复杂度O(n^4)容易超时。稍微优化一点就是分别枚举其中三个集合里的元素a+b+c,然后用二分查找剩下那个集合里存不存在a+b+c的相反数,复杂度O(n^3*logn)勉强还行。

不过可以枚举a+b,放入map中,然后枚举-c-d,看看-c-d有多少种方法能写成a+b。复杂度O(n^2*logn),但由于map是用红黑树实现的,很容易超时,但c++11提供了unordered_map,用哈希函数实现的

,问题就解决了。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
unordered_map<ll,ll> mp;
ll a[],b[],c[],d[];
int main()
{
int T,n,x;
cin>>T;
while(T--)
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>a[i]>>b[i]>>c[i]>>d[i];
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
mp[a[i]+b[j]]++;
}
}
ll ans=;
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
ans=ans+mp[-c[i]-d[j]];
}
}
cout<<ans<<"\n";
if(T)
cout<<"\n";
mp.clear();
}
return ;
}

4 Values whose Sum is 0 UVA 1152的更多相关文章

  1. UVA 1152 4 Values whose Sum is 0 (枚举+中途相遇法)(+Java版)(Java手撕快排+二分)

    4 Values whose Sum is 0 题目链接:https://cn.vjudge.net/problem/UVA-1152 ——每天在线,欢迎留言谈论. 题目大意: 给定4个n(1< ...

  2. K - 4 Values whose Sum is 0(中途相遇法)

    K - 4 Values whose Sum is 0 Crawling in process... Crawling failed Time Limit:9000MS     Memory Limi ...

  3. POJ 2785 4 Values whose Sum is 0(想法题)

    传送门 4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 20334   A ...

  4. POJ 2785 4 Values whose Sum is 0

    4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 13069   Accep ...

  5. 哈希-4 Values whose Sum is 0 分类: POJ 哈希 2015-08-07 09:51 3人阅读 评论(0) 收藏

    4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 17875 Accepted: ...

  6. [poj2785]4 Values whose Sum is 0(hash或二分)

    4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 19322 Accepted: ...

  7. UVA1152-4 Values whose Sum is 0(分块)

    Problem UVA1152-4 Values whose Sum is 0 Accept: 794  Submit: 10087Time Limit: 9000 mSec Problem Desc ...

  8. POJ - 2785 4 Values whose Sum is 0 二分

    4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 25615   Accep ...

  9. POJ 2785 4 Values whose Sum is 0(折半枚举+二分)

    4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 25675   Accep ...

随机推荐

  1. (四)开源C# WPF控件库《AduSkin – UI》

    微信公众号:[Dotnet9的博客],网站:[Dotnet9],问题或建议:[请网站留言], 如果对您有所帮助:[欢迎赞赏]. 开源C# WPF控件库系列: (一)开源C# WPF控件库<Mat ...

  2. Re:萌娘百科上的黑幕实现

    Re:萌娘百科上的黑幕 说明 本文所有的代码均来自萌娘百科.萌娘百科打钱! 第零段话(我想说的) 这方面不是我的专长,所以有的地方说的不对也请纠正! 我可不是萌娘百科的员工或者管理员或者收了钱 我只是 ...

  3. JSP其余内置对象及四大范围对象的使用

    一.application String getContextPath():获取虚拟路径String getRealPath():获取虚拟路径对应的绝对路径 实例 application.jsp &l ...

  4. clr via c# Array2

    1,Array类型生成方式以及实际类型 private static void ArrayIntro() { String[] sa = new String[1]; Array a1 = Array ...

  5. 如何阻止a标签跳转

    <a href="www.baidu.com">百度</a> 上面为我们的a标签,要想阻止它进行跳转我们该怎么办呢? 当然我们有以下的几种办法_______ ...

  6. PHP0019:PHP 图像验证码 、图像水印效果 、 生成缩约图

  7. P5367 【模板】康托展开

    我们的生活充满了未知与玄学 ---------------------------------------- 链接:P5367 ------------------------------------ ...

  8. java 相关书籍介绍

    自己做开发也有两年多了吧,其中也关注过许多大牛的博客,买过许多的书看. 自己也是个比较爱阅读的人,从小的时候被老爸逼着每次寒暑假看书,到后来慢慢长大爱上了阅读,习惯了看书. 农村的小孩吗,那时候又不像 ...

  9. 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs简单的shell命令

    实验目的 了解bin/hadoop脚本的原理 学会使用fs shell脚本进行基本操作 学习使用hadoop shell进行简单的统计计算 实验原理 1.hadoop的shell脚本 当hadoop集 ...

  10. NODEJS 中使用二维码 qr-image

    https://www.npmjs.com/package/qr-image npm install qr-image var qr = require('qr-image'); var code = ...