[bzoj2091] [Poi2010]The Minima Game

Posted czllgzmzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[bzoj2091] [Poi2010]The Minima Game相关的知识,希望对你有一定的参考价值。

  显然每次都取排序后包含最大值的连续的一段数。

  f[i]表示对于剩下的最小的i个数,先手最多比后手多多少分。

  f[i]=min{a[j+1]-f[j]}...j<i,a升序排序。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 #define ll long long
 6 using namespace std;
 7 const int maxn=1e6+23;
 8 ll f[maxn],mx;
 9 int a[maxn];
10 int i,j,k,n,m;
11  
12 int ra;char rx;
13 inline int read(){
14     rx=getchar(),ra=0;
15     while(rx<\'0\'||rx>\'9\')rx=getchar();
16     while(rx>=\'0\'&&rx<=\'9\')ra*=10,ra+=rx-48,rx=getchar();return ra;
17 }
18 int main(){
19     n=read();
20     for(i=1;i<=n;i++)a[i]=read();
21     sort(a+1,a+1+n);
22     for(i=1;i<=n;i++)mx=max(mx,a[i]-f[i-1]),f[i]=mx;
23     printf("%lld\\n",f[n]);
24 }
View Code

 

以上是关于[bzoj2091] [Poi2010]The Minima Game的主要内容,如果未能解决你的问题,请参考以下文章

bzoj2091Poi2010The Minima Game

bzoj1510[POI2006]Kra-The Disks*

[BZOJ1537][POI2005]Aut- The Bus

BZOJ 2093: [Poi2010]Frog

BZOJ2085[Poi2010]Hamsters hash+倍增floyd

BZOJ 2095: [Poi2010]Bridges