分块算法——例题

news/2023/6/7 23:24:47

题目:Tokitsukaze and Synthesis and Traits

出处:牛客寒假训练营

Tokitsukaze 最近在玩 《苏菲的炼金工房2》。

游戏内有 n 种特性,一些特性在调和炼金道具时能合成更高级的特性。有 m 个特性合成公式,每条公式都是 a+b 的形式,即特性 a 与特性 b 在调和成功后能合成出高级特性。这里保证 特性 a 和特性 b 是两种不同的特性,并且每条公式合成出的高级特性互不相同。一些常用的特性合成公式比如:

全能力超强化 + 全能力加成 = 全能之力

优秀成果 + 专家的完成度 = 超级品质

自信重击 + 必中重击 = 一击必杀

Tokitsukaze 将进行 qqq 次调和。每次调和,她会在 kkk 种备选特性中选出其中 222 种进行调和,保证在同一次调和中没有相同编号的特性。 Tokitsukaze 是高级炼金术士,所以调和必定成功。她想知道在这次调和中,她可能获得的高级特性有多少种。

数据允许的复杂度为n*sqrtn

考虑分块。

按照点的度数分块。

sz=sqrt(n)

小点最多连sqrt(n)条边

大点连成一个图,每个点度大于等于sqrt(n),那么 大图上的点数是m/sqrt(n)~sqrt(n)

ps:感觉可以近似

大点最多连m/sqrt(n)条边

q次询问是个幌子,因为它的总询问是1e5级别的。

复杂度是 n*sqrt(n)

为了不必要的tle,选择scanf和快读会更加有优势

#include<bits/stdc++.h>
using namespace std;
#define fp(i, a, b) for (int i=a;i<=b;++i)
#define fd(i, a, b) for (int i=a;i>=b;--i)
#define pii pair<int,int>
const int N=2e5+10;
int d[N];
vector<int>big[N];
vector<int>small[N];
int n,m,q;
bool vis[N];
int sb[N];
int flag[N];
int main()
{scanf("%d%d%d",&n,&m,&q);int sz=sqrt(n+0.5);sz=min(sz,400);vector<pii>edge;fp(i,1,m){int x,y;scanf("%d%d",&x,&y);d[x]++;d[y]++;edge.push_back({x,y});}fp(i,1,n){if(d[i]>=sz)flag[i]=1;}for(auto hh:edge){int u=hh.first;int v=hh.second;if(flag[u]>flag[v])swap(u,v);if(flag[u]){big[u].push_back(v);}else{small[u].push_back(v);}}fp(i,1,q){int k;scanf("%d",&k);fp(j,1,k){scanf("%d",&sb[j]);vis[sb[j]]=1;}int sum=0;fp(j,1,k){if(flag[sb[j]]==1){for(auto tox:big[sb[j]]){sum+=vis[tox]&&vis[sb[j]];}}else{for(auto tox:small[sb[j]]){sum+=vis[tox]&&vis[sb[j]];}}}fp(j,1,k){vis[sb[j]]=0;}printf("%d\n",sum);}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

pcl——VoxelGrid滤波器

点云入门第六章——入门使用VoxelGrid滤波器对点云进行下采样&#xff1a; 原理&#xff1a; pcl的VoxelGrid在输入点云数据上创建一个3D 体素网格&#xff08;将体素网格视为空间中的一组微小的 空间三维立方体的集合&#xff09;。然后&#xff0c;在每个体素&#xff08;即立…

将点云转化为voxel

将点云转化为voxel一般流程&#xff1a; 1、确定点云的范围 2、划分网格 3、将点云投影到网格 一个例子&#xff1a; https://github.com/hardyqr/PointcloudVoxelizer def __get_3D_matrix__(self, full_list, list_matrix, xyz_range, mag_coeff,_format):lx,ly,lz,hx,hy,hz …

【PCL】VoxelGrid滤波器下采样

VoxelGrid滤波器是用体素化网格方法实现下采样的一种常用滤波方法&#xff0c;这里重点学习。 下采样是在保持点云形状的同时减少点云中点的数量&#xff1b;VoxelGrid是通过创建三维体素栅格&#xff0c;用每个体素中所有点的重心来近似表示体素中的其他点&#xff0c;来实现…

PCL voxelgrid实现

体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能&#xff0c;但是会移动点的位置。 此外体素滤波器可以去除一定程度的噪音点及离群点。主要功能是用来进行降采样。 &#xff08;1&#xff09;它的原理是根据输入的点云&#xff0c;首先计算一个能够刚好包裹住该…

voxel 转换为 patient coordinate(python实现)

dcm 其实自己感觉还未完全理解&#xff08;博客内容若有错误请指出&#xff09;&#xff0c;先记下来&#xff0c;等答辩、课题等事情弄好再重新学习并补充。 一些基础概念别人博客已经写的很好了&#xff0c;我理解的关键点为&#xff1a; 1、病人坐标系的xyz定义方向为LPS(…

论文简述 | Voxel Map for Visual SLAM

点击上方“计算机视觉工坊”&#xff0c;选择“星标”干货第一时间送达1摘要在现代视觉SLAM系统中&#xff0c;从关键帧中检索候选地图点是一种标准做法,用于进一步的特征匹配或直接跟踪.在这项工作中,我们认为关键帧不是这项任务的最佳选择,因为存在几个固有的限制,如弱几何推…

VoTr:Voxel Transformer for 3D Object Detection 论文解读

abstract 本文提出来voxel-based transformer 主骨干&#xff0c;叫做Voxel Transformer&#xff08;VoTr&#xff09;。3D卷积在voxel-based&#xff08;体素系列&#xff09;不能够有效捕捉大范围信息&#xff0c;由于感受野的限制。所以提出来将自注意力机制应用与voxel中&a…

详解两阶段3D目标检测网络 Voxel R-CNN:Towards High Performance Voxel-based 3D Object Detection

本文介绍一篇两阶段的3D目标检测网络&#xff1a;Voxel R-CNN&#xff0c;论文已收录于AAAI 2021。 这里重点是理解本文提出的 Voxel RoI pooling。 论文链接为&#xff1a;https://arxiv.org/pdf/2012.15712.pdf 项目链接为&#xff1a;https://github.com/djiajunustc/Voxe…