BZOJ4675: 点对游戏
传送门
考虑每一对幸运点对的贡献,假设有 \(v\) 对
一共可以选择 \(x\) 个点,总共 \(n\) 个点
那么答案就是
\]
统计点对个数就好了
Q: 一道点分治入门题目为什么要写长链剖分
A: 因为太久没有写过了有点忘了...
# include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn(1e5 + 5);
int first[maxn], cnt, n, m, lucky[20], tmp[maxn], *id, *f[maxn], son[maxn], len[maxn];
ll ans;
double ret;
struct Edge {
int to, next;
} edge[maxn];
inline void Add(int u, int v) {
edge[cnt] = (Edge){v, first[u]}, first[u] = cnt++;
edge[cnt] = (Edge){u, first[v]}, first[v] = cnt++;
}
void Dfs1(int u, int ff) {
int e, v;
for (e = first[u]; ~e; e = edge[e].next)
if ((v = edge[e].to) ^ ff) Dfs1(v, u), son[u] = len[v] > len[son[u]] ? v : son[u];
len[u] = len[son[u]] + 1;
}
void Dfs2(int u, int ff) {
int e, v, i, j;
f[u][0] = 1;
if (son[u]) f[son[u]] = f[u] + 1, Dfs2(son[u], u);
for (i = 1; i <= m; ++i) if (lucky[i] < len[u]) ans += f[u][lucky[i]];
for (e = first[u]; ~e; e = edge[e].next)
if (((v = edge[e].to) ^ ff) && (v ^ son[u])) {
f[v] = id, id += len[v];
Dfs2(v, u);
for (i = 1; i <= m; ++i)
for (j = 0; j < len[v] && j < lucky[i]; ++j)
if (lucky[i] - j - 1 < len[u]) ans += (ll)f[u][lucky[i] - j - 1] * f[v][j];
for (i = 1; i <= len[v]; ++i) f[u][i] += f[v][i - 1];
}
}
int main() {
int i, n1, n2, n3, u, v;
memset(first, -1, sizeof(first));
scanf("%d%d", &n, &m);
for (i = 1; i <= m; ++i) scanf("%d", &lucky[i]);
n1 = 0, n2 = 0, n3 = 0;
for (i = 1; i <= n; ++i)
if (i % 3 == 1) ++n1;
else if (i % 3 == 2) ++n2;
else ++n3;
for (i = 1; i < n; ++i) scanf("%d%d", &u, &v), Add(u, v);
Dfs1(1, 0), f[1] = id = tmp, id += len[1], Dfs2(1, 0);
ret = 1.0 * ans / (1.0 * (n - 1) * n);
printf("%.2lf\n%.2lf\n%.2lf\n", ret * n1 * (n1 - 1), ret * n2 * (n2 - 1), ret * n3 * (n3 - 1));
return 0;
}
BZOJ4675: 点对游戏的更多相关文章
- 【BZOJ4675】点对游戏 树分治+期望
[BZOJ4675]点对游戏 Description 桑尼.露娜和斯塔在玩点对游戏,这个游戏在一棵节点数为n的树上进行. 桑尼.露娜和斯塔三人轮流从树上所有未被占有的节点中选取一点,归为己有,轮流顺序 ...
- 使用HTML5开发Kinect体感游戏
一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- Unity游戏内版本更新
最近研究了一下游戏内apk包更新的方法. ios对于应用的管理比较严格,除非热更新脚本,不太可能做到端内大版本包的更新.然而安卓端则没有此限制.因此可以做到不跳到网页或应用商店,就覆盖更新apk包. ...
- 游戏服务器菜鸟之C#初探一游戏服务
本人80后程序猿一枚,原来搞过C++/Java/C#,因为工作原因最后选择一直从事C#开发,因为读书时候对游戏一直比较感兴趣,机缘巧合公司做一个手游的项目,我就开始游戏服务器的折腾之旅. 游戏的构架是 ...
- iOS审核这些坑,腾讯游戏也踩过
作者:Jamie,专项技术测试工程师,在iOS预审和ASO优化领域从事专项测试相关工作,为腾讯游戏近100个产品提供专项服务. WeTest 导读 在App上架苹果应用商店的过程中,相信大多数iOS开 ...
- 漫谈C#编程语言在游戏领域的应用
0x00 前言 随着微软越来越开放,C#也变得越来越吸引人们的眼球.而在游戏行业中,C#也开始慢慢地获得了关注.这不, 网易绝代双娇手游团队已经全面使用.Net Core支持前后端统一C#开发,跨平台 ...
- 解构C#游戏框架uFrame兼谈游戏架构设计
1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...
- 趣说游戏AI开发:曼哈顿街角的A*算法
0x00 前言 请叫我标题党!请叫我标题党!请叫我标题党!因为下面的文字既不发生在美国曼哈顿,也不是一个讲述美国梦的故事.相反,这可能只是一篇没有那么枯燥的关于算法的文章.A星算法,这个在游戏寻路开发 ...
随机推荐
- 从 falcon api 中获取数据
import json import time import requests openfalcon = 'http://ip:port/api/v1' user = 'user' password ...
- 编写 ES6 的 7 个实用技巧
无脑翻译走一波~ Hack #1 - 变量交换 使用数组解构交换变量的值 let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // ...
- apt错误
安装软件遇到错误,不管安装什么软件都有错误. apt-get install softname 报错如下:E: Sub-process /usr/bin/dpkg returned an error ...
- Code First 数据迁移 转
一.为模型更改设置 Code First 数据迁移 1.工具—>库程序包管理器—>程序包管理器控制台—>输入“Enable-Migrations” 或者 Enable-Migrat ...
- jQuery过滤选择器:first和:first-child的区别,CSS伪类:first-child
最近项目中遇到需求:只在第一列不能删除,不显示小叉号:点击可添加一列,后面的列右上角显示小叉号,可以点击删除. 我是使用以下方法解决这个小需求 :CSS伪类选择器:first-child设置所有小叉号 ...
- sqlCAST使用详解
(1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型.以下例子用于将文本字符串'12'转换为整型: SELECT CAST('12' AS int) (2).返回值是 ...
- 第5章—构建Spring Web应用程序—SpringMVC详解
SpringMVC详解 5.1.跟踪Springmvc的请求 SpringMVC的核心流程如下: 具体步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求 ...
- ubuntu安装maven
1.安装maven前需要安装JDK 2.下载mavenapache-maven-3.3.9-bin.tar.gz 3.解压maven到当前目录tar -zxvf apache-maven-3.3.9- ...
- python 把一文件包含中文的字符写到另外文件乱码 UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position
报错的代码是: file2 = open('target.txt','w')for line in open('test.txt'): file2.write(line)原因:文件编码不一致导致解决方 ...
- ASP.NET Core 中的 ORM 之 Entity Framework
目录 EF Core 简介 使用 EF Core(Code First) EF Core 中的一些常用知识点 实体建模 实体关系 种子数据 并发管理 执行 SQL 语句和存储过程 延迟加载和预先加载 ...