倒计时60天

1.P5908 猫猫和企鹅 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

啊啊啊啊啊啊啊啊啊啊啊啊o(* ̄▽ ̄*)ブ第一次自己做对dfs加二叉树的题啊啊啊啊啊啊啊啊啊啊,emmmm虽然是之前遇到过类似的kkk

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
const int inf = 0x3f3f3f3f;
vector<int>ve[N];
#define int long long
int dis[N], d, cn = 0;void dfs(int x, int fa) {for (auto i : ve[x]) {if (i == fa)continue;dis[i] = dis[x] + 1;if (dis[i] <= d)cn++;dfs(i, x);}
}void solve() {int n, u, v;cin >> n >> d;for (int i = 1; i < n; i++) {cin >> u >> v;ve[u].push_back(v);ve[v].push_back(u);}dfs(1, 0);cout << cn;
}signed main() {ios_base::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);solve();return 0;
}

2.P1395 会议 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)


//5555超时了,70/100,但起码有思路了,感觉emmm好像这种题都一个思路#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
const int inf = 0x3f3f3f3f;
vector<int>ve[N];
#define int long long
int dis[N];
int cn = 0;void dfs(int x, int fa) {for (auto i : ve[x]) {if (i == fa)continue;dis[i] = dis[x] + 1;cn += dis[i];dfs(i, x);}
}void solve() {int n, u, v;cin >> n;for (int i = 1; i < n; i++) {cin >> u >> v;ve[u].push_back(v);ve[v].push_back(u);}int mi = inf, flag;for (int i = 1; i <= n; i++) {cn = 0;memset(dis, 0, sizeof dis);//fill(dis + 1, dis + n + 1, 0);dfs(i, 0);if (mi > cn) {mi = cn;flag = i;}//cout << cn << endl;}cout << flag << ' ' << mi;
}signed main() {ios_base::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);solve();return 0;
}

之后画图推了一下,发现假设有这样一颗树:

1——2——4

         |

         3

易知:1:0+1+2+2=5,2:1+0+1+1=3,3:2+1+0+2=5,4:2+1+2+0=5

再多推几棵树,不难发现,a[2]=a[1]+4-2*3,a[3]=a[2]+4-2*1,a[4]=a[2]+4-2*1

所以就是:a[x]=a[y]+n-2*(x的子节点)=5+4-2*3

所以就求出1的路径和之后推下面的就好了,就不用再用memset或fill之类的,节省时间

kk,虽然思路清楚,但对于我这个菜鸟还是不会写,然后去看了题解

主要:1:用邻接表存数,什么是邻接表捏,就是一种图的存储方式,,,具体,,,暂时不知道,,

           2:dfs遍历求f[1],但看某佬的代码,,,没用dfs,就是跟下面的一样的方法,然后本来想两个结合的,,,,小生不才,,

           3:就是求上面的那个x的子节点

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
const int inf = 0x3f3f3f3f;
#define int long longint n, hason[N], f[N], yy = 1;
int u, v;//邻接表
int tot, la[N * 2], to[N * 2], h[N];void hsb(int x, int y) {to[++tot] = y;la[tot] = h[x];h[x] = tot;
}
//邻接表int hsc(int x, int y) {for (int i = h[x]; i; i = la[i])if (to[i] != y)hason[x] += 1 + hsc(to[i], x);return hason[x];
}void hsa(int x, int y) {f[x] = f[y] - (hason[x] + 1) + (n - hason[x] - 1);for (int i = h[x]; i; i = la[i])if (to[i] != y)hsa(to[i], x);
}void hsd(int x, int y, int z) {f[1] += z;for (int i = h[x]; i; i = la[i])if (to[i] != y)hsd(to[i], x, z + 1);
}void solve() {cin >> n;for (int i = 1; i < n; i++) {cin >> u >> v;hsb(u, v), hsb(v, u);}hsc(1, 0);for (int i = h[1]; i; i = la[i])hsd(to[i], 1, 1);for (int i = h[1]; i; i = la[i])hsa(to[i], 1);for (int i = 2; i <= n; i++)if (f[i] < f[yy])yy = i;cout << yy << ' ' << f[yy];
}signed main() {ios_base::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);solve();return 0;
}

总的就是一直递归,递归,,,,,,,呜呜呜呜呜呜,,,好难,,,,4h,,真晕,,算了,70也不少了╥﹏╥...,,,现在的我确实配不上这道题,,,,,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统Tomcat目录介绍

Tomcat目录介绍 tomcat主目录webapps目录conf目录tomcat管理tomcat配置页面管理server.xml配置文件Connector主要参数host主要参数 tomcat主目录 cd /data/application/tomcat tree -L 1. ├── bin #存放tomcat的管理脚本 ├── BUILDING.txt ├── conf …

go单元测试之benchmark基准测试详解

目录 与普通测试的区别 举例说明 指令与结果解读 性能比较 并行测试 与普通测试的区别 函数参数类型为*testing.B 测试函数名称必须以Benchmark 开头 执行基准测试时&#xff0c;需要添加-bench参数 运行所有基准测试函数 go test –bench.* 举例说明 编写一个对于for循…

推荐几个Python爬虫接单渠道

前言 平时工作有闲的家人们&#xff0c;今天给大家推荐一些用Python爬虫做私活的渠道&#xff01; 【Python爬虫学习资料】 先给各位还不熟悉Python爬虫的朋友介绍一下&#xff01; 可以短时间获得大量资料~ 可以进一步数据分析 当然也可以获得收益&#xff01; 学会Python…

在 Blazor WASM 中手撸一个.NET MD5类

最近.net8 blazor auto大火, 我也玩了一下,发现ssr能用的代码 MD5 类在wasm是没法用的. 于是搜索了一下互联网,找到了一份代码,分享给大家. 我找到的帖子作者原话: 代码不是我的&#xff0c;但我确实稍微修改了它以使其与 System.Security.Cryptography.MD5 类更加一致。 pub…

第十七篇【传奇开心果系列】Python的OpenCV库技术点案例示例:自适应阈值二值化处理图像提取文字

传奇开心果短博文系列 系列短博文目录Python的OpenCV库技术点案例示例系列短博文目录前言一、自适应阈值二值化处理图像提取文字轮廓的初步示例代码:二、扩展思路介绍三、调整自适应阈值二值化的参数示例代码四、对二值化图像进行形态学操作示例代码五、使用轮廓特征进行筛选示…

113.路径总和 II

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

【开源】JAVA+Vue+SpringBoot实现实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

服务器禁用了请求中指定的方法

服务器禁用了请求中指定的方法 python post请求时报错 服务器禁用了请求中指定的方法 错误代码 response = requests.post(fhttp://api.fe.udream.cc/api/UserEngineering/UpdateTask?usertoken=132e5a6e12a6bbff88154b27b0241819&timestamp={timestamp}, json=json.dumps…

RocketMQ客户端实现多种功能

目录 RocketMQ客户端基本流程 消息确认机制 1、消息生产端采用消息确认加多次重试的机制保证消息正常发送到RocketMQ 单向发送 同步发送 异步发送 2、消息消费者端采用状态确认机制保证消费者一定能正常处理对应的消息 3、消费者也可以自行指定起始消费位点 广播消息 …

技术精英求职必备:测试工程师简历制作全指南

简历编写核心原则 撰写针对软件测试工程师职位的简历时&#xff0c;关键在于精确展现您在软件测试、质量保证和错误诊断方面的专业技能、项目经验和技术成就。简历应作为您展示测试策略设计、自动化测试实施和问题解决能力的窗口&#xff0c;确保每一项经历和技能都与软件测试…

【Web】基于Mybatis的SQL注入漏洞利用点学习笔记

目录 MyBatis传参占位符区别 不能直接用#{}的情况 in多参数值查询 like %%模糊查询 order by列名参数化 MyBatis传参占位符区别 在 MyBatis 中&#xff0c;#{} 和 ${} 都是用于传参的占位符&#xff0c;但它们之间有很大的区别&#xff0c;主要体现在两个方面&#xff1a…

并发容器+并发队列【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】

并发容器 什么是并发容器?同步容器:并发容器: ConcurrentHashMap结构图JDK1.7结构图JDK1.8结构图 CopyOnWriteArrayList实现原理 并发队列阻塞队列ArrayBlockingQueue 转自极客时间 什么是并发容器? 在JUC包中&#xff0c;有一大部分是关于并发容器的&#xff0c;如Concurr…

【Python中Selenium元素定位的各种方法】

1、元素定位操作&#xff1a; 2、创建浏览器驱动操作&#xff0c;导入By模块&#xff1a; from selenium import webdriver # 用于界面与浏览器互动 from selenium.webdriver.common.by import By # 用于元素定位 driver webdriver.Chrome() # 调用Chrome类&#xff0c;创…

材料非线性Matlab有限元编程:初应力法与初应变法

导读:本文主要围绕材料非线性问题的有限元Matlab编程求解进行介绍,重点围绕牛顿-拉普森法(切线刚度法)、初应力法、初应变法等三种非线性迭代方法的算法原理展开讲解,最后利用Matlab对材料非线性问题有限元迭代求解算法进行实现,展示了实现求解的核心代码。这些内容都将收…

2023年总结

人们总说时间会改变一切&#xff0c;但事实上你得自己来。 今年开始给自己的时间读书、工作、生活都加上一个2.0的release版本号&#xff0c;相比过去的一年还是有很多进步的。 就跟git commit一样&#xff0c;一步一步提交优化&#xff0c;年底了发个版本。用李笑来的话说&am…

【洛谷题解】P1595 信封问题

题目链接&#xff1a;信封问题 - 洛谷 题目难度&#xff1a;普及- 涉及知识点&#xff1a;错排 题意&#xff1a; 分析&#xff1a;直接用错排公式代入即可 AC代码推理公式&#xff1a; #include<bits/stdc.h> using namespace std; long long f[25]; int main()//用…

服务器被黑,安装Linux RootKit木马

前言 疫情还没有结束&#xff0c;放假只能猫家里继续分析和研究最新的攻击技术和样本了&#xff0c;正好前段时间群里有人说服务器被黑&#xff0c;然后扔了个样本在群里&#xff0c;今天咱就拿这个样本开刀&#xff0c;给大家研究一下这个样本究竟是个啥&#xff0c;顺便也给…

《MySQL 简易速速上手小册》第10章:未来趋势和进阶资源(2024 最新版)

文章目录 10.1 MySQL 在云计算和容器化中的应用10.1.1 基础知识10.1.2 重点案例&#xff1a;使用 Python 部署 MySQL 到 Kubernetes10.1.3 拓展案例 1&#xff1a;在 AWS RDS 上部署 MySQL 实例10.1.4 拓展案例 2&#xff1a;使用 Docker 部署 MySQL 10.2 MySQL 和 NoSQL 的整合…

基于图像掩膜和深度学习的花生豆分拣(附源码)

目录 项目介绍 图像分类网络构建 处理花生豆图片完成预测 项目介绍 这是一个使用图像掩膜技术和深度学习技术实现的一个花生豆分拣系统 我们有大量的花生豆图片&#xff0c;并以及打好了标签&#xff0c;可以看一下目录结构和几张具体的图片 同时我们也有几张大的图片&…

基于片段的3D分子生成扩散模型 - AutoFragDiff 评测

AutoFragDiff 是一个基于片段的&#xff0c;自回归的&#xff0c;口袋条件下的&#xff0c;3D分子生成扩散模型。 AutoFragDiff方法来源于文章《Autoregressive fragment-based diffusion for pocket-aware ligand design》&#xff0c;由加州大学的Mahdi Ghorbani等人于2023年…