百日训练(第四周 , 第一天)

2024-05-07 04:20
文章标签 训练 第一天 四周 百日

本文主要是介绍百日训练(第四周 , 第一天),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

放了一个五一假期,玩了五天,没有刷任何题,今天做一个恢复训练

洛谷 —— 奶酪

P3958 [NOIP2017 提高组] 奶酪 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

不难发现,这题可以用并查集,那么就有两个问题需要解决

1、如何将洞联通到一起

2、如何判断这个联通的洞是否可以出走奶酪

首先对于第一个问题,我们最开始想到的应该是两层for循环来将所有洞做一个合并,那么会超时吗,看到数据是1e3,那么应该不会超时,我们可以放心的去进行for循环

int find(int x){  //路径压缩return fa[x] = (fa[x] == x ? x : find(fa[x]));
}void merge(int x , int y){ //并查集基本操作x = find(x) , y = find(y);if(x == y)return;fa[x] = y;
}bool check(int d ,int b){  //判断两个点是否相交后或者是相切double x1 = a[d].x , x2 = a[b].x;double y1 = a[d].y , y2 = a[b].y;double z1 = a[d].z , z2 = a[b].z;double dis = sqrt((x1 -x2)*(x1 - x2) + (y1-y2)*(y1-y2) + (z1 - z2)*(z1-z2));return dis <=r+r;
}for(int i =1;i<=n;++i){for(int j =i+1;j<=n;++j){if(check(i , j)){merge(i , j);}}}

第二个问题 , 如何判断一个联通的集合中,是否可以走出奶酪呢?

我们可以维护一个与顶部相交或相切的数组 , 和一个和底部相交或者相切的数组,再次进行两个for循环 , 循环上方与下方数组 , 看是否存在上方洞和下方洞在一个集合中 ,若有,就输出yes,否则输出no

下面直接放上完整代码

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define INF 0x3f3f3f3f
const double pi = 3.14;
// #define x first
// #define y second 
#define int long long
// #define ll long long
typedef pair<int,int> pii;
int gcd(int x , int y){return y ==0?x : gcd(y , x%y);
}
int lcm(int x , int y){return x*y/gcd(x,y);
}
// const int mod = 998244353;
const int N  = 1e5+9;
struct node
{double x , y ,z;
}a[N];
int n , h , r;
int fa[N] ,tot1[N] , tot2[N];int find(int x){return fa[x] = (fa[x] == x ? x : find(fa[x]));
}void merge(int x , int y){x = find(x) , y = find(y);if(x == y)return;fa[x] = y;
}bool check(int d ,int b){double x1 = a[d].x , x2 = a[b].x;double y1 = a[d].y , y2 = a[b].y;double z1 = a[d].z , z2 = a[b].z;double dis = sqrt((x1 -x2)*(x1 - x2) + (y1-y2)*(y1-y2) + (z1 - z2)*(z1-z2));return dis <=r+r;
}void solve(){memset(fa , 0 , sizeof(fa));memset(a , 0 ,sizeof(a));cin>>n>>h>>r;for(int i =1;i<=n;++i)cin>>a[i].x>>a[i].y>>a[i].z;for(int i =1;i<=n;++i)fa[i] = i;int cnt1 = 1 , cnt2 = 1;for(int i =1;i<=n;++i){if(a[i].z + r >= h){tot1[cnt1] = i;cnt1++;}if(a[i].z - r <=0){tot2[cnt2] = i;cnt2++;}}cnt1--;cnt2--;for(int i =1;i<=n;++i){for(int j =i+1;j<=n;++j){if(check(i , j)){merge(i , j);}}}for(int i =1;i<=cnt1;++i){for(int j =1;j<=cnt2;++j){if(find(tot1[i]) == find(tot2[j])){cout<<"Yes"<<endl;return;}}}cout<<"No"<<endl;}signed main(){ios::sync_with_stdio(false);cout.tie(0);cin.tie(0);int _ =1;cin>>_;while(_--){solve();}return 0;
}

这篇关于百日训练(第四周 , 第一天)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966304

相关文章

YOLO v3 训练速度慢的问题

一天一夜出了两个模型,仅仅迭代了200次   原因:编译之前没有将Makefile 文件里的GPU设置为1,编译的是CPU版本,必须训练慢   解决方案: make clean  vim Makefile make   再次训练 速度快了,5分钟迭代了500次

将一维机械振动信号构造为训练集和测试集(Python)

从如下链接中下载轴承数据集。 https://www.sciencedirect.com/science/article/pii/S2352340918314124 import numpy as npimport scipy.io as sioimport matplotlib.pyplot as pltimport statistics as statsimport pandas

6月21日训练 (东北林业大学)(个人题解)

前言:   这次训练是大一大二一起参加的训练,总体来说难度是有的,我和队友在比赛时间内就写出了四道题,之后陆陆续续又补了了三道题,还有一道题看了学长题解后感觉有点超出我的能力范围了,就留给以后的自己吧。话不多说,上正文。 正文:   Problem:A 幸运数字: #include <bits/stdc++.h>using namespace std;int sum,ans;in

国产AI算力训练大模型技术实践

&nbsp;&nbsp; ChatGPT引领AI大模型热潮,国内外模型如雨后春笋,掀起新一轮科技浪潮。然而,国内大模型研发推广亦面临不小挑战。面对机遇与挑战,我们需保持清醒,持续推进技术创新与应用落地。 为应对挑战,我们需从战略高度全面规划大模型的研发与运营,利用我们的制度优势,集中资源攻坚克难。通过加强顶层设计,统一规划,并加大政策与资源的扶持,我们必将推动中国人工智能实现从追赶者到

预训练是什么?

预训练是什么? 图像领域的预训练 在介绍图像领域的预训练之前,我们首先介绍下卷积神经网络(CNN),CNN 一般用于图片分类任务,并且CNN 由多个层级结构组成,不同层学到的图像特征也不同,越浅的层学到的特征越通用(横竖撇捺),越深的层学到的特征和具体任务的关联性越强(人脸-人脸轮廓、汽车-汽车轮廓) 由此,当领导给我们一个任务:阿猫、阿狗、阿虎的图片各十张,然后让我们设计一个深度神经网

QT quick开发学习第一天:第一个程序界面

第一个Qt Quick程序import QtQuick 2.8 import QtQuick.Window 2.2   Rectangle{ width:1920; height:4000; color: "gray";   Text{ anchors.centerIn: parent; text:"I love you!chi

biostar handbook: 第四周笔记汇总+第五周任务布置

不知不觉已经过去了四周,这个系列的开篇语写于2017年10月14日,距离今天差不多是一个月的时间了。这个月的时间学的内容并不算多,大致也就是如下几个内容: *nux基础: 这个尤为重要,学会了*nix(Linux或unix)之后,如果能够在日常科研生活中进行使用,那么你的效率将会大大提高。数据格式: 数据的保存具有一定的格式,处理数据的前提在于知己知彼,这样才能选择合适的工具。这个部分内容包括知

biostar handbook: 第三周笔记汇总+第四周任务布置

就目前来看,这一周主要以补交上次作业为主,所以上一周的总结增加了很多新内容。但是关于本体论和富集分析,大家还是有点小困难。当然我自己交东西也慢了很多,因为时间也总是不太够,完全靠周末挤出来。 第三周笔记汇总如下 Biostar学习笔记(3)Gene set analysis related topics.本体论biostarhandboo(四)|本体论和功能分析基因本体论 第四周作业发布

本地离线模型搭建指南-LLaMA-Factory训练框架及工具

搭建一个本地中文大语言模型(LLM)涉及多个关键步骤,从选择模型底座,到运行机器和框架,再到具体的架构实现和训练方式。以下是一个详细的指南,帮助你从零开始构建和运行一个中文大语言模型。 本地离线模型搭建指南将按照以下四个部分展开 中文大语言模型底座选择依据本地运行显卡选择RAG架构实现LLaMA-Factory训练框架及工具 4 训练架构及工具 4.1 为什么要使用LLaMA-Factor

ChatGPT原理和训练【 ChatGPT是由OpenAI开发】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰哦) ChatGPT原理和训练【 ChatGPT是由OpenAI开发】 学习教程(传送门)1.概述2