AB题都是签到题。。。。

C

题意:

有一串数列,An=3*n*(n-1)+1

然后要从A数列中选取尽量少个数(可重复),使得Sum(An)=m

题解:

贪心地想,能拿大就拿大很明显就是错的。。。【哪里明显了。。。【反正就是错的

然后3*n*(n-1)+1=6*n*(n-1)/2+1,而n*(n-1)/2是三角形数,任意一个自然数最多只需要3个三角形数即可表示

所以设m是由k个数组成的,m=Sum(3*n*(n-1)+1)=6*(k个三角形数之和)+k

所以我们分情况来看:假如k=1和2则直接求,k>=3时只要m-k mod 6==0就找到解

D

题意:

给一个二分图,求最多加几条边就能变成完全二分图。不允许有重边。

题解:

首先,完全二分图是指第一个点集中的所有顶点都与第二个点集中的所有顶点相连的二分图。自己跑去百度才知道的。。。

那么完全二分图的边数就为N*M,其中N和M是两点集的顶点数。我们要做的就是使N*M最大。N+M已知嘛那么N-M越小越好嘛……

首先,对于原图中的一个联通块,我们黑白染色,同色的只能分到同一个点集

然后,DP[i][g]表示前i个联通块能否选取得到大小为g的点集,N^2的转移。。。

N多大?10000。。。。

优化?还想不出咧。。

E

题意:

一棵树,N个点,每个点有个权值。假如一条路径经过的点的Max-Min<=D的话这条路径即为合法。求有多少条路径合法。

题解:

出题人的做法是点分治, 比赛的时候有人排序之后用lct维护单调性过了.

设分治中心为g, 我们只需要计算跨过g的答案, 其他的可以分治计算.

跨过根的可以容斥做, 没有限制的 - ∑端点落在同一颗子树上的. 上述两个过程是一样的, 于是只考虑没有限制的怎么做.

令xi,yi为i到g路径上的最大值和最小值. 我们按照xi排序, 然后枚举xi必选, 那么前面可选的xj,yj(j<i)必须要满足xi−d≤xj,xi−d≤yj, 由于xj≥yj, 只需要考虑xi−d≤yj. 于是只要枚举xi然后用树状数组统计答案即可. 复杂度是O(nlog2n).

事实上也是存在O(nlogn)的点分治做法, 分治时每次把树差不多分成两半, 就可以利用单调性, 用单调队列维护答案. 做法和POI2010 Pilots类似. 这个做法在比赛开始后Claris想到的.

F

太神了不会不会。。。。。

签到题没FST!!!

最新文章

  1. mycat高可用方案
  2. JVM的SNMP监控配置
  3. js方式找出数组中重复数最多的那个数,并返回该数以及重复次数
  4. ural 1057Amount of Degrees ——数位DP
  5. im 编辑命令总结
  6. C51编译器扩展的关键词 &amp; C51中断函数的写法
  7. C语言指针声明探秘
  8. 1102mysql关于SOCK文件的认识
  9. 你不知道的JavaScript--Item2 浮点数精度
  10. vue 中使用sass实现主体换肤
  11. java常见错误总结
  12. VSCode Install Go
  13. 把本地windows系统上的mysql数据库移到linux系统服务器上,mysql数据库拒绝访问
  14. opencv学习之路(8)、基本图像运算——加减与或
  15. 使用 node 创建代码服务器
  16. 05_ssm基础(四)之Spring与持久层的整合
  17. day 11 生成器
  18. MySQL性能剖析工具(pt-query-digest)【转】
  19. 干货:Java并发编程系列之volatile(二)
  20. Kylin介绍

热门文章

  1. [JZOJ] 5905. 黑暗之魂(darksoul)
  2. js动画之无缝滚动
  3. 设置vim tab为4个空格
  4. springMVC集成logback日志系统
  5. php生成微信小程序二维码源码
  6. vim编辑器使用习惯问题
  7. C语言数组篇(四)二维数组
  8. 1、spring boot入门
  9. Git Pro Book
  10. 移动端的拖拽排序在react中实现 了解一下