/*
纯BFS,注意两个点之间可以有多条边,所以每个点相连的点的总数可能很大,一开始把
circle 里的conn开小了,WA,开大点就OK了
*/
#include <iostream>
#include <queue>
#define MAX_N 100
using namespace std;
struct circle
{
int color;
int countv;
int conn[MAX_N * MAX_N+ 1][2]; //id and color
}circles[MAX_N + 1];
int N, L, K, Q;
bool v[MAX_N + 1][MAX_N + 1];
struct pos
{
int posl, posk, steps;
};
queue<pos> bfsq;
int steps;
bool bfs()
{
pos temp = {L, K, 0};
v[L][K] = true;
while(!bfsq.empty()) bfsq.pop();
bfsq.push(temp);
bool found = false;
while(!bfsq.empty())
{
temp = bfsq.front();
bfsq.pop();
int sPos1 = temp.posl, color1 = circles[sPos1].color, num1 = circles[sPos1].countv;
int sPos2 = temp.posk, color2 = circles[sPos2].color, num2 = circles[sPos2].countv;
if(sPos1 == Q || sPos2 == Q)
{
found = true;
if(temp.steps < steps) steps = temp.steps;
}
int p, newPos, curSteps = temp.steps, conColor;
for(p = 1; p <= num1; p++)
{
newPos = circles[sPos1].conn[p][0];
conColor = circles[sPos1].conn[p][1];
if(!v[newPos][sPos2] && newPos != sPos2 && conColor == color2)
{
v[newPos][sPos2] = true;
pos newpos = {newPos, sPos2, curSteps + 1};
bfsq.push(newpos);
}
}
for(p = 1; p <= num2; p++)
{
newPos = circles[sPos2].conn[p][0];
conColor = circles[sPos2].conn[p][1];
if(!v[sPos1][newPos] && newPos != sPos1 && conColor == color1)
{
v[sPos1][newPos] = true;
pos newpos = {sPos1, newPos, curSteps + 1};
bfsq.push(newpos);
}
}
}
return found;
}
int main()
{
int i, en, from, to, color;
scanf("%d%d%d%d", &N, &L, &K, &Q);
steps = INT_MAX;
memset(circles, 0, sizeof(circles));
for(i = 1; i <= N; i++)
scanf("%d", &circles[i].color);
scanf("%d", &en);
for(i = 1; i <= en; i++)
{
scanf("%d%d%d", &from, &to, &color);
circles[from].countv++;
circles[from].conn[circles[from].countv][0] = to;
circles[from].conn[circles[from].countv][1] = color;
}
if(bfs()) printf("YES/n%d/n", steps);
else printf("NO/n");
return 0;
}
相关推荐
EM算法求解混合伯努利模型
本文记录了EM算法求解混合伯努利分布的推导,并提供了matlab实验代码。
Poj 1708 Game (BFS)
这道题的描述真心纠结…… 题意:给出N个点(不超过100个),每个点有一个颜色(颜色标号不超过100),有一些点的颜色可以相同。给出M条有向边,这些边也有一个颜色。给出两个棋子的初始点L,K,终点Q,问两个棋子中的任意一个是否可以移动到Q,如果可以,输出移动的最小步数。移动时遵循以下规则: 1.一个棋子可以移动到下一个点需要满足:经过的边的颜色与另一个棋子所在点的颜色相同; 2.只能沿着有向
逆向小记 bd-ticket-guard-client-cert | bd-ticket-guard-client-data 通过现象看本质
依然没什么花哨的直接解析出来,既然这是个X509证书,那么要么是服务器下发,要么是自己生成喽,但是如果是本地直接生成,那服务器还校验个鬼哦!既然是服务器下发的,那服务器又是怎么校验这个证书是自己下发的呢,这就要讲到CA验证了,首先根据上图我们发现证书的Issuer"(颁发者)是。怎么来的呢,因为涉及到逆向咱就不讲了,其实也是涉及到非对称加密的,就是客户端用私钥去签名数据,服务器用上传过去的证书公钥验签的过程!当服务器收到这个证书的时候,会做几件事,首先用自己的公钥解开签名获得解密后的证书hash。
POJ 1708 Game G++ 巧妙 bfs 没掌握
#include <iostream> #include <cstdio> #include <queue> #include <cstring> #include <vector> #include <algorithm> using namespace std; //英语 看博友分析 抄博友程序 巧妙 bfs 没掌握 int col[110]; int vis[1...
安卓 实现灯光闪过效果
有个小需求,给按钮加一个灯光划过的效果,这样的需求一般有UI,肯定就找UI了要个gif图不就完事了,可是这次没有,好久自己做一个嘛。Web端的大佬实现很快,到安卓这边呢,百度一搜发现诶?怎么没有,好吧自己来一个 一切动效相关的不给图看都是耍流氓 所以俺不能这么干啊,OK!直接上效果图,再来解释下怎么实现的 效果就是这样子,怎么实现呢? 从图分析下,就是一个光写着重左边移动要右边循环嘛,这有啥难的?? 来看一看我的第一版,第二版 这是个什么?????一点都不像啊? 赶紧再问了问Web端大佬,噢,加了一个
高精度SAR ADC设计实战:从建模到版图的16位1MSPS实现
本文详细介绍了16位1MSPS高精度SAR ADC的设计过程,从建模到版图实现的完整流程。重点探讨了分段电容阵列设计、校准算法实现及版图匹配等关键技术,展示了如何在180nm工艺下实现92.5dB SNDR和109.6dB SFDR的高性能指标。文章特别强调了整数桥接电容设计对提升匹配精度的关键作用,为高精度模数转换器设计提供了实用参考。
POJ题目分类
ACM题目分类
小龙虾 OpenClaw 安装全攻略:本地部署 AI 智能体一步到位
OpenClaw(昵称小龙虾)是一款 MIT 开源协议的本地优先 AI 智能体执行网关,支持多平台接入、本地部署,能实现自然语言驱动的设备自动化操作,区别于纯对话 AI,可直接操控系统执行实际任务,数据全程本地存储更安全。本文带来 2026 最新版 OpenClaw 安装教程,适配 Windows/macOS/Linux 全系统,新手也能一键搞定。
POJ1573 ZOJ1708 UVA10116 UVALive5334 HDU1035 Robot Motion【模拟】
Robot Motion Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16166 Accepted: 7643 Description A robot has been programmed to follow the instructions in its path. Instructions for the nex...
OpenCompass实战:从零部署大模型评测平台,量化模型能力选型
在大模型技术选型与评估中,客观、可量化的评测体系是工程实践的关键。其核心原理在于通过标准化的数据集、统一的评测方法与自动化流程,将主观的模型体验转化为可比较的指标数据。这种评测框架的技术价值在于解决了模型能力评估的模糊性问题,为开发者提供了模型选型、效果对比与迭代优化的科学依据。典型的应用场景包括对比不同开源模型在代码生成、逻辑推理等特定任务上的性能,或是评估微调后模型在业务数据集上的提升效果。OpenCompass作为开源的大模型全能力评测平台,正是这一理念的工程化实现。它通过模块化的四层流水线架构和配置
Halcon学习之一维测量(3)
带定位器的测量。首先看一下“定位”是什么意思?回答:比如我们测量一个芯片,这时候我们设置一个测量矩形,来沿着测量目标进行测量。但是下一张当芯片的位置发生变化时,测量矩形的位置就不对了,就不是沿着测量目标了。这样就不对了!芯片在转,测量矩形也要跟着一起转才行。这个时候就需要“定位”来起作用了!定位之后得到这个芯片的旋转角度之后,测量矩形可以跟着这个角度转。这就是“定位”+“测量”,这是我们工业视觉常用的一个手法,在Halcon里面也是有例子展现的。
ACM: 广搜 图论题 poj 1708
Game Description A child has drawn N (N<=100) numbered circles of different colors. He has connected some of the circles by colored oriented line segments. Every pair of circles may have any number
MetaGPT核心模块:Data Interpreter 上手实战 - 数据分析和可视化(附运行过程详解)
上篇文章我们详细解读了 DataInterpreter 的实现原理(论文),本文将开始上手实操,开始写代码用上 DataInterpreter。从最简单的例子开始,先给大家看下其运行过程,看下DataInterpreter是如何自动拆解任务,完成任务的,帮助大家构建直观认识。
Poj 1708 Game【题解报告|启发式DFS】
题目链接 题目大意 给出N个点(不超过100个),每个点有一个颜色(颜色标号不超过100),有一些点的颜色可以相同。给出M条有向边,这些边也有一个颜色。给出两个棋子的初始点L,K,终点Q,问两个棋子中的任意一个是否可以移动到Q,如果可以,输出移动的最小步数。移动时遵循以下规则: 1.一个棋子可以移动到下一个点需要满足:经过的边的颜色与另一个棋子所在点的颜色相同; 2.只能沿着有向边的方向; 3.两个棋子不能同时移动到同一个点; 4.移动次序任意,没有必要交替进行; 5.其中一个棋子到达Q点时游戏结束。 思路
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
poj 搜索题目
简单搜索(1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083)(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 搜索、回溯、遍历 1022 1111 1118 1129 11...
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
POJ搜索题目总结
POJ 搜索
POJ搜索题目汇总
poj 搜索题目 简单搜索 (1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 搜索、回溯、遍历 1022 1111
POJ 搜索题目分类
简单搜索 (1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 搜索、回溯、遍历 1022 1111 1118 1129 1190
poj搜索题目分类
简单搜索 (1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 搜索、回溯、遍历 1022 1111 1118 1129 1190
poj 搜索题目列表
简单搜索 (1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 搜索、回溯、遍历 1022 1111 1118 1129 1190
poj 的搜索【【最近主要目标】】
简单搜索(1)深度优先搜索 (poj2488,poj3009,poj1321)(2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083)(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)搜索、回溯、遍历1022 1111 1118 1129 1190 1562 1564 1573 1655
POJ题目分类(搜索)
简单搜索 (1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 搜索、回溯、遍历 1022 1111 1118 1129 1190 1562 1564...
poj搜索题目
1010 stamps 1011 sticks Accepted 2006-08-03 04:09 1020 Anniversary Cake 1022 Packing Unit 4D Cubes 1024 Tester Program 1054 The Troublesome Frog 1062 昂贵的聘礼暂告一段落,先把DP题做一下,因为两者有很多交叉的地方,有很多题DP和
poj搜索汇总
1010 stamps 1011 sticks Accepted 1020 Anniversary Cake 1022 Packing Unit 4D Cubes 1024 Tester Program 1054 The Troublesome Frog 1062 昂贵的聘礼 1069 The Bermuda Triangle 1072 Puzzle Out 1077 Eigh
poj 搜索题目(转)
<br />得做啊,哈哈~~<br />1010 stamps1011 sticks Accepted 2006-08-03 04:091020 Anniversary Cake1022 Packing Unit 4D Cubes1024 Tester Program1054 The Troublesome Frog1062 昂贵的聘礼暂告一段落,先把DP题做一下,因为两者有很多交叉的地方,有很多题DP和搜索都可以,有些DFS的题需要状态压缩DP的慢慢做吧~~<br />搜索相关资料:点击进入<br />1
Poj 搜索练习, 必做(转)
搜索教程 1010 stamps 1011 sticks Accepted 2006-08-03 04:09 1020 Anniversary Cake 1022 Packing Unit 4D Cubes 1024 Tester Program 1054 The Troublesome Frog 1062 昂贵的聘礼暂告一段落,先把DP题做一下,因为两者有很多交叉的地方,有很多题D
POJ搜索专题(转转)
1010 stamps 1011 sticks Accepted 2006-08-03 04:09 1020 Anniversary Cake 1022 Packing Unit 4D Cubes 1024 Tester Program 1054 The Troublesome Frog 1062 昂贵的聘礼暂告一段落,先把DP题做一下,因为两者有很多交叉的地方,有很多题DP和搜索都可
6969



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



