当前位置: 首页 > news >正文

AcWing食物链

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Q1:怎么判断X和Y是不是同类?
A:判断这俩是不是在一个集合中,如果在同一个集合中,那么判断X到祖先节点的距离D[X]和D[Y]到祖先节点的距离是否有D[X]%3=D[Y]%3,也就是3同余,这里D[X]%3=D[Y]%3是不可以直接在代码里面这样写的,d[X]和d[Y]有可能是负数,这样求出来的就WA了!只能按照标准答案里面那样写!
若果是,那么是同类。如果X和Y不在一个集合里面,那么把X和Y合并到一个集合里面。修改p[x]d[px]
接着问题来了,如何正确修改p[x]d[px]
在这里插入图片描述

Q2:怎么判断X吃Y?
A:判断这俩是不是在一个集合中,如果在同一个集合中,那么判断
( d [ X ] + 1 ) % 3 = d [ Y ] % 3 (d[X]+1)\%3=d[Y]\%3 (d[X]+1)%3=d[Y]%3,如果是,那么X吃Y,若X和Y不在一个集合中那么合并X和Y,修改p[px],d[px]

#include<iostream>
#include<string>
#define LEN 100086
using namespace std;
int N,K,p[LEN],d[LEN];
int find(int x){if(p[x]!=x){int t=find(p[x]);d[x]+=d[p[x]];p[x]=t;}return p[x];
}
int main(){cin>>N>>K;int res=0;//假话个数for(int i=1;i<=N;++i){p[i]=i;}while(K--){int D,X,Y;cin>>D>>X>>Y;if(X>N||Y>N) {++res;continue;}if(D==2&&X==Y) {++res;continue;}int px=find(X),py=find(Y);if(D==1){if(px==py&&(d[X]-d[Y])%3){res++;}else if(px!=py){p[px]=py;d[px]=d[Y]-d[X];}}else if(D==2){if(px==py&&(d[X]-d[Y]-1)%3){res++;}else if(px!=py){p[px]=py;d[px]=d[Y]+1-d[X];}}}cout<<res<<endl;return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Lua 脚本编程基础
  • 搭建nexus上传jar包,并结合jenkins运行项目
  • OpenCV||超细节的基本操作
  • Redis学习笔记——第19章 事务
  • 【算法】递归实现二分查找(优化)以及非递归实现二分查找
  • RMAN-06618不同版本之间RMAN无法连接
  • 『C++实战项目 负载均衡式在线OJ』二、编译模块编写(持续更新)
  • 【前端 22】使用Nginx部署前端项目
  • 手持式气象站:科技赋能精准气象观测
  • 长短期记忆网络LSTM
  • 自制安卓车机软件(含APP)
  • 1、爬⾍概述
  • 【2024】Datawhale AI夏令营 Task4笔记——vllm加速方式修改及llm推理参数调整上分
  • 神经网络基础--激活函数
  • 深拷贝——JSON.stringify()序列化和JSON.prase()反序列化
  • Android框架之Volley
  • bootstrap创建登录注册页面
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • extjs4学习之配置
  • Gradle 5.0 正式版发布
  • Iterator 和 for...of 循环
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Python 反序列化安全问题(二)
  • vuex 学习笔记 01
  • ​Python 3 新特性:类型注解
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (04)odoo视图操作
  • (1)Nginx简介和安装教程
  • (12)Linux 常见的三种进程状态
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (二)fiber的基本认识
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (四)React组件、useState、组件样式
  • (循环依赖问题)学习spring的第九天
  • (转)c++ std::pair 与 std::make
  • (转)Google的Objective-C编码规范
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET MVC之AOP
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net6Api后台+uniapp导出Excel
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .net与java建立WebService再互相调用
  • :如何用SQL脚本保存存储过程返回的结果集
  • @component注解的分类
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @test注解_Spring 自定义注解你了解过吗?
  • []T 还是 []*T, 这是一个问题
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]