zoukankan      html  css  js  c++  java
  • Noi 十连测 Zbox loves meizi

    题目描述
    从小热爱妹子的Zbox开始玩妹子了.Zbox是校草,必然有大量妹子来追Zbox.Zbox发现有2000*2000个妹子正在向他靠近,排成一个2000*2000的矩阵.每个妹子有一个魅力值,在茫茫人海中不同的妹子的魅力值是不同的.Zbox认为,一个妹子是他看得上的妹子,当且仅当她的魅力值高于他周围所有妹子的任何一个的魅力值,比如图中红色格子的妹子是Zbox看得上的.

    Zbox患有密集恐惧症,他想尽快找到一个他看得上的妹子以便于哗~

    评分方式
    如果对于任意一组数据你的程序能在6050次询问及以内返回正确答案得100分
    如果对于任意一组数据你的程序能在16050次询问及以内返回正确答案得70分
    如果对于任意一组数据你的程序能在48050次询问及以内返回正确答案得50分
    如果对于任意一组数据你的程序能在180050次询问及以内返回正确答案得30分
    如果对于任意一组数据你的程序能在4000050次询问及以内返回正确答案得10分
    如果对于任意一组数据你的程序返回错误答案得0分
    如果你的程序运行时发生错误得0分
    如果你的程序运行时间超出限制得-10分(骗你的)

    SOL:

     应该是分治吧。 表要向我提粒子群。

     yjq:偷偷告诉你们一个秘密,粒子群没人卡~~~

    没人卡~~~没人卡~~~没人卡~~~没人卡~~~没人卡~~~没人卡~~~

    没人卡~~~没人卡~~~没人卡~~~没人卡~~~没人卡~~~没人卡~~~

    (⊙o⊙)…

    #include <bits/stdc++.h>
    #include "MXPOINT.h"
    using namespace std;
    #define pii pair<int,int>
    int rr[2010][2010];
    int ask(int x,int y){
        if(rr[x][y]) return rr[x][y];
        if((x<1)||(x>2000)||(y<1)||(y>2000)) return -1; 
        return rr[x][y]=ASK(x,y);
    }
    int yl[2001];
    #define Mid (l+r>>1)
    pii fz(int l,int r){
        for(int i=1;i<=2000;i++) yl[i]=ask(Mid,i);
        pii maxn;
        for(int i=1;i<=2000;i++) maxn=max(maxn,pii(yl[i],i));
        int p=maxn.second,s=ask(Mid,p);
        int l_=ask(Mid-1,p),r_=ask(Mid+1,p);
        if(l_<maxn.first&&r_<maxn.first) return pii(Mid,p);
        if(l_<r_) return fz(Mid+1,r);
        else return fz(l,Mid-1);
    }
    pii FINDMXPOINT(){
        memset(rr,0,sizeof(rr));
        return fz(1,2000);
    }
  • 相关阅读:
    windows下面Nginx日志切割
    C#通过DocX创建word
    leetcode 189 Rotate Array
    leetcode 172 Factorial Trailing Zeroes
    leetcode 169 Majority Element 冰山查询
    leetcode 165 Compare Version Numbers
    leetcode 160 Intersection of Two Linked Lists
    【windows-》linux】SCP
    【设计】B端和C端区别
    【Flask】部署
  • 原文地址:https://www.cnblogs.com/rrsb/p/8561440.html
Copyright © 2011-2022 走看看