十分有趣的问题.

我们发现如果拿的话肯定要先拿一些大的.

所以我们可以先将所有数从小到大排序,令 $f[i]$ 表示拿完前 $i$ 小先手-后手的最大值.

则有转移:$f[i]=max(f[i-1],a[i]-f[i-1])$

反复阅读:每次拿一些数字的贡献是这些数字中最小的值.

反复阅读上一句话,然后再看一看式子就容易懂了.

code:

#include <bits/stdc++.h>
#define N 1000006
#define ll long long
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
ll f[N],a[N];
int main()
{
// setIO("input");
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;++i) scanf("%lld",&a[i]);
sort(a+1,a+1+n);
for(i=1;i<=n;++i)
{
f[i]=max(f[i-1],a[i]-f[i-1]);
}
printf("%lld\n",f[n]);
return 0;
}

  

最新文章

  1. 放弃安卓原生TimePicker,选择wheelView打造更漂亮的时间get,以及动态拉伸输入框布局,这些,这里都有!
  2. [stm32] STM32 Interrupts and events 系统了解(EXTI)及槽型光电开关tp850电路研究
  3. audio patch(10.9.3) [2.6.1]
  4. 学习android学习必备的java基础知识--四大内部类
  5. Logwatch的配置与使用
  6. 转:Why SeaJS
  7. jQuery中实现自定义方法的扩展
  8. Generate GUID using vbscript
  9. 【HDOJ】2888 Check Corners
  10. SQL 时间戳
  11. Android应用开发基础篇(7)-----BroadcastReceiver
  12. SSO单点登录的研究
  13. CentOS配置SSH免密登录
  14. java web 项目打包(war 包)并部署
  15. centos7防火墙设置
  16. C# HtmlAgilityPack 爬虫框架
  17. 数学——函数极限知识以及sympy库的limit
  18. Daubechies小波介绍
  19. IO流(6)获取功能
  20. OSLab课堂作业1

热门文章

  1. GoLang 开山篇
  2. vue截取字符串
  3. sqlserver读取日志以及复制
  4. IP地址和MAC地址绑定的必要性
  5. Tomcat 配置文件解析工具 Digester
  6. tf.random_shuffle()函数解析
  7. react,react-router,redux+react-redux 构建一个React Demo
  8. Jackson动态JSON处理
  9. VsCode中编写python环境配置
  10. Java深入学习(5):锁