[loj3343]超现实树

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 2000005
4 vector<int>v[N];
5 int V,T,t,n,m,r[N],ls[N],rs[N],tot[N];
6 bool pd(int k){
7 if (!tot[k])return 1;
8 if ((!tot[rs[k]])&&(pd(ls[k])))return 1;
9 if ((!tot[ls[k]])&&(pd(rs[k])))return 1;
10 return 0;
11 }
12 bool dfs(){
13 bool v0=0,v1=0,v2=0,v3=0;
14 for(int i=0;i<v[T].size();i++){
15 if (!tot[v[T][i]])return 0;
16 if ((ls[v[T][i]])&&(!tot[rs[v[T][i]]])&&(rs[v[T][i]]))v0=1;
17 if ((ls[v[T][i]])&&(!tot[ls[v[T][i]]])&&(ls[v[T][i]]))v1=1;
18 if ((rs[v[T][i]])&&(!tot[rs[v[T][i]]])&&(rs[v[T][i]]))v2=1;
19 if ((rs[v[T][i]])&&(!tot[ls[v[T][i]]])&&(ls[v[T][i]]))v3=1;
20 }
21 if ((!v0)||(!v1)||(!v2)||(!v3))return 1;
22 v[T+1].clear();
23 for(int i=0;i<v[T].size();i++)
24 if ((ls[v[T][i]])&&(!tot[rs[v[T][i]]])&&(rs[v[T][i]]))v[T+1].push_back(ls[v[T][i]]);
25 T++;
26 if (dfs())return 1;
27 T--;
28 v[T+1].clear();
29 for(int i=0;i<v[T].size();i++)
30 if ((ls[v[T][i]])&&(!tot[rs[v[T][i]]])&&(!rs[v[T][i]]))v[T+1].push_back(ls[v[T][i]]);
31 T++;
32 if (dfs())return 1;
33 T--;
34 v[T+1].clear();
35 for(int i=0;i<v[T].size();i++)
36 if ((rs[v[T][i]])&&(!tot[ls[v[T][i]]])&&(ls[v[T][i]]))v[T+1].push_back(rs[v[T][i]]);
37 T++;
38 if (dfs())return 1;
39 T--;
40 v[T+1].clear();
41 for(int i=0;i<v[T].size();i++)
42 if ((rs[v[T][i]])&&(!tot[ls[v[T][i]]])&&(!ls[v[T][i]]))v[T+1].push_back(rs[v[T][i]]);
43 T++;
44 if (dfs())return 1;
45 T--;
46 return 0;
47 }
48 int main(){
49 freopen("surreal.in","r",stdin);
50 freopen("surreal.out","w",stdout);
51 scanf("%d",&t);
52 while (t--){
53 scanf("%d",&m);
54 V=0;
55 for(int i=1;i<=m;i++){
56 scanf("%d",&n);
57 r[i]=V+1;
58 for(int j=1;j<=n;j++){
59 scanf("%d%d",&ls[j+V],&rs[j+V]);
60 if (ls[j+V])ls[j+V]+=V;
61 if (rs[j+V])rs[j+V]+=V;
62 tot[j+V]=(ls[j+V]>0)+(rs[j+V]>0);
63 }
64 V+=n;
65 if (!pd(r[i])){
66 V-=n;
67 i--;
68 m--;
69 }
70 }
71 T=0;
72 v[0].clear();
73 for(int i=1;i<=m;i++)v[0].push_back(r[i]);
74 if (dfs())printf("No\n");
75 else printf("Almost Complete\n");
76 }
77 return 0;
78 }
[loj3343]超现实树的更多相关文章
- [NOI2020] 超现实树
我们定义链树为:在该树上的任意节点,左右子树大小的最小值小于2. 举个例子: 那么我们思考,链树显然可以在叶子节点任意替换成其他子树. 那么在主链上,我们可以做到生成任意深度大于主链长度的树. 反过来 ...
- 洛谷 P6776 - [NOI2020] 超现实树(找性质,神仙题)
洛谷题面传送门 nb tea 一道! 首先考虑怎样入手分析这个看似非常不可做的问题.首先题目涉及高度无穷的树,根本枚举不了.不过我们冷静一下就会发现,如果我们记 \(mx=\max\limits_{i ...
- Solution -「NOI 2020」「洛谷 P6776」超现实树
\(\mathcal{Description}\) Link. 对于非空二叉树 \(T\),定义 \(\operatorname{grow}(T)\) 为所有能通过若干次"替换 \( ...
- NOI2020网上同步赛 游记
Day1 预计得分:\(32pts\)(我裂开了--) T1 美食家 表示考试的时候想到了关于矩阵快速幂的想法,甚至连分段后怎么处理都想好了,但是没有想到拆点,还有不知道怎么处理重边(这个考虑是多余的 ...
- NOI2020 同步赛划水记
因为太菜了没去现场参加 NOI 就算去了估计也只能混个Fe(雾) "两天都会各有一道签到题,争取拿到70分.剩下的题每道题打30分暴力.每天130分,就能稳拿Ag了."--ls D ...
- WC2021 云划水记
Day -38 - 2459208(2020.12.24) CCF 发公告了,线上举办 hopping. 刚看到还纠结了一会儿,但想想还是报了.虽说是去摸鱼,打打暴力分就走人.但毕竟有牌和没牌也是不一 ...
- Solution -「多校联训」朝鲜时蔬
\(\mathcal{Description}\) Link. 破案了,朝鲜时蔬 = 超现实树!(指写得像那什么一样的题面. 对于整数集 \(X\),定义其 好子集 为满足 \(Y\sub ...
- B树——算法导论(25)
B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
随机推荐
- go 连接MSSQLServer数据库【遇到的坑】
前言:项目测试需要用到mssqlserver数据库连接,遇到坑,自己爬直接上代码: package main import ( "database/sql" " ...
- VS 调试 提示 Lc.exe已退出 代码为-1问题解决方法
找到程序项目下Properties文件夹licenses.licx文件,然后右键选择删除就可以了,调试运行正常了 https://jingyan.baidu.com/article/b24f6c822 ...
- 每日总结:Java课堂测试第三阶段第一次优化 (2021.9.20)
package jisuan2; import java.util.*;public class xiaoxue { public static void main(String[] args) { ...
- from athletelist import AthleteList出现红色下滑波浪线警告
问题:from athletelist import AthleteList出现红色下滑波浪线警告 经过个人网上搜索了解,这个问题是因为python找不到相关的.py文件,无法导入athletelis ...
- JavaScript05
显示和隐藏 元素的显示和隐藏 元素display属性可控制元素的显示和隐藏,先获取元素对象,再通过点语法调用style对象中的display属性 语法格式: 元素.style.display='non ...
- vue3.x全局$toast、$message、$loading等js插件
有时候我们需要使用一些类似toast,messge.loading这些跟js交互很频繁的插件,vue3.x这类插件的定义跟vue2.x插件稍大,而且相对变得复杂了一点点. 第一种.需要时创建,用完移除 ...
- Java:线程池
Java:线程池 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 获取多线程的方法: 实现 Runnable 接口 实现 Callable 接口 实例化 Thre ...
- Seata整合SpringBoot和Mybatis
Seata整合SpringBoot和Mybatis 一.背景 二.实现功能 三.每个服务使用到的技术 1.账户服务 2.订单服务 四.服务实现 1.账户服务实现 1.引入jar包 2.项目配置 3.建 ...
- 震惊,hzoi的考试竟然折磨简单,活到爆!
众所周知,hzoi的考试题非常"简单",那么究竟有多简单呢?最近,一位外国小哥开发出了hzoi的考试竟然折磨简单,活到爆!的方法,这究竟是怎么一回事呢?快和小编一起来看看吧- 满分 ...
- C语言教你写个‘浪漫烟花‘---特别漂亮
效果展示 动态图 总体框架 /***************************************** * 项目名称:浪漫烟花 * 项目描述:贴图 * 项目环境:vs2019 * 生成日期: ...