World CodeSprint 10
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的更多相关文章
- 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. ...
- 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 服务器安装操 ...
- ArcGIS 10.0紧凑型切片读写方法
首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...
- CI Weekly #10 | 2017 DevOps 趋势预测
2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...
- 10个最好用的HTML/CSS 工具、插件和资料库
大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...
- 【Win 10 应用开发】启动远程设备上的应用
这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...
- 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误
1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: -1ubu1604-amd64.deb 提示: ...
- Ubuntu 16.10 安装byzanz截取动态效果图工具
1.了解byzanz截取动态效果图工具 byzanz能制作文件小,清晰的GIF动态效果图,不足就是,目前只能通过输入命令方式来录制. byzanz主要的参数选项有: -d, --duration=SE ...
- Ubuntu 16.10 安装KolourPaint 4画图工具
KolourPaint 4画图工具简单实用,可以绘画.视频处理和图标编辑: • 绘画:绘制图表和“手绘” • 视频处理:编辑截图和照片;应用特效 • 图标编辑:绘画剪贴和标识透明化 1.在Ubuntu ...
随机推荐
- 【软件创意】智能Goals (android)
智能Goals 软件创意核心思想:实现你的愿望. 功能概要:帮助记录奋斗了的历程.实现你的愿望.可以是跑步减肥,每天阅读,交际,存钱买房.满足各种记录需要,目标可以是完成多长时间,可以用计时器:可以 ...
- 系统安全-PAM
Pluggable Authentication Modules(可插入验证模块,简称PAM) Linux-PAM(Pluggable Authentication Modules for Linux ...
- vue 表单输入与绑定 v-model
vue使用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定.下面我们通过示例先了解下基本用法: &l ...
- 【BZOJ2161】布娃娃 扫描线+线段树
[BZOJ2161]布娃娃 Description 小时候的雨荨非常听话,是父母眼中的好孩子.在学校是老师的左右手,同学的好榜样.后来她成为艾利斯顿第二代考神,这和小时候培养的良好素质是分不开的.雨荨 ...
- ElasticSearch(二)核心概念
elasticsearch核心概念 (1)Near Realtime(NRT):近实时,两个意思,从写入数据到数据可以被搜索到有一个小延迟(大概1秒):基于es执行搜索和分析可以达到秒级 (2)Clu ...
- 调用Windows API实现GBK和UTF-8的相互转换
GBK转UTF-8示例 GbkToUtf8.cpp #include <Windows.h> #include <iostream> #include <string&g ...
- android开发基础知识了解
JDK下载:www.oracle.com; SDK下载:www.android.developer.com; eclipse下载:www.eclipse.org;
- 大数据之ES系列——第一篇 ElasticSearch2.2 集群安装部署
第一部分 安装准备 准备三台主机节点: hc11.spads 192.168.160.181 hc12.spads 192.168.160.182 hc13.spads 192.168.160 ...
- SpringBoot-(8)-配置MySQL数据库链接,配置数据坚挺拦截,创建默认数据表
一,链接mysql数据库 # 数据源基本配置 spring.datasource.username=root spring.datasource.password=123456 spring.data ...
- LLVM的总结
LLVM 写在前面的话:无意中看到的LLVM的作者Chris Lattner相关的介绍和故事,觉得很有意思就贴上来,如果不感兴趣,可以直接跳入下一章. 关于LLVM 如果你对LLVM的由来陌生,那么我 ...