BZOJ2091 [Poi2010]The Minima Game
生活随笔
收集整理的這篇文章主要介紹了
BZOJ2091 [Poi2010]The Minima Game
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我是沙茶,一看,博弈論題,開始推sg函數。。。。。。
然后搞不出,一看ZYF博客,發現是DP。。。(做法都能想錯的我真是太弱了)
首先每個人肯定都是從大到小取數,于是先對a[i]排序。
令f[i]表示前i個數去玩的最大差值,則
f[i] = max(f[i - 1], a[i] - f[i - 1])(分別代表這次取得最小數為a[i]和不為a[i]),于是就好了>.<
?
1 /************************************************************** 2 Problem: 2091 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:1384 ms 7 Memory:8616 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 #include <algorithm> 12 13 using namespace std; 14 15 int n, a[1000005], f[1000005]; 16 17 int main(){ 18 scanf("%d", &n); 19 for (int i = 1; i <= n; ++i) 20 scanf("%d", a + i); 21 sort(a + 1, a + n + 1); 22 for (int i = 1; i <= n; ++i) 23 f[i] = max(a[i] - f[i - 1], f[i - 1]); 24 printf("%d\n", f[n]); 25 return 0; 26 } View Code
(這種題都做不出來怎么考noip......感覺要爆零)
轉載于:https://www.cnblogs.com/rausen/p/4008777.html
總結
以上是生活随笔為你收集整理的BZOJ2091 [Poi2010]The Minima Game的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP报“Cannot start se
- 下一篇: adobe photoshop cc 复