A,B大水题,不过B题逗比了题意没理解清楚,讲的太不清楚了感觉= =还是英语弱,白白错了两发。

C:

二分答案判断是否可行,也逗比了下。。。二分的上界开太大导致爆long long了。。。

 

D:

看完题想都不想就用线段树搞起了,虽然我知道并查集很简单。。不过没用并查集写过区间处理的问题就不用多想了。。

刚开始时,所有的船都是空的,也就是说可放的水量是船的容量,然后对于第一个操作,意思就是从第x个数开始减小直到减小了p或者后面都变成0了。这里我就二分查找下最右边的会减小的数R,然后把x~R-1的数都清零,对于第R个数计算出剩余量后单点更新,mark[rt] = true表示这段区间被清零了,第二个操作直接单点询问。

 

E:

给你n个地铁站的位置,都是在x轴上的点,选出k个点使得k个点两两之间的距离和最小。

思路:

首先肯定是对n个点排序,这样子之后k个点肯定是排完序之后某段连续的k个。

所以可以枚举起始位置计算该位置开始的k个距离和,现在的问题就是如何O(1)的计算出该位置的结果。

假设我知道了 区间(L, R)的两两距离和,考虑区间 (L , R) 如何O(1)推出区间(L+1, R+1),转移其实就是去掉L点,加上R+1点,很容易知道原来的距离和减小了L到其他点的距离s1,增加了R+1到其他点的距离s2,画个图很容易得到s1+s2 = (L到R+1的距离)*(k-1),也就是说我只需要知道了L到其他点的距离和,就可以推出转移之后的两两距离和的值,所以说只需要维护上一次的两两距离和and 前一个区间的L到其他点的距离和即可。具体见代码~

这个E题实在是伤,比赛最后十分钟敲完交上了WA,最后竟然是给定的每个位置不是递增的,输出的时候要输出id,前面居然没把这个写上来= =伤,还是太弱

 

最新文章

  1. 今天被PHP短标签给坑了
  2. js中Array的一些扩展
  3. IRC常用命令
  4. leetcode 82. Remove Duplicates from Sorted List II
  5. MyEclipse中拷贝J2EE项目,发布到tomcat中名字一样的解决办法
  6. dede 替换后台两个文件去广告
  7. [转载]SQL Server内核架构剖析
  8. win7 Oracle 11g安装及安装中遇到的问题
  9. 俄罗斯方块:win32api开发
  10. python遗传算法实现数据拟合(转)
  11. CTex+WinEdt10.2安装详细教程与破解
  12. data-original
  13. jquery.datatables设置列隐藏的方法
  14. USACO 2008 Running(贝茜的晨练)
  15. 使用html2canvas将html标签转化为图片
  16. 不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较
  17. 【hdu6051】If the starlight never fade
  18. APP线上问题收集信息整理
  19. 简述MVC模式
  20. bzoj1036: [ZJOI2008]树的统计Count link-cut-tree版

热门文章

  1. ios中的任务分段
  2. CCIE路由实验(2) -- BGP选路原则
  3. 安装基于XenServer的DevStack
  4. muduo 与 libevent2 吞吐量对照
  5. 新浪微博中tableview中头部信息
  6. MvvmLight Messenger(信使)
  7. 使用jQuery的attr方法来修改onclick值
  8. Ext的异步请求(二级级联动态加载下拉列表)
  9. Linux下基于Erlang的高并发TCP连接压力实验
  10. C语言,const