zoukankan      html  css  js  c++  java
  • [BZOJ 1293] 生日礼物

    Link:

    BZOJ 1293 传送门

    Solution:

    这题直接上尺取法就行了吧

    先将每种颜色第一个放入优先队列,用$mx$维护当前的末尾位置

    每次取出第一个颜色,更新答案。将其下一个放入队列中去,更新$mx$

    Tip:此题BZOJ无故TLE,本机和Luogu都能AC

    Code:

    #include <bits/stdc++.h>
    
    using namespace std;
    typedef long long ll;
    typedef pair<ll,int> P;
    int n,k,cur[65];
    ll mx,res=1ll<<31,a[65][1000005];
    
    int main()
    {
        priority_queue<P,vector<P>,greater<P> > q;
        
        scanf("%d%d",&n,&k);
        for(int i=1;i<=k;i++)
        {
            scanf("%d",&a[i][0]);
            for(int j=1;j<=a[i][0];j++) 
                scanf("%lld",&a[i][j]);
            q.push(P(a[i][1],i));
            mx=max(mx,a[i][1]);cur[i]=1;
        }
        
        for(int i=1;i<=n-k+1;i++)
        {
            P t=q.top();ll now=t.second;
            res=min(res,mx-t.first);
            cur[now]++;if(cur[now]>a[now][0]) break;
            
            q.pop();q.push(P(a[now][cur[now]],now));
            if(a[now][cur[now]]>mx) mx=a[now][cur[now]];
        }
        printf("%lld",res);
        return 0;
    }
  • 相关阅读:
    2016-5-6
    PE文件格式
    CheatEngine-内存修改
    ollydbg教程-动态调试
    IDA教程-静态反编译
    JavaFX常用汇总
    settings.xml样例文件
    Cassandra安装配置
    Linux安装配置相关
    Dom4j-读写xml
  • 原文地址:https://www.cnblogs.com/newera/p/9281451.html
Copyright © 2011-2022 走看看