zoukankan      html  css  js  c++  java
  • d[贪心]

     拉到最后就能看到我了

    t1,每个矩形有长宽,可以删去m个矩形使min{长}*min{宽}最大

    t1打了个假的贪心,同时以$a,b$排序,每次找到$a,b$中较小的删去,然后大样例过不了

    其实自己手摸了一组也过不了

    3 1

    6 5

    1 10000

    1 10000

    按照我的贪心删掉1 10000(1比较小),其实删掉6 5更优

    于是很慌,又打了个假的贪心,每次找到$delta$最小的,

    然后大样例又过不了...

    有点崩,然后又随便打了两个贪心基本就是往上蒙贪心策略了

    然后大样例依然过不了,

    然后想难道这是反悔贪心,

    然后就扔了

    其实t1跟之前一道t2很像,和多面手那个贪心很像啊,自己没有迁移过来,罪有应得

    一层循环枚举删掉多少长最小的,剩下删掉宽小的

    这样一定保证贪心是正确的,这样是$n^2$,然后优化一下就$n*log(n)$了(主席树优化,二分优化,堆优化,各种优化都能过)

    哈我不知道我考试时在想什么

    我好傻逼啊

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define A 111111
    ll T,n,m;
    ll vis[A];
    struct node{
        ll a,b,id;
        node(){}
        node(const ll &x,const ll &y,const ll &z){a=x,b=y,id=z;}
        friend bool operator < (const node &x,const node &y){
            return x.a<y.a;
        }
    }p1[A];
    struct node2{
        ll b;
        node2(){}
        node2(const ll &y){b=y;}
        friend bool operator < (const node2 &x,const node2 &y){
            return x.b>y.b;
        }
    };
    priority_queue<node2>q;
    int main(){
    //    freopen("d2.in","r",stdin);
    //    freopen("zj.out","w",stdout);
        scanf("%lld",&T);
        while(T--){
            scanf("%lld%lld",&n,&m);
            while(q.size()) q.pop();
            for(ll i=1;i<=n;i++){
                ll x,y;
                scanf("%lld%lld",&x,&y);
                p1[i]=node(x,y,i);
            }
            sort(p1+1,p1+n+1);        
            for(ll i=m+1;i<=n;i++)
                q.push(node2(p1[i].b));
            ll maxx=0;
            for(ll i=m;i>=0;i--){
    //            printf("p1[i+1].a=%lld q.top()=%lld
    ",p1[i+1].a,q.top().b);
                maxx=max(p1[i+1].a*q.top().b,maxx);
                q.push(node2(p1[i].b));
                q.pop();
    //            if(p1[i].b<q.top().b) continue ;//一定被删
    //            else q.pop(),q.push(node2(p1[i].b));
            }
            printf("%lld
    ",maxx);
        }
    }
    View Code
  • 相关阅读:
    hdu5360 Hiking(水题)
    hdu5348 MZL's endless loop(欧拉回路)
    hdu5351 MZL's Border(规律题,java)
    hdu5347 MZL's chemistry(打表)
    hdu5344 MZL's xor(水题)
    hdu5338 ZZX and Permutations(贪心、线段树)
    hdu 5325 Crazy Bobo (树形dp)
    hdu5323 Solve this interesting problem(爆搜)
    hdu5322 Hope(dp)
    Lightoj1009 Back to Underworld(带权并查集)
  • 原文地址:https://www.cnblogs.com/znsbc-13/p/11655783.html
Copyright © 2011-2022 走看看