C:

题意:

给定一个长度为 $n$ 的序列 $a_i$,从 $a$ 序列中选出一个大小为 $k$ 的子序列使得子序列数字的  bitwise AND 值最大。

求问最大值是多少,并求出有多少个最大值序列。

解法:

从高位向低位枚举 bitwise AND 的二进制位,每一次优先让当前 bitwise AND 的最高位为1,如果可行则让此位为1 。

考虑已知一个 bitwise AND 的前缀 $S$,求解满足子序列 bitwise AND 前几位等于 $S$ 的方案数,只要求出所有的

$a_i \  AND \  S = S$,然后组合数一下即可。

$O(n * log(ans))$

D:

题意:

给定一棵 $n$ 个节点的树,每一个节点有一个权值 $a_i$(有正有负),现在从树上找出两个互不相交的联通点集 $A,B$,使得

$(\sum{A_i}) \cdot (\sum{B_i}) $ 最大。

解法:

可以注意到,答案一定是选取一条边,分别求这条边两侧的最大联通子图,然后相乘的结果。

考虑树形dp,

$f(i,0)$ 表示考虑 $i$ 的子树内的点,最大的联通子图点权和

$f(i,1)$ 表示考虑 $i$ 的子树内的点,包括点 $i$ 的最大的联通子图点权和

$f(x,1) = \sum_{<x,p>∈E} {max ( f(p,1), 0 ) } + a_x$

$f(x,0) = max \{ 0, f(x,1) ,  f(p, 0) \}, (<x,p>∈E)$

首先将1作为 root,dfs一遍得到以1 为根的树的 $f$ 值,然后考虑root 在树上移动,每移动一次改变两个点的 $f$值。

$ans = max \{ f(p_1,0) * f(p_2,0), f(p,0) * [f(root,1) -  max(f(p,1), 0) ] \}$

$O(n)$

E:

题意:

求问有多少个1~n的排列 $p$ ,满足 $p_{i} < p_{i+1}$ 或 $p_{i} < p_{i-1}$ 的人数至少有 $K$ 个。

多组询问。

解法:

考虑dp,$f(i,j)$ 表示 1~i 的排列有多少个有 $j$ 个不满足条件的$p_i$。

注意到不满足条件的位置一定不相邻,这样

$f(i+1,j) += f(i,j) \cdot (2j)$

$f(i+1,j+1) += f(i,j) \cdot (i+1-2j)$

求一下前缀和即可。

$O(n^2 + K)$

F:

题意:

给定平面上$n$个位置不同的点,保证不存在三点共线,给定一棵树,建立一中树的节点和平面上点的对应关系,

使得将在树上存在边的点用线段连起来后 不存在线段在非给定节点交叉的情况。

解法:

考虑极角排序,每一次选择左下角的点,并且按照极角对于其他店进行划分。

$O(n^2 logn)$

G:

待补

World CodeSprint 10的更多相关文章

  1. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  3. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  4. CI Weekly #10 | 2017 DevOps 趋势预测

    2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...

  5. 10个最好用的HTML/CSS 工具、插件和资料库

    大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...

  6. 【Win 10 应用开发】启动远程设备上的应用

    这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...

  7. 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8   在安装的时候报错: -1ubu1604-amd64.deb 提示: ...

  8. Ubuntu 16.10 安装byzanz截取动态效果图工具

    1.了解byzanz截取动态效果图工具 byzanz能制作文件小,清晰的GIF动态效果图,不足就是,目前只能通过输入命令方式来录制. byzanz主要的参数选项有: -d, --duration=SE ...

  9. Ubuntu 16.10 安装KolourPaint 4画图工具

    KolourPaint 4画图工具简单实用,可以绘画.视频处理和图标编辑: • 绘画:绘制图表和“手绘” • 视频处理:编辑截图和照片;应用特效 • 图标编辑:绘画剪贴和标识透明化 1.在Ubuntu ...

随机推荐

  1. django(一)--- 安装django

    准备好虚拟环境:Python开发虚拟环境 安装前的准备 1. 下载django:django下载 本文使用的是django-1.5.9(不同版本号之间的差别还是比較大的.别搞错了) 2.准备djang ...

  2. Oracle 索引 简单介绍

    1 索引的创建语法: CREATE UNIUQE | BITMAP INDEX <schema>.<index_name>       ON <schema>.&l ...

  3. 模式识别之分类器knn---c语言实现带训练数据---反余弦匹配

    邻近算法   KNN算法的决策过程 k-Nearest Neighbor algorithm是K最邻近结点算法(k-Nearest Neighbor algorithm)的缩写形式,是电子信息分类器算 ...

  4. RTSP/RTMP/HLS/HTTP流媒体播放器EasyPlayer

    EasyPlayer播放器系列项目 EasyPlayer是由EasyDarwin开源团队开发和维护的一个流媒体播放器系列项目,随着多年不断的发展和迭代,不断基于成功的实践经验,发展出包括有: Easy ...

  5. cmake中的变量和命令的大小写

    1 cmake中要特别注意命令和变量的大小写 2 cmake的内置命令是不区分大小写的 3 cmake内置变量是区分大小写的,或者干脆就说,cmake的所有变量都是区分大小写的 这就是变量和命令的不同 ...

  6. ZeroMQ Distributed Messaging

    ZeroMQ \zero-em-queue\, \ØMQ\: Ø  Connect your code in any language, on any platform. Ø  Carries mes ...

  7. 编译性语言&amp;解释性语言

    计算机是不能理解高级语言.当然也就不能直接执行高级语言了.计算机仅仅能直接理解机器语言,所以不论什么语言,都必须将其翻译成机器语言.不论什么编程语言编写的程序归根究竟都是由底层机器的机器代码(01序列 ...

  8. Machine Learning in Action(1) K-近邻

    机器学习分两大类,有监督学习(supervised learning)和无监督学习(unsupervised learning).有监督学习又可分两类:分类(classification.)和回归(r ...

  9. APP上线审核注意事项

    基本要点 ·         不能导致手机故障(比如崩溃或屏幕问题) ·         长时间/过度使用之后反应仍然很快 ·         应用内的所有价格信息中不能用固定值代替可变变量 ·    ...

  10. 深入浅出剖析C语言函数指针与回调函数(一)【转】

    本文转载自:http://blog.csdn.net/morixinguan/article/details/65494239 关于静态库和动态库的使用和制作方法. http://blog.csdn. ...