zoukankan      html  css  js  c++  java
  • hdu 4334 Trouble

    有5个数列,将第一,二列合并去重得到s1,再将第三,四列合并去重得到s2,这样就剩下3列了。

    然后将s1,s2排序,枚举第5列,每次用x指向s1的头,y指向s2的尾,当取出的3个和恰好为0则退出;

    大于0时y--;否则x++!

    代码如下:

    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    #include<iomanip>
    #include<cmath>
    #include<cstring>
    #include<vector>
    #define ll __int64
    #define pi acos(-1.0)
    #define MAX 50000
    using namespace std;
    ll a[202],b[202],c[40002],d[40002];
    vector<ll>s1,s2;
    int main(){
        int t,n,m,i,j,k;
        cin>>t;
        while(t--){
            scanf("%d",&n);
            s1.clear();
            s2.clear();
            for(i=0;i<n;i++) scanf("%I64d",&a[i]);
            for(i=0;i<n;i++) scanf("%I64d",&b[i]);
            for(i=0;i<n;i++)
            for(j=0;j<n;j++){
                s1.push_back(a[i]+b[j]);
            }
            for(i=0;i<n;i++) scanf("%I64d",&a[i]);
            for(i=0;i<n;i++) scanf("%I64d",&b[i]);
            for(i=0;i<n;i++)
            for(j=0;j<n;j++){
                s2.push_back(a[i]+b[j]);
            }
            sort(s1.begin(),s1.end());
            sort(s2.begin(),s2.end());
            c[0]=s1[0];
            for(i=1,j=1;i<s1.size();i++){
                if(s1[i]!=s1[i-1])
                    c[j++]=s1[i];
            }
            d[0]=s2[0];
            for(i=1,k=1;i<s2.size();i++){
                if(s2[i]!=s2[i-1])
                    d[k++]=s2[i];
            }
            for(i=0;i<n;i++) scanf("%I64d",&a[i]);
            bool flag=0;
            for(i=n-1;i>=0;i--){
                int x=0;
                int y=k-1;
                while(x<j&&y>=0){
                    ll temp=c[x]+d[y]+a[i];
                    if(temp==0){
                        flag=1;
                        break;
                    }
                    if(temp>0) y--;
                    else x++;
                }
                if(flag) break;
            }
            if(flag) cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    OpenCV基本函数学习
    OpenCV:概述、结构和内容
    NS2典型例子简单分析
    NS2仿真过程中需要的语言及基本组件
    洛谷 P2393 yyy loves Maths II
    洛谷 P1922 女仆咖啡厅桌游吧
    洛谷 P2559 [AHOI2002]哈利·波特与魔法石
    洛谷 P1301 魔鬼之城
    洛谷 P2383 狗哥玩木棒
    洛谷 P2298 Mzc和男家丁的游戏
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3230051.html
Copyright © 2011-2022 走看看