Description

经过三十多个小时的长途跋涉,小Z和小D终于到了NOI现场——南山南中学。一进校园,小D就被花所吸引了(不要问我为什么),遍和一旁的种花园丁交(J)流(L)了起来。
他发现花的摆放竟有如此奥秘:圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,如果在这里种花就可以得到这ai
的美观度。但由于地处南山土壤肥力欠佳,两株花不能种在相邻的位置(1号和N号也算相邻位置)。校方一共给了 M
株花,经过园丁的精妙摆放,才能如此吸引小D。所以现在小D也想知道应该如何摆这 N 株花。

Input

输入第一行包含两个整数N,M 。
接下来一行包含N个正整数,依次描述美观度a1,a2,…,an 。

Output

输出一个整数,表示最佳植树方案可以得到的美观度。如果无解输出“Error!”,不包含引号。

Sample Input

7 3
1 2 3 4 5 6 7

Sample Output

15

Hint

对于50%的数据满足N<=3000 。
对于100%的数据满足M<=N<=200000 ,-1000<=ai<=1000 。

Solution

这道题的思路很巧妙!

先来看一个贪心:每次选能选的最大值。这个贪心是显然错误的对吧。(eg:4 2    10 8 1 9)

那么我们就要思考如何能有毁棋的操作:

在每次选出价值最大的点i后,更新答案,把i的权值改成val[pre[i]]+val[next[i]]-val[i],删除旁边的两个点(链表中),再把当前点加入堆中,如果发现这两个点更优,就会再次选出这两个点,并把原来pre[pre[i]],next[next[i]]删除,以此类推,就完成了“可撤销”贪心!

Code

  SORRY,Unusable Now.

最新文章

  1. DataTable操作
  2. 驱动开发学习笔记. 0.01 配置arm-linux-gcc 交叉编译器
  3. AOP和IOC个人理解
  4. Velocity - 单例还是非单例
  5. 开发错误日志之No matching bean of type [xxx] found for dependency
  6. adb server is out of date.
  7. 工作流管理系统 jBPM
  8. jsp fmt标签详解
  9. [国嵌攻略][149][Yaffs2文件系统应用]
  10. freemarker报错之十一
  11. IDEA+循环语句 or 输出语句 快捷操作
  12. pickle详解
  13. BZOJ.4515.[SDOI2016]游戏(树链剖分 李超线段树)
  14. Socket基础之-启动异步服务侦听
  15. easy ui Uncaught Error: cannot call methods on tooltip prior to initialization; attempted to call method &#39;hide&#39;
  16. DOM树示意图
  17. ASP.NET技术总结
  18. Java学习笔记心得——初识Java
  19. python爬虫实战(九)--------拉勾网全站职位(CrawlSpider)
  20. 关于upper、lower bound 的探讨

热门文章

  1. MVC AOP解决JsonResult返回json时间格式
  2. VS2017+mysql5.7 连接数据库生成实体
  3. 微信支付JSAPI掉不起来支付按钮是什么原因?(原创)
  4. cf666 C. Codeword 组合数学
  5. [转]Maven与nexus关系
  6. 【AtCoder】ARC071
  7. python各个包的用途
  8. Ajax+PHP实现异步上传多张图片
  9. linux同步Internet时间
  10. Java中的不同遍历方式