hdu 4619 warm up 2 并查集或搜索都可以做出来的题 2013多校联合训练第二场

2024-06-07 07:32

本文主要是介绍hdu 4619 warm up 2 并查集或搜索都可以做出来的题 2013多校联合训练第二场,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目并不难只要注意分析一下题目的牌的摆放的方法即可,观察后发现按照题目给的规则进行摆放就会所有牌首尾相连形成一些链或一些环,这样就有的属于某个环或链,或者不属于这个环或链的逻辑关系,很容易就想到了并查集来实现。或者想不到也没关系,你可以去按照链或环的思维继续的想下去,无非就是要找出链或环的长度,这样就可以去搜索了找长度了,链或环的长度都知道了怎样选择去牌也就显而易见了

下面的代码使用的是并查集比较直接的一种方式,一可以采用另外的一种并查集,可以直接统计集合内元素个数的那种,那种并查集是0ms我代码的是31ms,慢了一点

其实这题有很多人是用二分图做的

#include<cstdio>
#include<cstring>
int m,n,p[105*105],num[105*105],i,a,b,x,y;
int findp(int x) { return x==p[x]?x:p[x]=findp(p[x]); }
int read()
{scanf("%d%d",&m,&n);if(!(m+n)) return 0;memset(num,0,sizeof(num));for( i=0;i<102*102;i++)p[i]=i;for(i=0;i<m;i++){scanf("%d%d",&a,&b);x=findp(a*102+b),y=findp((a+1)*102+b);if(x!=y) p[x]=y;}for( i=0;i<n;i++){scanf("%d%d",&a,&b);x=findp(a*102+b),y=findp(a*102+b+1);if(x!=y) p[x]=y;}return 1;
}
void deal()
{int ans=0;for( i=0;i<102*102;i++)num[findp(i)]++;for(i=0;i<102*102;i++)ans+=(num[i]/2);printf("%d\n",ans);
}
int main()
{while(read())deal();return 0;
}


 

这篇关于hdu 4619 warm up 2 并查集或搜索都可以做出来的题 2013多校联合训练第二场的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

随想录 Day 69 并查集 107. 寻找存在的路径

随想录 Day 69 并查集 107. 寻找存在的路径 理论基础 int n = 1005; // n根据题目中节点数量而定,一般比节点数量大一点就好vector<int> father = vector<int> (n, 0); // C++里的一种数组结构// 并查集初始化void init() {for (int i = 0; i < n; ++i) {father[i] = i;}

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

【文末附gpt升级秘笈】腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑

腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑 一、引言 随着人工智能技术的飞速发展,自然语言处理(NLP)和机器学习(ML)在各行各业的应用日益广泛。其中,AI搜索解析能力作为信息检索和知识抽取的核心技术,受到了广泛的关注和研究。腾讯作为互联网行业的领军企业,其在AI领域的探索和创新一直走在前列。近日,腾讯旗下的AI大模型应用——腾讯元宝,迎来了1.1.7版本的升级,新版本在AI搜

江西电信联合实在智能举办RPA数字员工培训班,培养“人工智能+”电信人才

近日,江西电信与实在智能合作的2024年数字员工开发应用培训班圆满闭幕。包括省公司及11个分公司的核心业务部门,超过40名学员积极报名参与此次培训,江西电信企业信息化部门总监徐建军出席活动并致辞,风控支撑室主任黄剑主持此次培训活动。 在培训会开幕仪式上,徐建军强调,科创是电信企业发展的核心动力,学习RPA技术是实现数字化转型的关键,他阐述了RPA在提高效率、降低成本和优化资源方面的价值,并鼓励学

mysql中存储过过程和游标的联合使用

1.SQL如下: DELIMITER //DROP PROCEDURE IF EXISTS PrintAllEmployeeNames5;CREATE PROCEDURE PrintAllEmployeeNames5()BEGINDECLARE error_count INT DEFAULT 0;DECLARE num INT ;DECLARE done INT DEFAULT

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

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

代码随想录算法训练营第三十九天|62.不同路径 63. 不同路径 II 343.整数拆分 96.不同的二叉搜索树

LeetCode 62.不同路径 题目链接:62.不同路径 踩坑:二维的vector数组需要初始化,否则会报错访问空指针 思路: 确定动态数组的含义:dp[i][j]:到达(i,j)有多少条路经递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1]初始化动态数组:dp[0][0] = 1遍历顺序:从左到右,从上到下 代码: class Solution {pu

上海邀请赛 A题目 HDU 5236(dp)

先求出没有ctrl+s的时候构造长度为i的期望f[i] 。然后枚举保存的次数,求出最小即可。 #include<cstdio>#include<cstdio>#include<cmath>#include<queue>#include<stack>#include<string>#include<cstring>#include<iostream>#include<map>

hdu 2586 树上点对最近距离 (lca)

,只要知道dis[i][j]=dis[i][root]+dis[j][root]-2*dis[Lca(i,j)][root].   其中root为树的根节点,LCA(i,j)为i,j的最近公共祖先。 所以我们先把所有的询问储存下来,然后离线直接查询。复杂度是o(n+q)的。 VIE #include<cstdio>#include<algorithm>#include<i