2020牛客寒假算法基础集训营4-F树上博弈
链接:https://ac.nowcoder.com/acm/contest/3005/F
来源:牛客网
题目描述
输入描述:
输出描述:
一行一个整数,代表答案。
备注:
n≤106n \le 10^6n≤106
1≤pi<i1\le p_i < i1≤pi<i 思路
通过画图不难发现只有相隔偶数步时为必胜态,对于每条树链进行间隔点染色,统计不同颜色的点。
答案就是两种颜色的点的数量*(数量-1)相加
CODE
#include <bits/stdc++.h>
#define dbg(x) cout << #x << "=" << x << endl using namespace std;
typedef long long LL; template<class T>inline void read(T &res)
{
char c;T flag=;
while((c=getchar())<''||c>'')if(c=='-')flag=-;res=c-'';
while((c=getchar())>=''&&c<='')res=res*+c-'';res*=flag;
} namespace _buff {
const size_t BUFF = << ;
char ibuf[BUFF], *ib = ibuf, *ie = ibuf;
char getc() {
if (ib == ie) {
ib = ibuf;
ie = ibuf + fread(ibuf, , BUFF, stdin);
}
return ib == ie ? - : *ib++;
}
} int qread() {
using namespace _buff;
int ret = ;
bool pos = true;
char c = getc();
for (; (c < '' || c > '') && c != '-'; c = getc()) {
assert(~c);
}
if (c == '-') {
pos = false;
c = getc();
}
for (; c >= '' && c <= ''; c = getc()) {
ret = (ret << ) + (ret << ) + (c ^ );
}
return pos ? ret : -ret;
} const int maxn = 1e6 + ;
LL ans = ;
LL cnt1 = ;
LL cnt0 = ; int cnt = ;
int color[maxn];
int head[maxn << ],nxt[maxn << ]; int edge[maxn << ]; void add(int a, int b) {
edge[cnt] = b;
nxt[cnt] = head[a];
head[a] = cnt++;
} void dfs(int u) {
//dbg(u),dbg(cnt1),dbg(cnt0); for(int i = head[u]; ~i; i = nxt[i]) {
int v = edge[i];
//dbg(v);
if(v == u) continue;
color[v] = !color[u];
if(color[v] == ) cnt1++;
if(color[v] == ) cnt0++;
dfs(v);
}
} int main()
{
memset(color,,sizeof(color));
int n;
read(n);
ans = ;
memset(head,-,sizeof(head));
for(int i = , x; i <= n; ++i) {
read(x);
add(x,i);
} cnt1 = ;
color[] = ;
dfs();
if(cnt1 < && cnt0 < ) {
printf("0\n");
return ;
}
cout << cnt1*(cnt1-) + cnt0*(cnt0-) << endl;
return ;
}
2020牛客寒假算法基础集训营4-F树上博弈的更多相关文章
- 2020牛客寒假算法基础集训营2 J题可以回顾回顾
2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...
- 2020牛客寒假算法基础集训营1 J题可以回顾回顾
2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...
- 2020牛客寒假算法基础集训营4-I 匹配星星【贪心】
链接:https://ac.nowcoder.com/acm/contest/3005/I来源:牛客网 示例1 输入 复制 2 1 1 0 2 2 1 2 1 1 0 2 2 1 输出 复制 1 1 ...
- 2020牛客寒假算法基础集训营1 F-maki和tree
链接:https://ac.nowcoder.com/acm/contest/3002/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客寒假算法基础集训营4 F Applese 的大奖
链接:https://ac.nowcoder.com/acm/contest/330/H来源:牛客网 Applese 和它的小伙伴参加了一个促销的抽奖活动,活动的规则如下:有一个随机数生成器,能等概率 ...
- 牛客寒假算法基础集训营4 F Applese 的QQ群
链接:https://ac.nowcoder.com/acm/contest/330/F来源:牛客网 Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a ...
- 2020牛客寒假算法基础集训营5 G街机争霸
题目描述 哎,又是银首,要是你这个签到题少WA一发就金了 牛牛战队的队员打完比赛以后又到了日常甩锅的时间.他们心情悲伤,吃完晚饭以后,大家相约到一个街机厅去solo.牛牛和牛能进入了一个迷宫,这个迷宫 ...
- 2020牛客寒假算法基础集训营4 D:子段异或
D : 子段异或 考察点 : 位运算,前缀和,异或的性质和应用 坑点 : 0 - L 的异或值是 0 的话也是一个区间 相同的值可能有多个,那么这时候区间就会有多个(x * (x + 1) / 2) ...
- 2020牛客寒假算法基础集训营6 I.导航系统 (最小生成树)
https://ac.nowcoder.com/acm/contest/3007/I 题中给定的图必定是一棵树 容易发现,如果将输入的N(N-1)个距离看做N(N-1)条无向边的话,那么如果数据合法, ...
随机推荐
- Python3(五) 包、模块、函数与变量作用域
一.Python项目的组织结构 最顶级的组织结构:包(文件夹) 第二个层级:模块(文件) 第三个层级:类 第四个层级:函数.变量(不属于组织结构,是类本身的特性) 二.Python包与模块的名字 1. ...
- 草台班子--Window10文件管理器默认显示图片DPI及位深信息
草台班子--Window10文件管理器默认显示图片DPI及位深信息 经常处理一些图片的DPI/PPI信息,总是需要找软件打开确认,通过Windows10文件浏览器可以默认显示图片的DPI信息 ...
- Java开发最佳实践(一) ——《Java开发手册》之"编程规约"
Java开发手册版本更新说明 专有名词解释 一. 编程规约 (一) 命名风格 (二) 常量定义 (三) 代码格式 (四) OOP 规约 (五) 集合处理 (六) 并发处理 (七) 控制语句 (八) 注 ...
- NodeJS 介绍安装
1.NodeJS简介 Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的.可扩展的网络应用.N ...
- C# 多线程的阻塞和继续-ManaulResetEvent的使用
在工作中,会遇到需要多线程处理相应的业务需求,最典型的包括Socket的通信. 多线程处理里,就会考虑到,哪个线程先运行,哪个线程后运行的情况. 这里我介绍一下,使用ManualResetEvent类 ...
- 第10章 DOM
第10章 DOM 10.1 节点层次 10.1.1 Node 类型 10.1.2 Document 类型 10.1.3 Element 类型 10.1.4 Text 类型 10.1.5 Comment ...
- system.run
客户端开启了remotecommand后可以在server调用该命令在agent上执行一些命令 命令中有逗号 zabbix_get -s xxx.xxx.xxx.xxx -k "system ...
- 思科路由器、交换机配置Console 线线序 (亲测可以)
网上有许多标准console线配置线序,在配置思科网络设备时都是不能用的,因为思科的console线序是专用的, 如下 水晶头侧 线序 B 白橙,橙,白绿,蓝 ,白蓝,绿,白粽,棕 对应串口侧线序 1 ...
- Dalvik虚拟机和Art虚拟机
Dalvik虚拟机 DVM是Dalvik Virtual Machine的缩写,是Android4.4及以前使用的虚拟机,所有android程序都运行在android系统进程里,每个进程对应着一个Da ...
- Redis主从结构主节点执行写入后wait命令对性能的影响
这里的Redis主从结构可以是简单的主从,sentinel,redis cluster中的主从等. wait命令的作用:此命令将阻塞当前客户端,直到当前Session连接(主节点上)所有的写命令都被传 ...