zoukankan      html  css  js  c++  java
  • CF1500A Going Home

    啊啊啊 明明注意到ai<=2.5e6这个条件可现场就是不会处理

    然后挂了

    结束后俩小时突然反应过来 感觉自己好傻


    -----------------------------------------------------------分割线-----------------------------------------------

    因为1<=ai<=2.5e6 所以任意两个数的和在1~5e6这个范围区间内,这是这道题的突破口

    然后就可以开一个set

    当z枚举到i时,此时set已经存取x<=i-1,x<y<=n时 x+y所有的取值

    枚举w从i+1到n 直接判断set是否存在z+w即可

    因为set的大小最多为5e6,枚举w时要么填补set不存在的数 要么碰到存在的数直接跳出并输出答案

    这样可以做到时间复杂度O(min(n^2, max{ai}))

    注意w不能等于x或y




    #include<bits/stdc++.h>
    #define ll long long
    #define ull unsigned long long
    #define rep(x,a,b) for(int x=(a);x<=(b);x++)
    #define per(x,a,b) for(int x=(a);x>=(b);x--)
    #define scf(a) scanf("%d",&a)
    #define scfll(a) scanf("%lld",&a)
    #define scfdb(a) scanf("%lf",&a)
    #define ptf(a) printf("%d",a)
    #define ptfll(a) printf("%lld",a)
    #define ptfdb(x,a) printf("%x.lf",a)
    #define ptfsp(a) printf("%d ",a)
    #define ptfllsp(a) printf("%lld ",a)
    #define ptfdbsp(x,a) printf("%x.lf ",a)
    #define pli(a,b) make_pair(a,b)
    #define pb push_back
    #define el puts("")
    #define pi 3.1415926
    using namespace std;
    const int maxn=2e5+5;
    const ll mod=1e9+7;
    struct node{
        int x,y,sum;
        bool operator <(const node &a) const{
            return sum<a.sum;
        }
    };
    set<node>s;
    int a[maxn];
    int main(){
        int n;scf(n);
        rep(i,1,n) scf(a[i]);
        rep(i,1,n){
            rep(j,i+1,n){
                auto it=s.find((node){0,0,a[i]+a[j]});
                if(it!=s.end()&&it->y!=j&&it->y!=i){
                    puts("YES");
                    cout<<i<<" "<<j<<" "<<it->x<<" "<<it->y;
                    return 0;
                }
            }
            rep(j,i+1,n) s.insert((node){i,j,a[i]+a[j]});
        }
        puts("NO");
    }
    
    
  • 相关阅读:
    SignalR的三个Demo
    SignalR的一点点东西
    如何在appconfig中配置服务的ip
    IP分片丢失重传
    以太网之物理层
    以太网数据格式与封装解封
    OSI七层模型与TCP/IP五层模型
    边沿检测方法-FPGA入门教程
    如何用ModelsimSE仿真IP核-以PLL为例
    搭建Modelsim SE仿真环境-使用do文件仿真
  • 原文地址:https://www.cnblogs.com/Position/p/14530981.html
Copyright © 2011-2022 走看看