题目描述

题目链接

题目分析

这是一道很明显的bfs+模拟的题(和八数码是一类题)这是一道很明显的bfs+模拟的题(和八数码是一类题)这是一道很明显的bfs+模拟的题(和八数码是一类题)

因为起点和终点都不一样,还有1e5个测试样例。因此不能直接对每一组样例都做一遍bfs,肯定会超时。因为起点和终点都不一样,还有1e5个测试样例。因此不能直接对每一组样例都做一遍bfs,肯定会超时。因为起点和终点都不一样,还有1e5个测试样例。因此不能直接对每一组样例都做一遍bfs,肯定会超时。

因此我们可以将所有测试样例的起点都转化为0000,终点对应变为t[i]−s[i](s为起点,t为终点)因此我们可以将所有测试样例的起点都转化为0000,终点对应变为t[i]-s[i](s为起点,t为终点)因此我们可以将所有测试样例的起点都转化为0000,终点对应变为t[i]−s[i](s为起点,t为终点)

这样转换之后,我们可以以0000作为起点进行一遍bfs,同时记录下到达每个状态所需的步数。这样对于这样转换之后,我们可以以0000作为起点进行一遍bfs,同时记录下到达每个状态所需的步数。这样对于这样转换之后,我们可以以0000作为起点进行一遍bfs,同时记录下到达每个状态所需的步数。这样对于每个测试样例即可O(1)输出答案。每个测试样例即可O(1)输出答案。每个测试样例即可O(1)输出答案。

代码如下

#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <map>
#include <queue>
#include <vector>
#include <algorithm>
#include <iomanip>
#define LL long long
#define ULL unsigned long long
#define PII pair<int,int>
#define PLL pair<LL,LL>
#define PDD pair<double,double>
#define x first
#define y second
using namespace std;
const int N=1e5+5,mod=1e9+7;
map<string,int> f;                //用map记录到达每个状态的步数
void bfs()
{queue<string> q;q.push("0000");                //“0000”为起点f["0000"]=0;while(q.size()){auto u=q.front();q.pop();string a,b;for(int i=0;i<4;i++)           //枚举每一个区间[i,j]for(int j=i;j<4;j++){a=b=u;for(int k=i;k<=j;k++){a[k]=(u[k]-'0'+1)%10+'0';      //a记录u在[i,j]区间内+1得到的状态b[k]=(u[k]-'0'+9)%10+'0';     //b记录u在[i,j]区间内-1得到的状态}if(f.find(a)==f.end())     //如果f中没有a状态,则将其放入队列{q.push(a);f[a]=f[u]+1;}if(f.find(b)==f.end())        //同上{q.push(b);f[b]=f[u]+1;}}}
}
int main()
{cin.tie(0);ios::sync_with_stdio(false);bfs();                  //bfs预处理出所有答案int T;cin>>T;while(T--){string s,t;cin>>s>>t;                //将起点转化为0000,终点变为t[i]-s[i]for(int i=0;i<4;i++) t[i]=(t[i]-s[i]+10)%10+'0';cout<<f[t]<<endl;       //输出答案}return 0;
}

2021 ICPC沈阳 J.Luggage Lock(bfs,模拟)相关推荐

  1. 2021 ICPC 沈阳赛区J题 Luggage Lock

    2021 ICPC 沈阳赛区J题 Luggage Lock 题意 有TTT组样例,其中每组样例为: 给定一个密码为b0b1b2b3b_0b_1b_2b_3b0​b1​b2​b3​的密码锁,已知当前密码 ...

  2. 2021 ICPC 沈阳站 D题 Journey to Un‘Goro (打表+找规律)

    2021 ICPC 沈阳站 D.Journey to Un'Goro [链接][http://codeforces.com/gym/103202/problem/D](http://codeforce ...

  3. 2021 icpc 沈阳 J-Luggage Lock

    比赛结束后,立马和队友开了一场重现,然后被暴打.  J题是说,给你一把锁,有4位数,每位是0-9,然后给你目前锁的状态,和密码状态,你可以将连续的几个位置同时向上或下拨动,或者你单个位置拨动,问你最后 ...

  4. 2021年区域赛ICPC沈阳站J-Luggage Lock(代码简洁)

    题意:将给一个4位的锁转到另一个四位的锁,可以一次转动多个连续的锁+1或者-1,问多少次可以转成目标锁 输入 6 1234 2345 1234 0123 1234 2267 1234 3401 123 ...

  5. 分类讨论 ---- 2021 icpc 沈阳 L Linear Fractional Transformation (思维题)

    题目链接 题目大意 给你一个线性变换函数f(z)=az+bcz+df(z)=\frac{az+b}{cz+d}f(z)=cz+daz+b​,现在把取值范围扩展到复数域.给你3个等式 f(z1)=w1f ...

  6. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

  7. 2021 ICPC 沈阳站总结

    热身赛 4道原题,3道水题+1道防AK(乱搞?)题,10min水出前3题提前下班 正式赛 题目有梯度,给出题人点赞! 开场前1h签了5个到,当时排名很靠前.之后就3人卡3题(ILM),I 我之前一直手 ...

  8. 第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂)

    第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂) 题目来源:第46届icpc 沈阳 J-Luggage Lock 题意: 给出两个四位数的密码锁a和 ...

  9. 21年icpc沈阳站记录

    icpc沈阳站记录 2021.11.22凌晨 从昨晚紧张到辗转反侧,虽然早就做好了打铁的心理准备,但待到比赛最后一刻两道铜牌题还没出时,满脑子的不甘心.当然最后肯定铁了395/576. 11.21也就 ...

最新文章

  1. 孔兵 库卡机器人_库卡机器人中华区CEO孔兵:机器人是制造业升级的关键
  2. 031 广播变量与累加器
  3. 计算机管理学科,计算机学院学科经费使用与管理细则(试行)
  4. 面向对象的三大特征之一:继承
  5. 嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏
  6. 物联网 云计算 大数据 分布式
  7. java 如何添加背景音乐_Java程序怎样添加背景音乐?
  8. 【POJ2299】Ultra-QuickSort(逆序对,归并排序)
  9. mysql存储php数组_mysql数据库存储PHP数组、对象的方法
  10. 【转】小结登录的几种交互方式
  11. 大学生计算机知识竞赛,大学生计算机基础知识竞赛题库(试题附答案).docx
  12. python能够设置标签背景色的属性是_Python Pmw EntryField背景色属性
  13. 微信小程序 报错一大串 define is not defined
  14. 基于SSH的校园二手物品交易系统
  15. 移动宽带虚拟网服务器设置,移动宽带路由器怎么设置?
  16. 其实我不怕过光棍节,我只是怕你不过光棍节~
  17. android+tv+社区,Android TV Overscan
  18. 磁盘无法打开,格式是RAW
  19. 灵魂拷问:嵌入式行业真的没前途吗?
  20. JavaScript高级程序设计(第4版)(红宝书)的学习笔记

热门文章

  1. java导出excel问题记录
  2. A Semi-supervised Graph Attentive Network for Financial Fraud Detection 个人总结
  3. 运城达内java毕业生分享如何提高网站优化效率
  4. redis 用scan 代替keys,hgetAll
  5. Redis(9)——史上最强【集群】入门实践教程
  6. 未来已经降临,只是先后有别
  7. Adobe Lightroom Classic 入门教程(七)修改照片 --- 暗角颗粒与相机配置校正
  8. EMC Unisphere客户端连接EMC
  9. python一个对象只能被一个变量引用吗_python中的对象、变量、引用的问题
  10. 极简 ssh之 scp