uva 1152 - 4 Values whose Sum is 0

原创 2016年08月30日 21:50:57

原题链接

思路:因为数据规模太大,直接枚举肯定超时,先把C+D的所有值存在一个hash表里,再枚举A+B的值。(PS:用的C++11的unordered_map,时限9秒,跑了接近五秒才跑完)

#include<cstdio>
#include<algorithm>
#include<unordered_map>
using namespace std;
const int maxn=4005;
unordered_map<int,int>cnt;
int a[maxn],b[maxn],c[maxn],d[maxn];
int n;
void solve(){
    int ans=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(cnt.count(-a[i]-b[j])){
                ans+=cnt[-a[i]-b[j]];
            }
        }
    }
    printf("%d\n",ans);
}
int main(){
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int T,kase=0;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        for(int i=0;i<n;i++){
            scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
        }
        cnt.clear();
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(!cnt.count(c[i]+d[j])){
                    cnt[c[i]+d[j]]=0;
                }
                cnt[c[i]+d[j]]++;
            }
        }
        if(kase++){
            printf("\n");
        }
        solve();
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Uva 1152 和为0的4个值 hash/二分

题意: 给定4个n(1
  • hjt_fathomless
  • hjt_fathomless
  • 2016年05月10日 11:13
  • 822

Uva1152 4 Values whose Sum is 0 【中途相遇+二分】【例题8-3】

中途相遇思路,先算一部分,再二分查找!
  • GuoZLH
  • GuoZLH
  • 2017年02月23日 00:21
  • 116

1152 - 4 Values whose Sum is 0(好用的hash标记,多重循环简单化)

不得不说这个题就是炫酷啊! 首先说一说思路吧,是这么想的: 1.弄四重循环,爆破,明显会超时。 2.为了处理多重循环,就枚举a+b+c,只需要在d中找到a+b+c的相反数即可,超时 3.枚举a...
  • glqglqglq2
  • glqglqglq2
  • 2014年08月06日 14:27
  • 549

Values whose Sum is 0(四列数和为零问题(二分基础))

题目来源:[NWPU][2014][TRN][5]二分和贪心
  • npufz
  • npufz
  • 2014年07月15日 11:30
  • 341

【高效算法设计-中途相遇法】4 Values whose Sum is 0 哈希表

4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submission...
  • lth404391139
  • lth404391139
  • 2015年03月07日 18:17
  • 418

【POJ 2785 4 Values whose Sum is 0】+ 折半枚举(双项搜索))

4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 20492 ...
  • WYK1823376647
  • WYK1823376647
  • 2016年11月23日 21:28
  • 216

【POJ 2785 4 Values whose Sum is 0】+ 折半枚举(双项搜索))

4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 20492 Accepte...
  • WYK1823376647
  • WYK1823376647
  • 2016年11月29日 21:53
  • 208

UVa 1586 Molar mass (计算分子量,不含扩号)

Molar mass Description An organic compound is any member of a large class of chemical co...
  • hurmishine
  • hurmishine
  • 2016年03月13日 20:38
  • 1241

MongoDB基础学习三 ---- MongoDB的常用聚合操作

# 聚合(重点) # 产生背景:大数据的环境下。所谓的大数据实际上也就是进行信息收集汇总。也就是数据的统计操作,而这样的统计操作就称为聚合 # (直白来说:分组统计就是一种聚合操作) -----...
  • You_are_my_dream
  • You_are_my_dream
  • 2017年02月28日 16:18
  • 253

oralce搭建DG恢复归档时遇到一个"大坑"

一.问题描述:     在对一系统搭建DG时,采用直接用rman在线上库进复制方式来搭建,线上库为oracle 11.2.0.4 RAC,数据量约2.6T,花了13小时完成复制。 在recover...
  • zengxuewen2045
  • zengxuewen2045
  • 2016年11月24日 16:57
  • 853
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:uva 1152 - 4 Values whose Sum is 0
举报原因:
原因补充:

(最多只允许输入30个字)