zoukankan      html  css  js  c++  java
  • 51nod 1267:4个数和为0 哈希

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
     收藏
     关注
    给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出"No"。
    Input
    第1行,1个数N,N为数组的长度(4 <= N <= 1000)
    第2 - N + 1行:A[i](-10^9 <= A[i] <= 10^9)
    Output
    如果可以选出4个数,使得他们的和为0,则输出"Yes",否则输出"No"。
    Input示例
    5
    -1
    1
    -5
    2
    4
    Output示例
    Yes
    题目给的标签是二分,然而我自己当时还不懂二分。。。想起POJ上有一道是解5元方程的一道题,将暴力的O(n^5)方法用哈希降到了O(n^3),于是就用哈希方法过了,但是真没想到51nod居然没有卡这么幼稚的哈希。。。

    代码:

    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <vector>
    #include <string>
    #include <cstring>
    #include <map>
    #pragma warning(disable:4996)
    using namespace std;
    
    int n,i, j, num, m, z,x2,y2;
    long long val[1005];
    map<long long, int>dic;
    
    vector<int>x[500005];
    vector<int>y[500005];
    
    int main()
    {
    	scanf("%d", &n);
    
    	for (i = 1; i <= n; i++)
    	{
    		scanf("%lld", val+i);
    	}
    	num = 0;
    	for (i = 1; i <= n; i++)
    	{
    		for (j = i + 1; j <= n; j++)
    		{
    			if(dic[-(val[i] + val[j])]==0)
    			    dic[-(val[i] + val[j])] = ++num;
    			x[num].push_back(i);
    			y[num].push_back(j);
    		}
    	}
    	for (i = 1; i < n; i++)
    	{
    		for (j = i + 1; j <= n; j++)
    		{
    			if (dic[val[i] + val[j]])
    			{
    				z = x[dic[val[i] + val[j]]].size();
    				for (m = 0; m < z; m++)
    				{
    					x2 = x[dic[val[i] + val[j]]][m];
    					y2 = y[dic[val[i] + val[j]]][m];
    					if (i != x2 && j != y2 && i != y2 && j != x2)
    					{
    						cout << "Yes" << endl;
    						return 0;
    					}
    				}
    			}
    		}
    	}
    	cout << "No" << endl;
    	return 0;
    }
    




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    转载-----nodejs内存定位
    node内存泄露排查转载
    git使用规范
    git的使用方法
    Sublime Text 3最好的功能、插件和设置
    Appium-Python-Windows环境搭建笔记
    MPI Note
    先装VS2008之后,又装了2013,然后启动VS2008提示“Tools Version”有问题?
    SQLite 编译错误
    WPF异常捕获三种处理 UI线程, 全局异常,Task异常
  • 原文地址:https://www.cnblogs.com/lightspeedsmallson/p/4899603.html
Copyright © 2011-2022 走看看