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
  • 相关阅读:
    9.2模拟题解
    NOI1995 石子合并
    NOIP2012 借教室
    织梦内页读取栏目banner图
    mysql数据库版本引发的问题
    简单修改hosts文件加快打开网页速度
    详细剖析电脑hosts文件的作用和修改
    内部标签样式
    织梦让当前的子栏目拥有特殊的样式
    织梦获取单个顶级栏目名
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3230051.html
Copyright © 2011-2022 走看看