hdu5652 India and China Origins 深搜+二分

Mediapipe手势识别实战——基于关节角度计算实现动态手势分类 本文详细介绍了如何利用Mediapipe进行手势识别,通过计算手指关节弯曲角度实现动态手势分类。文章从基础原理出发,讲解了关节角度计算的数学方法,并提供了Python实现代码。同时,还分享了数字手势和OK手势的识别实战经验,以及性能优化和工程实践中的关键技巧,帮助开发者快速掌握实时手势识别技术。 阅读详情

India and China Origins

Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 777    Accepted Submission(s): 259


Problem Description
A long time ago there are no himalayas between India and China, the both cultures are frequently exchanged and are kept in sync at that time, but eventually himalayas rise up. With that at first the communation started to reduce and eventually died.



Let's assume from my crude drawing that the only way to reaching from India to China or viceversa is through that grid, blue portion is the ocean and people haven't yet invented the ship. and the yellow portion is desert and has ghosts roaming around so people can't travel that way. and the black portions are the location which have mountains and white portions are plateau which are suitable for travelling. moutains are very big to get to the top, height of these mountains is infinite. So if there is mountain between two white portions you can't travel by climbing the mountain.
And at each step people can go to 4 adjacent positions.

Our archeologists have taken sample of each mountain and estimated at which point they rise up at that place. So given the times at which each mountains rised up you have to tell at which time the communication between India and China got completely cut off.
 

Input
There are multi test cases. the first line is a sinle integer  T  which represents the number of test cases.

For each test case, the first line contains two space seperated integers  N,M . next  N  lines consists of strings composed of  0,1  characters.  1  denoting that there's already a mountain at that place,  0  denoting the plateau. on  N+2  line there will be an integer  Q  denoting the number of mountains that rised up in the order of times. Next  Q  lines contain  2  space seperated integers  X,Y  denoting that at ith year a mountain rised up at location  X,Y .

T≤10

1≤N≤500

1≤M≤500

1≤Q≤N∗M

0≤X<N

0≤Y<M
 

Output
Single line at which year the communication got cut off.

print -1 if these two countries still connected in the end.

Hint:



From the picture above, we can see that China and India have no communication since 4th year.
 

Sample Input
  
1 4 6 011010 000010 100001 001000 7 0 3 1 5 1 3 0 0 1 2 2 4 2 1
 

Sample Output
  
4
 

Source



二分加BFS,就是有种情况有点含糊

input:
1
1 3
101
1
0 1


output:
0


以为输出1呢,结果刚开始就走不通,原来刚开始必须走一步,不然算不行


#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>

using namespace std;

struct node {
	int x, y;
	node() {}
	node(int x, int y) : x(x), y(y) {}
};

int N, M, Q;
char mapp[505][505];
int op[2][505 * 505];
bool vis[505][505];

int dir[4][2] = { 0, 1, 1, 0, -1, 0, 0, -1 };

bool check(int x, int y) {
	if (x < 0 || x >= N || y < 0 || y >= M || vis[x][y])
		return false;
	return true;
}

bool bfs(int pos) {
	memset(vis, false, sizeof(vis));
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < M; j++) {
			if (mapp[i][j] == '1') {
				vis[i][j] = true;
			}
		}
	}
	for (int i = 1; i <= pos; i++) {
		vis[op[0][i]][op[1][i]] = true;
	}
	queue<node> q;
	for (int i = 0; i < M; i++) {
		if (!vis[0][i]) {
			node fr = node(0, i);
			vis[0][i] = true;
			q.push(fr);

			while (!q.empty()) {
				node tn = q.front(); q.pop();
				for (int j = 0; j < 4; j++) {
					int nx = tn.x + dir[j][0];
					int ny = tn.y + dir[j][1];
					if (check(nx, ny)) {
						//下一步找到直接返回true
						if (nx == N - 1) return true;
						vis[nx][ny] = true;
						q.push(node(nx, ny));
					}
				}
			}
		}
	}
	//所有情况都试过了都不行,返回false
	return false;
}

int main()
{
	int T;
	scanf("%d", &T);
	while (T--) {
		scanf("%d%d", &N, &M);
		for (int i = 0; i < N; i++) {
			scanf("%s", mapp[i]);
		}
		scanf("%d", &Q);
		for (int i = 1; i <= Q; i++) {
			scanf("%d%d", &op[0][i], &op[1][i]);
		}
		
		//刚开始就不行,直接打印0
		if (!bfs(0)) {
			puts("0");
			continue;
		}
		int l = 1, r = Q;
		//二分新生成的山峰时间的区间
		while (r - 1 > l) {
			int m = (l + r) / 2;
			if (bfs(m)) {
				l = m;
			}
			else {
				r = m;
			}
		}
		//没有必要判l,因为二分完了以后l肯定是可以联通的一年
		//而r才有可能是不连通的一年
		if (!bfs(r)) {
			printf("%d\n", r);
		}
		else {
			puts("-1");
		}
	}
	return 0;
}


Trimble RealWorks处理点云数据(一)之坐标转换 Trimble RealWorks处理点云数据之坐标转换 阅读详情

相关推荐

SAP WMS开发实战:用BAPI_L_TO_CREATE_MULTIPLE搞定LT01转储单(附完整代码)

本文详细解析了SAP WMS开发中如何利用BAPI_L_TO_CREATE_MULTIPLE函数模块批量创建LT01转储单。文章深入剖析了核心参数、常见错误及实战代码框架,重点强调了源/目标存储类型等关键字段的获取方法,为系统集成与自动化流程开发提供了可靠的解决方案。

view3的博客 561

hdu 5652(并查集)

题意:很久之前,在中国和印度之间有通路,通路可以简化为一个n*m的字符串,0表示能通过,1表示障碍,每过一年就有一个坐标变成1,问你什么时候,通路彻底无法通过; 解题思路:无向图的连通性,一般直接搜索或者并查集判定,这里用的是并查集,我们把相连的障碍放到一个集合内,然后如果第一列的某点和最后一列的某点也在这个集合内,那么说明,这个通路被障碍堵死了; 这里要处理下第一列和最后一列的问题,可以选择...

weixin_30610755的博客 134

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1118

HDU-5652 India and China Origins(并查集)

题目: http://acm.hdu.edu.cn/showproblem.php?pid=5652 题意: 两国之间有一个n*m的棋盘,中间一开始有一些山脉,后来每年新增一个山脉,求两国第一次被彻底隔绝的时间。未被隔绝返回-1。 思路: 500*500的大小,可以展开成250000个节点求并查集,先把所有的山脉都放上去,然后处理一下并查集,就是每个节点和旁边的4个节点是否都是平地,是就

MyWorld 587

Android14到Android16源码移植中的Bluetooth模块规范适配指南

本文详细解析了从Android14到Android16源码移植过程中Bluetooth模块的规范适配挑战,重点介绍了Android.bp配置差异及常见编译报错解决方案。针对代码规范检查、final字段声明、静态方法优化等核心问题提供实用修复方法,帮助开发者高效完成版本升级适配工作。

fire9的博客 254

【开关】刀开关矩阵(Pole Switched Matrix)的结构讨论

矩阵主要有交叉点矩阵和树形矩阵两种矩阵结构。 交叉点矩阵是由SPST继电器排列成简单的网格形式的阵列组成;树形矩阵是由树形的多路复用模块组成,为需要高频RF带宽的应用提供解决方案。在搭建这些矩阵的同时,也限制了可提供的连接性。这也是为什么有的矩阵是简单的交叉点矩阵,而有的矩阵的交叉点中嵌入隔离继电器用来提供中间带宽的矩阵。 但是,Pickering Interfaces提供的另外一种矩阵类型其...

Tina的博客 4405

hdu 5652(二分加dfs)

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 733    Accepted Submission(s): 252 Problem Description A long t

saber_acher的博客 492

【信息系统项目管理师】第18章:项目绩效域详解

(3)度量绩效域与规划绩效域、项目工作绩效域和交付绩效域的相互作用:1规划构成了 交付和规划比较的基础;项目绩效域共同构成了一个统一的整体,作为一个完整系统,在项目生命周期过程中运行,系统内的每个绩效域相互作用、相互关联和相互依赖,并协调一致、共同运作,支撑项目目标和价值 的实现。(5)开发方法和生命周期绩效域与其他绩效域的相互作用:开发方法和生命周期绩效域与干系人绩效域、规划绩效域、不确定性绩效域、交付绩效域、项目工作绩效域和团队绩效域相互作用。(2)项目工作绩效域的绩效要点包括:项目过程;

数据知道的博客 7799

HDU 5652 (二分 bfs)

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 235    Accepted Submission(s): 72 Problem Description A lon

morejarphone~ 696

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;

blues_C的博客 2919

内模控制(IMC)——理论、应用与实践

内模控制方法的核心思想是利用被控对象的数学模型(即内模)构建控制器,使得控制器可以“预知”被控系统的动态响应,从而在控制输入中提前补偿模型的固有特性和扰动影响。常见的内模控制结构中,将系统分为无延迟部分和扰动部分,并利用内部模型预测输出值,再通过反馈回路进行误差修正。utuimctufbtutui​mctuf​bt其中,uimctu_imc(t)ui​mct为内模预测得到的预补偿控制量,ufbtu_fb(t)uf​bt。

闲人编程的博客 2628

HDU5652India and China Origins 并查集

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 118    Accepted Submission(s): 34 Problem Description A long ti

Jonariguez 吾本优秀 950

3D Slicer学习记录(4)-PLUSapp连接双目相机Intel Realsense

plusapp是基于openIGTLink协议的免费的开源库和应用程序API接口,用于数据采集、预处理、校准和实时流成像、位置跟踪和其他传感器数据。这里以intel realsense双目相机为例详细的演示整个图像流导入到3D Slicer的流程。

weixin_39090239的博客 1344

hdu 5652 India and China Origins 并查集+BFS

hdu 5652 India and China Origins 并查集+BFS 题目链接: India and China Origins 题意:给定N*M的一个地图,1代表障碍物,0代表路,然后在Q个单位时间中,每过一个单位时间,向地图中某点添加一个障碍物,问到哪个时刻,人不能从第一行访问到最后一行。人只可以上下左右移动。如果到了Q时刻还从第一行能访问到最后一行,输出-1。 思路1:首先

Fighting! 1419

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU5652India and China Origins

India and China Origins   Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1995    Accepted Submission(s): 685     Problem Description A l...

Low Coder的博客 384

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

hdu5652 India and China Origins

官方题解:这是一个连通性的问题。你会发现如果将所有操作逆序来看的话就很容易用并查集来处理了。 首先把所有的山峰都加到图中,然后逆序处理每个操作: 对某次操作,在图中删除该位置的山峰,然后判断两个点是否联通,一旦联通就得到了结果。 这里需要对China和India分别新建一个对应的节点。 当然加点操作也是可行的。 #include #include #include #include #incl

moon_NO2015的博客 854

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hdu 5652 India and China Origins

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 901    Accepted Submission(s): 309 Problem Description A lo

Dream_M 804

hdu 5652 India and China Origins(二分)

http://acm.hdu.edu.cn/showproblem.php?pid=5652 问题描述 很久以前,中国和印度之间并没有喜马拉雅山相隔,两国的文化交流很频繁。随着喜马拉雅山海拔逐渐增加,两个地区的交流也越来越少,最终没有了来往。 假设当时的地形和我画的一样,蓝色部分代表海洋,而且当时人们还没有发明轮船。黄色部分代表沙漠,而且沙漠上经常有野鬼散步,所以人们不敢到沙漠

大太阳 755

HDU 5652 India and China Origins

题意:给你n*m的矩阵,0代表平原,1代表高山,接下来q年,每年在(x,y)的位置长出一座高山,问你第几年中国和印度不连通。 分析:第一种做法是BFS判断能不能从中国走到印度,如果一年一年找的话就会超时,所以查找第几年的时候,可以用二分查找,这样会快很多。 第二种做法是并查集,第0列的所有山都并起来,第m-1列的所有山都并起来,对于每座高山,把它周围8个方向的高山并起来,最后判断第0列和第m-

571

HDU 5652 India and China Origins(并查集)

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 441    Accepted Submission(s): 133 Problem Description A lo

Dacc123的博客 929

hdu5652 India and China Origins(并查集)

India and China Origins    Accepts: 49    Submissions: 426  Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) 问题描述 很久以前,中国和印度之间并没有喜马拉雅山相隔,两国的文化交流很频繁。

阳光下的泡沫 908

HDU 5652 India and China Origins(并查集)

题意: 中国和印度之间有一片地方,把这片地方抽象化,于是就可以看成一个N * M矩阵,其中黑色的代表高山不能走过 去,白色的代表平原,可以通行,人每次可以选择往上下左右四个方向移动,但是随着时间的变化某些白色的平原会变 成黑色的高山,从而变为不可通行,题目中给出一个代表地势的图,然后有 Q 次操作,第 i 次操作 代表在第 i 年 (x, y) 处的平原变成了高山,即白色变为了黑色。问中国

Ash.的博客 640

hdu 5652 India and China Origins (★)

题意:上边是中国,下边是印度,黑点的部分不可以走,下面的矩阵1代表黑点不能走,然后给了Q,每一次将一个点变成黑点,即不能走,问最少多少次就可以完成 分析:这是一个连通性的问题。你会发现如果将所有操作逆序来看的话就很容易用并查集来处理了。 首先把所有的山峰都加到图中,然后逆序处理每个操作: 对某次操作,在图中删除该位置的山峰,然后判断两个点是否联通,一旦联通就得到了结果。 这里需要对

Ezereal的博客 913

hdu5652 India and China Origins BFS+二分 或 二维的并查集

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1165    Accepted Submission(s): 382 Problem Description A l

EventQueue的博客 600

HDU 5652 India and China Origins(二分 + BFS)

本文链接:http://www.cnblogs.com/Ash-ly/p/5398867.html 题意:   中国和印度之间有一片地方,把这片地方抽象化,于是就可以看成一个N * M矩阵,其中黑色的代表高山不能走过去,白色的代表平原,可以通行,人每次可以选择往上下左右四个方向移动,但是随着时间的变化某些白色的平原会变成黑色的高山,从而变为不可通行,题目中给出一个代表地势的图,然后有...

dimaishu7553的博客 150

hdu 5652 India and China Origins (并查集)

India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 920    Accepted Submission(s): 313 Problem Description A long t

哇咔咔 501
上一篇: codeforces 610A Pasha and Stick
下一篇: codeforces 626C - Block Towers
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值