zoj1505 双向bfs

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx 科技中介服务机构想要提升服务效率,需要哪些数智工具支持? 立即下载
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
#include <string>
#include <algorithm>
#include <iostream>
#define MID(x,y) ( ( x + y ) >> 1 )
#define L(x) ( x << 1 )
#define R(x) ( x << 1 | 1 )
#define FOR(i,s,t) for(int i=(s); i<(t); i++)
#define BUG puts("here!!!")
#define STOP system("pause")
#define file_r(x) freopen(x, "r", stdin)
#define file_w(x) freopen(x, "w", stdout)


using namespace std;


typedef long long LL;


int isok(int x,int y){
	if( x >= 0 && x < 8 && y >= 0 && y < 8)
		return 1;
	return 0;
}
void pro(LL &st)
{
	int x, y;
	scanf("%d%d", &x, &y);
	x--; y--;
	int p = x * 8 + y;
	st |= (1ll << p);	
}


queue< pair<LL,int> > q;
set<LL> sets, sett;
set<LL>::iterator it; //用set可以避免bfs重复访问某个点 
int dir[9] = {1,0, -1,0, 0,1, 0,-1};
bool Bin(LL st, int t, set<LL> &s, set<LL> &ss, bool f)
{
	bool a[100][100];
	int p[5][5], cnt = 0;
	memset(a, false, sizeof(a));
	FOR(i, 0, 64)
		if( st & (1ll << i) )
		{
			int x = i/8;
			int y = i%8;
			a[x][y] = true;
			p[cnt][0] = x;
			p[cnt++][1] = y;
		}
	FOR(i, 0, 4) //跳哪一颗 
	{
		LL tmp = st;
		tmp -= (1ll << (p[i][0]*8 + p[i][1])); //这一颗棋子要跳走了 
		LL la = tmp;
		for(int k=0; k<8; k+=2) //往什么方向 
		{
			tmp = la;
			int x = p[i][0] + dir[k];
			int y = p[i][1] + dir[k+1];
			if(isok(x,y)&&a[x][y]){
				x += dir[k];
				y += dir[k+1];   //跳一格 
			}
			if(!isok(x,y)||a[x][y])  continue;
			tmp += (1ll << (x * 8 + y));  
			if( !s.count(tmp) )
			{
				if( f && ss.count(tmp) ) return true;//f:正向正常搜索,反向判断 
				if(!s.count(tmp)) //剪枝 
					q.push(make_pair(tmp, t));
				s.insert(tmp);
			}
		}
	}
	return false;
}


bool BFS(LL st, set<LL> &s, set<LL> &ss, bool f)
{
	s.clear();
	while( !q.empty() ) q.pop();
	s.insert(st);
	q.push(make_pair(st, 0));
	
	while( !q.empty() )
	{
		if( q.front().second < 4 )  //正反都扩展4层,复杂度2*16^4 
		{
			bool ans = Bin(q.front().first, q.front().second + 1, s, ss, f);
			if( ans ) return true;
		}
		else
			return false;
		q.pop();
	}
	return false;
}
	
bool solve(LL st, LL tt)
{
	BFS(st, sets, sett, false);
	return BFS(tt, sett, sets, true);
}


int main()
{
	LL st, tt;
	int x, y;
	
	while( ~scanf("%d%d", &x, &y) )
	{
		st = tt = 0;
		x--; y--;
		int p = x * 8 + y;
		st += (1ll << p);
		
		FOR(i, 0, 3) pro( st );
		FOR(i, 0, 4) pro( tt );
		
		bool ans = solve(st, tt);
		
		puts(ans ? "YES" : "NO");
	}
	return 0;
}

usb 扩容盘检测修复工具源码,编译产物 立即下载

相关推荐

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

ZOJ 1505跳子棋

题目地址ZOJ-1505        搜索问题,开始时是用STL,但效率太低。后改用一维数组,将二维坐标(row,col)映射成一维来存储,同时在使用一个哈希表用于记忆化搜索,哈希表的key是四个棋子坐标的编码,value为当前已经找到的到达目标格局需要移动的最少步数。        不过这题可以用双向bfs搜索,效率更高。        #include #include #in

Parrot的专栏 1121

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

ZOJ - 1505 Solitaire 【双向BFS】

题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1505 题意 一个8 * 8 的棋盘上面有四个棋子 棋子可以上下左右移动,如果隔壁有个棋子 那就可以跳一步,只能跳一步。 给出 初始状态,和末尾状态 求能不能在8步之内达到 思路 如果是单向BFS (4 ...

banshen0201的博客 166

基因的富集分析

通过RNA_seq差异表达分析等获得一组基因,想要进一步了解这些基因可能参与哪些生物学过程,具有哪些功能,一般就会用到基因的富集分析了。现在小麦基因注释信息已经可以获得,目前来看包括两套。一个是TGACv1,另一个就是IWGSC1.0。需要用到一个叫“clusterProfiler”的R包。下面用到的数据集来自TGACv1。1、安装source("https://bioconductor.org/b

xxxxx 1万+

《通信工程施工与管理》

制作馈线接头必须使用专用的工具,专用工具包括:馈线切割刀、馈线安全刀、小金属丝毛刷、固定尺寸或大号活动扳手、小号扁锉刀、细齿小手锯、接头扩孔器、3M防水胶或防水接头盒;如图所示,详情如表所示。

2302_78710464的博客 1653

zoj1505 Solitaire - 双向广搜

<br />这是自己自己第一次些双向广搜,参考了杨教主的思路以后,然后在杨教主的光环庇护下,终于写出了双向广搜,思路跟教主的所以一样,但是用到了c++的stl,这里装载一下教主的解说<br /> 2007-07-26 03:40:42 Accepted 1505 C++ 00:00.63 1648K Tiaotiao <br />现在是凌晨3点45分.这次的胜利实在是来之不易,在我即将崩溃之时,眼前突然一片光明~AC! 真是所谓柳暗花明峰回路转喜从天降心旷神怡雪中送炭啊...:) 下面转入正题,这次解决的

skywalker_sun的专栏 2424

redhawk-sc使用简介

数据完整性对结果的准确性有很大影响,所以一定要保证数据完整性,Redhawk-sc在跑完后,Report里有Data Integrity界面,在这个界面会看到设计数据和库文件的数据完整性,在相应的报告中会有没有覆盖到的数据情况,要对每一项仔细检查,保证输入数据没有问题。文件一般加密,用户唯一需要选择的是文件的corner。其中,cell lef除了常规的standard cell,还有如DTCD,BTSV和clamp等cell的lef,不可缺失,否则data integrity将不是100%。

weixin_48518726的博客 3144

zoj 1505 || poj 1198 Solitaire(状态压缩+双向BFS)

状态压缩+双向BFS。。。 我压了一个下午!!!!!! 呜呜。。> 双向BFS理解的不好,我弄俩队列同时搜。。我错了。。。其实刚开始就想到了,这么搜万一有一个走6步,一个走2步,挺纠结的是把。 后来一直过不去,才知道。。。双BFS可以保存一个BFS的结果,然后第二个搜第一

小媛在努力~ 2635

Windows 11安装realtek audio control

Windows 11安装realtek audio control,解决无法链接RPC问题

m0_46144825的博客 8万+

别再手动算LLC了!用Mathcad 15分钟搞定谐振参数与增益曲线(附已验证产品案例)

本文详细介绍了如何利用Mathcad在15分钟内高效完成LLC谐振变换器的参数计算与增益曲线绘制。通过对比传统工具,突出Mathcad在自然数学表达、实时单位换算和动态参数关联方面的独特优势,帮助电源工程师大幅提升设计效率。文章还提供了已验证的产品案例和实用模板,助力工程师快速掌握谐振参数优化技巧。

weixin_42548888的博客 548

zoj 1505||poj 1198 Solitaire(双向bfs)

这道题很带感啊,看了一个星期了,map,vector,状态压缩之类的之前都没接触过借助这个题目学到了很多东西。 说题之前做个笔记先: Map(底层由红黑树实现) 提供了1对1的数据处理能力。 MapM; Value=M[key]; Map的几种用法: 插入的3种方式: M.insert(pair(…,…));                              M.inser

uiiの技术随笔 1162

MIPI CSI-2 协议解析

CSI-2标准协议前言一、Overview of CSI-2二、CSI-2 layer Definitions三、 Camera Control Interface(CCI)3.1 数据传输协议(Data Transfer Protocol)3.1.1 消息类型(Message Type)3.1.2 读写操作(Read/Write Operations)3.1.2.1 随机位置单次读3.1.2.2 当前位置单次读3.1.2.3 随机位置连续读3.1.2.4 当前位置连续读3.1.2.5 随机位置单次写3.1

Lucky 3万+

BFS与双向BFS---zoj_1505

           http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=505        题目大意,跳棋,8*8的棋盘,上有4个棋子,给你一个初始状态给你一个结束状态,问能不能在8步之内从初始状态走到结束状态。        一般的想法,直接暴力DFS,使用状态压缩,状态表偷懒使用set,用时2S        如果使用...

plussai的博客 361

AGM Supra软件从零到一:国产CPLD工程创建全流程拆解

本文详细拆解了AGM Supra软件从零开始创建国产CPLD工程的全流程,包括开发环境配置、工程创建、Quartus项目转换、TCL脚本执行与编译等关键步骤。特别强调了中文路径避坑、器件型号选择等实用技巧,帮助开发者高效完成CPLD开发任务。

weixin_29158413的博客 410

华为海思:大小海思的双轮驱动战略分析

大海思的定位清晰明确,即专注于为华为内部提供高性能、高集成度的芯片解决方案,以支持华为终端、服务器等业务的快速发展。小海思的产品线广泛,涵盖了广域物联、短距物联、手机穿戴、显示交互、智慧视觉、智慧媒体、MCU、模拟以及光模块等多个领域。通过提供多样化的芯片解决方案,小海思旨在满足外部客户的不同需求,拓展华为海思在芯片市场的份额和影响力。大海思的产品布局主要围绕华为的内部需求展开。在智能手机应用处理器方面,大海思的麒麟系列芯片已经成为华为手机的标志性产品,以其出色的性能和能效比赢得了市场的广泛认可。

dream it possible 2924

POJ1198(ZOJ1505) Solitaire(双向bfs)

题意: 一个8 * 8 的棋盘上面有四个棋子 棋子可以上下左右移动,如果隔壁有个棋子 那就可以跳一步,只能跳一步。 给出 初始状态,和末尾状态 求能不能在8步之内达到 思路:双向bfs 状态压缩,整个棋盘压缩为64位的long long 正向走4层,反向走4层,看是否有交点。 参考:https://blog.youkuaiyun.com/cacyth/article/details/48572945 #inc...

CY05627的博客 360

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ZOJ - 1505 Solitaire 【双向BFS】(好题)

题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1505题意 一个8 * 8 的棋盘上面有四个棋子棋子可以上下左右移动,如果隔壁有个棋子 那就可以跳一步,只能跳一步。 给出 初始状态,和末尾状态 求能不能在8步之内达到思路 乍一眼看,这题就是一个搜索,但是虽然只有8步,但是每步都有4个点可以选择,每个点又有4个方...

running_acmer的博客 586

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

双向BFS

转自 如果已经知道搜索的开始状态和结束状态,要找一个满足某种条件的一条路径(一般是最短路径),为了避免无谓的“组合爆炸”产生,就可以采取双向广度搜索算法,也就是从开始状态和结束状态同时开始搜索,一个向前搜,一个向后找。  这样做的好处是什么?     我们不妨假设每次搜索的分支因子是r,如果最短的路径长为L的话(也就是搜了L层),那么,用一般的BFS算法(不考虑去掉重复状态),总的搜

fobdddf的专栏 3113

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ZOJ 1505 Solitaire(双向广搜)

哭了 搞了一天. #include #include #include #include using namespace std; class state{ public: int times; long long v; state():times(0),v(0){} }; mapvis1,vis2; long long target; int di[] = {-1, 1, 0,

蚂蚁大战大象 682

zoj1505

zoj1505

zzu-hust-madd 276

hdu 1401 zoj1505 pku 1198 双向广搜

<br />/* 对于双广一直很害怕,一直不敢去写。。。 对于状态的保存总是感觉很陌生,可是BFS DFS 中的状态很重要,好好学状态 以前就想写这个题目。。。 终于AC了。。 */ #include <iostream> #include <cstdio> #include <bitset> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace

悔惜晟 1007

poj 1915 knight moves (双向bfs)

此题之前用bfs水过,http://blog.youkuaiyun.com/cqlf__/article/details/7008688 学习下双广的做法: 双向bfs:在目标已知的情况下,能提高很大速度。 单向: b^n 双向的:2*b^(n/2) 做法: 两个队列,交替结点搜索。 while(!empty()) { 扩展正向一个结点; 遇到反向已扩展的:return ; 扩展反

uiiの技术随笔 568

poj 1198 || zoj 1505 || hdoj 1401 双向宽度遍历

参考了:http://blog.youkuaiyun.com/zxy_snow/article/details/6844220 题目大意:给出两个棋盘布局,问第一个棋盘布局,移动不超过8步,是否能到达第2个棋盘布局,移动棋子时,要是相邻的格子有棋子,而再过去没有棋子,则可以跳过这个棋子到达下一格 解题思路:双向宽度遍历,因为到达最终状态的布局,所以可以从最终状态反向走到达,因为最多不超过4步,那么从开始状

涛涛不解 1079

nyoj1505-咋暴力啊

题目描述: 给出一行n个整数,第i个整数为A[i],求(A[i] - A[j])/ (i-j) 最大 2 &lt;= n &lt;= 10000,-10^9 &lt;= A[i] &lt;= 10^9     输入描述: 数据有多组(不超过100组) 每组第一行给出一个整数n 接下来一行n个整数之间用空格隔开 输出描述: 每组数据输出一个浮点数保留两位小数,表示需要求得的最大值 ...

creator平 247
上一篇: HDU5031 (DFS剪枝)
下一篇: hdu5452 Minimum Cut(最近公共祖先LCA+差分前缀和)
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值