#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;
}相关推荐
融合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
基于变频控制的多相交错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 ...
基因的富集分析
通过RNA_seq差异表达分析等获得一组基因,想要进一步了解这些基因可能参与哪些生物学过程,具有哪些功能,一般就会用到基因的富集分析了。现在小麦基因注释信息已经可以获得,目前来看包括两套。一个是TGACv1,另一个就是IWGSC1.0。需要用到一个叫“clusterProfiler”的R包。下面用到的数据集来自TGACv1。1、安装source("https://bioconductor.org/b
《通信工程施工与管理》
制作馈线接头必须使用专用的工具,专用工具包括:馈线切割刀、馈线安全刀、小金属丝毛刷、固定尺寸或大号活动扳手、小号扁锉刀、细齿小手锯、接头扩孔器、3M防水胶或防水接头盒;如图所示,详情如表所示。
zoj1505 Solitaire - 双向广搜
<br />这是自己自己第一次些双向广搜,参考了杨教主的思路以后,然后在杨教主的光环庇护下,终于写出了双向广搜,思路跟教主的所以一样,但是用到了c++的stl,这里装载一下教主的解说<br /> 2007-07-26 03:40:42 Accepted 1505 C++ 00:00.63 1648K Tiaotiao <br />现在是凌晨3点45分.这次的胜利实在是来之不易,在我即将崩溃之时,眼前突然一片光明~AC! 真是所谓柳暗花明峰回路转喜从天降心旷神怡雪中送炭啊...:) 下面转入正题,这次解决的
redhawk-sc使用简介
数据完整性对结果的准确性有很大影响,所以一定要保证数据完整性,Redhawk-sc在跑完后,Report里有Data Integrity界面,在这个界面会看到设计数据和库文件的数据完整性,在相应的报告中会有没有覆盖到的数据情况,要对每一项仔细检查,保证输入数据没有问题。文件一般加密,用户唯一需要选择的是文件的corner。其中,cell lef除了常规的standard cell,还有如DTCD,BTSV和clamp等cell的lef,不可缺失,否则data integrity将不是100%。
zoj 1505 || poj 1198 Solitaire(状态压缩+双向BFS)
状态压缩+双向BFS。。。 我压了一个下午!!!!!! 呜呜。。> 双向BFS理解的不好,我弄俩队列同时搜。。我错了。。。其实刚开始就想到了,这么搜万一有一个走6步,一个走2步,挺纠结的是把。 后来一直过不去,才知道。。。双BFS可以保存一个BFS的结果,然后第二个搜第一
Windows 11安装realtek audio control
Windows 11安装realtek audio control,解决无法链接RPC问题
别再手动算LLC了!用Mathcad 15分钟搞定谐振参数与增益曲线(附已验证产品案例)
本文详细介绍了如何利用Mathcad在15分钟内高效完成LLC谐振变换器的参数计算与增益曲线绘制。通过对比传统工具,突出Mathcad在自然数学表达、实时单位换算和动态参数关联方面的独特优势,帮助电源工程师大幅提升设计效率。文章还提供了已验证的产品案例和实用模板,助力工程师快速掌握谐振参数优化技巧。
zoj 1505||poj 1198 Solitaire(双向bfs)
这道题很带感啊,看了一个星期了,map,vector,状态压缩之类的之前都没接触过借助这个题目学到了很多东西。 说题之前做个笔记先: Map(底层由红黑树实现) 提供了1对1的数据处理能力。 MapM; Value=M[key]; Map的几种用法: 插入的3种方式: M.insert(pair(…,…)); M.inser
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
BFS与双向BFS---zoj_1505
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=505 题目大意,跳棋,8*8的棋盘,上有4个棋子,给你一个初始状态给你一个结束状态,问能不能在8步之内从初始状态走到结束状态。 一般的想法,直接暴力DFS,使用状态压缩,状态表偷懒使用set,用时2S 如果使用...
AGM Supra软件从零到一:国产CPLD工程创建全流程拆解
本文详细拆解了AGM Supra软件从零开始创建国产CPLD工程的全流程,包括开发环境配置、工程创建、Quartus项目转换、TCL脚本执行与编译等关键步骤。特别强调了中文路径避坑、器件型号选择等实用技巧,帮助开发者高效完成CPLD开发任务。
华为海思:大小海思的双轮驱动战略分析
大海思的定位清晰明确,即专注于为华为内部提供高性能、高集成度的芯片解决方案,以支持华为终端、服务器等业务的快速发展。小海思的产品线广泛,涵盖了广域物联、短距物联、手机穿戴、显示交互、智慧视觉、智慧媒体、MCU、模拟以及光模块等多个领域。通过提供多样化的芯片解决方案,小海思旨在满足外部客户的不同需求,拓展华为海思在芯片市场的份额和影响力。大海思的产品布局主要围绕华为的内部需求展开。在智能手机应用处理器方面,大海思的麒麟系列芯片已经成为华为手机的标志性产品,以其出色的性能和能效比赢得了市场的广泛认可。
POJ1198(ZOJ1505) Solitaire(双向bfs)
题意: 一个8 * 8 的棋盘上面有四个棋子 棋子可以上下左右移动,如果隔壁有个棋子 那就可以跳一步,只能跳一步。 给出 初始状态,和末尾状态 求能不能在8步之内达到 思路:双向bfs 状态压缩,整个棋盘压缩为64位的long long 正向走4层,反向走4层,看是否有交点。 参考:https://blog.youkuaiyun.com/cacyth/article/details/48572945 #inc...
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
ZOJ - 1505 Solitaire 【双向BFS】(好题)
题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1505题意 一个8 * 8 的棋盘上面有四个棋子棋子可以上下左右移动,如果隔壁有个棋子 那就可以跳一步,只能跳一步。 给出 初始状态,和末尾状态 求能不能在8步之内达到思路 乍一眼看,这题就是一个搜索,但是虽然只有8步,但是每步都有4个点可以选择,每个点又有4个方...
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 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算法(不考虑去掉重复状态),总的搜
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,
zoj1505
zoj1505
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
poj 1915 knight moves (双向bfs)
此题之前用bfs水过,http://blog.youkuaiyun.com/cqlf__/article/details/7008688 学习下双广的做法: 双向bfs:在目标已知的情况下,能提高很大速度。 单向: b^n 双向的:2*b^(n/2) 做法: 两个队列,交替结点搜索。 while(!empty()) { 扩展正向一个结点; 遇到反向已扩展的:return ; 扩展反
poj 1198 || zoj 1505 || hdoj 1401 双向宽度遍历
参考了:http://blog.youkuaiyun.com/zxy_snow/article/details/6844220 题目大意:给出两个棋盘布局,问第一个棋盘布局,移动不超过8步,是否能到达第2个棋盘布局,移动棋子时,要是相邻的格子有棋子,而再过去没有棋子,则可以跳过这个棋子到达下一格 解题思路:双向宽度遍历,因为到达最终状态的布局,所以可以从最终状态反向走到达,因为最多不超过4步,那么从开始状
nyoj1505-咋暴力啊
题目描述: 给出一行n个整数,第i个整数为A[i],求(A[i] - A[j])/ (i-j) 最大 2 <= n <= 10000,-10^9 <= A[i] <= 10^9 输入描述: 数据有多组(不超过100组) 每组第一行给出一个整数n 接下来一行n个整数之间用空格隔开 输出描述: 每组数据输出一个浮点数保留两位小数,表示需要求得的最大值 ...
1121



被折叠的 条评论
为什么被折叠?



