zoukankan      html  css  js  c++  java
  • bzoj 1293: [SCOI2009]生日礼物

     1 #include<iostream>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cstdio>
     5 using namespace std;
     6 #define M 1000009
     7 int head[M],cnt,next[M],v[M],b[M],n,k,ans=0x7fffffff;
     8 bool pan(int x)
     9 {
    10     int mx=0;
    11     for(int i=1;i<=k;i++)
    12       {
    13         for(;v[head[i]]>x;head[i]=next[head[i]]);
    14         if(!v[head[i]])
    15           return 0;
    16         mx=max(mx,x-v[head[i]]);
    17       }
    18     ans=min(ans,mx);
    19     return 1;
    20 }
    21 int main()
    22 {
    23     scanf("%d%d",&n,&k);
    24     for(int i=1;i<=k;i++)
    25       {
    26          int a1;
    27          scanf("%d",&a1);
    28          for(int j=1;j<=a1;j++)
    29            {
    30               int a2;
    31               scanf("%d",&a2);
    32               cnt++;
    33               next[cnt]=head[i];
    34               head[i]=cnt;
    35               v[cnt]=a2;
    36               b[cnt]=a2;
    37             }   
    38       }
    39     sort(b+1,b+n+1);
    40     for(int i=n;i;i--)
    41       if(b[i]!=b[i+1]&&!pan(b[i]))
    42         break;
    43     printf("%d",ans);
    44     return 0;
    45 }

    可以说是暴力吧,枚举剪得末段,找每种颜色离末端最近的是哪一个,更新最优值,易知这是单调的。

  • 相关阅读:
    Vue状态管理
    Vue延迟点击
    Vue路由
    简单的队列应用
    Uncaught SyntaxError: Unexpected token )
    视频转码
    判断是否为视频文件
    Press ^C at any time to quit.
    Node.js学习
    YUM安装LAMP与LNMP
  • 原文地址:https://www.cnblogs.com/xydddd/p/5243746.html
Copyright © 2011-2022 走看看