当前位置: 首页 > news >正文

电商扶贫网站建设自己创做网站

电商扶贫网站建设,自己创做网站,怎么开微信公众号,wordpress菜单二级菜单题目链接#xff1a;Planning mobile robot on Tree (EASY Version) 题目描述#xff1a; 给定一棵树#xff0c;树上有一个位置存在一个机器人#xff0c;其他mmm个位置存在石头#xff0c;保证初始状态一个结点最多一个物体#xff08;一个石头或者一个机器人或者为空…题目链接Planning mobile robot on Tree (EASY Version) 题目描述 给定一棵树树上有一个位置存在一个机器人其他mmm个位置存在石头保证初始状态一个结点最多一个物体一个石头或者一个机器人或者为空你的任务是用尽量少的操作将机器人移动到目标结点如果不能到达输出−1-1−1如果可以输出路径如果存在多条最小路径输出任意一条即可。你可以执行的操作如下 将一个机器人移动到与其相邻的某个空结点上。将一个石头移动到与其相邻的某个空结点上。 题解 本题可以使用BFSBFSBFS来做由于最多有151515个结点我们可以用一个151515位的二进制来表示某个结点是否存在石头或者机器人同时我们可以用一个变量来记录某个状态的机器人的位置。那么我们只需要进行简单的BFSBFSBFS即可找到最短路径 dis[s][i]dis[s][i]dis[s][i]表示当前状态为sss机器人的位置在jjj时需要的移动次数。那么移动的操作(u,v)(u,v)(u,v)可行的条件是 sss中uuu位置有东西u,vu,vu,v之间存在边sss中vvv位置没有东西一个不能存在两个物体 如何进行路径点的输出路径的输出有很多种方法我采用的是记录每个状态的上一次的状态然后通过递归来输出状态这里也可以使用一个栈来输出只要满足先进后出即可当前的状态与转移到当前状态的标记不同的结点就是发生了移动操作的结点。 代码 #include bits/stdc.hconst int MAXN 15; const int MAXM MAXN - 2;using namespace std;int dis[1 16][MAXN]; int haveStone[MAXN], head[MAXN]; int T, n, m, s, t, stonePos, caseID, ecnt, u, v;typedef pairint, int State;State ans; State pre[1 16][MAXN];struct EdgeList {int to;int nex; }es[MAXN 1];void addEdge(int u, int v) {es[ecnt].to v;es[ecnt].nex head[u];head[u] ecnt; }State getInitialState() {int status 0;for (int i 0; i n; i) { status | (int)haveStone[i] i; }status | 1 s;return make_pair(status, s); }void bfs() {queueState q;State initialState getInitialState();dis[initialState.first][initialState.second] 0;q.push(initialState);State now, newState;while (!q.empty()) {now q.front();q.pop();if (now.second t) {ans now;return;}for (int u 0; u n; u) {if (((1 u) now.first) 0) { continue; }for (int i head[u]; i ! -1; i es[i].nex) {int v es[i].to; // 进行u-v的移动if (((1 v) now.first) ! 0) { continue; }newState.first now.first ^ (1 u) ^ (1 v);if (u now.second) { newState.second v; }else { newState.second now.second; }if (dis[newState.first][newState.second] ! -1) { continue; }dis[newState.first][newState.second] dis[now.first][now.second] 1;pre[newState.first][newState.second] now;q.push(newState);}}} }void print(State now) {if (now.second -1 || pre[now.first][now.second].second -1) { return; }print(pre[now.first][now.second]);for (int i 0; i n; i) {if ((now.first (1 i)) 0 (pre[now.first][now.second].first (1 i)) ! 0) {u i 1;}if ((now.first (1 i)) ! 0 (pre[now.first][now.second].first (1 i)) 0) {v i 1;}}cout u v endl; }void printPath() {caseID;cout Case caseID : ;if (ans.second -1) {cout -1 endl;return;}cout dis[ans.first][ans.second] endl;print(ans);cout endl; }void init() {ecnt 0;ans.second -1;memset(pre, -1, sizeof(pre));memset(dis, -1, sizeof(dis));memset(head, -1, sizeof(head));memset(haveStone, 0, sizeof(haveStone)); }int main() {cin T;while (T--) {init();cin n m s t; s--; t--;for (int i 0; i m; i) {cin stonePos; stonePos--;haveStone[stonePos] true;}for (int i 0; i n - 1; i) {cin u v; u--; v--;addEdge(u, v); addEdge(v, u);}bfs();printPath();}return 0; }
http://www.hkea.cn/news/14394895/

相关文章:

  • 自己做的图片哪个网站可以出售注册网站需要房产证
  • 网站开发为什么不用cgi了开网络公司需要多少资金
  • 网站建设花多少钱建立官方网站
  • 珠海市网络营销协会的官方网站青岛网站设计如何做
  • 小网站备案销售课程培训视频教程
  • 用php做的博客网站wordpress设置会员时效
  • 云虚拟主机做视频网站中核工建设集团有限公司网站
  • 网站建设模范代码建设牌安全带官方网站
  • 网站维护内容和方法互联网建站
  • wordpress建站事项电商seo引流
  • qq空间主页制作网站企业营销策划专业品牌
  • 淘宝网站是谁做的好处吉林省网站建设
  • 在哪里做网站比较好制作网页需要用到哪些工具
  • 怎么成立网站网站设计与建设的
  • 南昌网站建设南昌吊车出租个人网站 后台管理
  • 有没有学做家具的网站怎么做足球直播网站
  • 苏州网站建设设计制作公司怎么样网线制作实训总结
  • 宁波网站开发制作魔方网站建设网站制作
  • asp网站手机模版广州口碑好的网站建设定制
  • 怎么创建网站校园表白墙健康东莞app
  • 南京外贸网站建设案例商务网站建设软件
  • 萍乡做网站的公司wordpress文字环绕广告
  • 凡科网站免费注册wordpress贴吧
  • 镇江网站关键词优化预订现代简约装修三室两厅两卫样
  • 网站找图片做海报侵权营销策划公司行业榜单
  • 惠州网吧标题优化
  • 自己的电脑做服务器搭建网站陕麻圈辅助软件
  • 有后台的网站如何建设柳州企业网站建设
  • 电子商务网站建设与维护 书做优惠券网站要多少钱
  • 网站建设的目的模板驻马店 市网站建设