题目链接

https://ac.nowcoder.com/acm/contest/23478/G

题面


思路

因为题目中保证了一定会存在操作数量为1的情况,那么我们仔细读题,注意这么一句话智乃最近学习了树旋转,树旋转的本质是二叉树旋转轴节点与其父节点父子关系的改变

所以二重循环枚节点,当发现在两颗树中某一对节点互为父子关系时,直接输出原本是父亲的节点。

如果不存在这么一个节点,说明不用旋转,输出0即可。
实际上可以用一句话来描述:看谁的儿子先爬到父亲头上当爸爸

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
//----------------自定义部分----------------
int n,m,q,a[N];int fal[N],far[N];
void init(){for(int i = 1;i <= n; ++i) {fal[i] = far[i] = i;}
}
int ans = 0;int find(int p,int x){//p = 0表示找l,p=1搜rif(!p){while(x != fal[x]) x = fal[x];}else{while(x != far[x]) x = far[x];}return x;
}int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);cin>>n;init();int lch,rch;for(int i = 1;i <= n; ++i) {cin>>lch>>rch;if(lch){fal[lch] = i;}if(rch){rch = find(0,rch);fal[rch] = i;}}for(int i = 1;i <= n; ++i) {cin>>lch>>rch;if(lch){far[lch] = i;}if(rch){far[rch] = i;}}for(int i = 1;i <= n; ++i){for(int j = 1;j <= n; ++j) {if(fal[i] == j && i == far[j] && fal[i] != far[i]){cout<<1<<endl<<j<<endl;return 0;}}}cout<<0<<endl;return 0;
}

智乃的树旋转(easy version)(思维+暴力)相关推荐

  1. 智乃的数字积木(easy version)<每日一题>

    题目: 题目链接: 登录-专业IT笔试面试备考平台_牛客网 题目思路(easy version): 封装一个能够在相同颜色交换位置 并将字符串转换成数字 的自定义函数 再每次改变颜色后 只需修改颜色值 ...

  2. 智乃的数字积木(easy version) (模拟

    添加链接描述 最后判断q #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 7; #define int ...

  3. 智乃的01串打乱(思维+暴力)

    题目连接 https://ac.nowcoder.com/acm/contest/23478/D 题面 思路 因为希望我们打乱后的01串和原串至少有一个位置不同,那么我们只需要随便找到一个值为1的位置 ...

  4. CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)

    题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次 题目 ...

  5. PTA 06-图2 Saving James Bond - Easy Version (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/672 5-10 Saving James Bond - Easy Version   ( ...

  6. Codeforces Round #579 (Div. 3) F1. Complete the Projects (easy version) 排序 + 贪心

    传送门 文章目录 题意: 思路: 题意: 思路: 比较直观的想法就是对于bi≥0b_i\ge0bi​≥0的项目,我们将aia_iai​从小到大排序,让后依次加bib_ibi​,如果有取不到的,显然就无 ...

  7. CF1497E1 Square-free division (easy version)

    CF1497E1 Square-free division (easy version) 题意: 这是简单版,此题中 k=0 给出一串长为 n 的序列 a1,a2,a3...ana_1,a_2,a_3 ...

  8. 我的新发现:AVL树旋转的一个特性

    关于AVL树旋转的代码网络上铺天盖地. 一些经典的实现方法如下: AVLTree SingleLeftRotation(AVLTree A) {AVLTree B = A->left;A-> ...

  9. 1560F1. Nearest Beautiful Number (easy version)

    F1. Nearest Beautiful Number (easy version) 预处理加二分 #include <bits/stdc++.h> using namespace st ...

最新文章

  1. Akka的好用例[关闭]
  2. 功率谱估计性能分析及matlab仿真,功率谱估计性能分析及Matlab仿真.doc
  3. java字数统计_java统计字数
  4. C. Barcode dp
  5. hdu区域赛在线热身赛 暨 第十二场组队赛
  6. onenote 不能同步的原因及解决方法(教训总结)
  7. 车型代号对照表_车型代号对照表 2016最新版
  8. c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
  9. python杀掉某个指定的进程
  10. 业务分析师Business Analysist(BA)的职业发展之路
  11. url 后面参数说明
  12. uni-app开发的APP项目上线后,登录后自动检测更新,点击下载并安装,可手动检测版本更新,实现扫码下载功能
  13. 霍夫变换(Hough)
  14. IntelliJ IDEA-ssm使用IDEA导入一个Maven风格的ssm项目
  15. 【吐槽大会】互联网大厂秋招版
  16. java from space to space_快速定位Java 内存OOM的问题
  17. 看到越来越多的人用奇怪的域名,其中有china.xx之类的好域名。
  18. 论文参考文献格式标准
  19. 域名抢注自动提交程序详解
  20. 云栖小镇通勤车_云栖小镇通勤特快线即将上线!@上班族们,冬日上班新姿势快来Get!...

热门文章

  1. 关于K-SVD算法中逐列更新的目标函数的理解,再看不懂就打死我吧
  2. Ubuntu16.04装机2:安装CUDA10.2+cuDNN7.6.5
  3. 堆栈用数组和用链表实现
  4. php7.0-fpm.sock
  5. java并发编程基础 --- 4.2 线程的优先级
  6. 【bzoj1951】【古代猪文】Lucas定理+欧拉定理+孙子定理
  7. 掌握 cinder-scheduler 调度逻辑 - 每天5分钟玩转 OpenStack(48)
  8. Eclipse:构造函数不提示才发现
  9. 二分搜索,欧几里德算法
  10. JavaScript学习笔记(三)——从简单模仿到创作