码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Pots(DFS &BFS)


    //新生训练

    1. #include
    2. #include
    3. #include
    4. #include
    5. using namespace std;
    6. typedef pair<int, int> PII;
    7. const int N = 205;
    8. int n, m;
    9. int l;
    10. int A, B, C;
    11. int dis[N][N];
    12. struct node
    13. {
    14. int px, py, op;
    15. };
    16. node pre[N][N];
    17. void dfs(int x, int y)
    18. {
    19. if (x == 0 && y == 0)
    20. {
    21. return;
    22. }
    23. dfs(pre[x][y].px, pre[x][y].py);
    24. switch (pre[x][y].op)
    25. {
    26. case 1:
    27. cout << "FILL(1)\n";
    28. break;
    29. case 2:
    30. cout << "FILL(2)\n";
    31. break;
    32. case 3:
    33. cout << "DROP(1)\n";
    34. break;
    35. case 4:
    36. cout << "DROP(2)\n";
    37. break;
    38. case 5:
    39. cout << "POUR(1,2)\n";
    40. break;
    41. case 6:
    42. cout << "POUR(2,1)\n";
    43. }
    44. }
    45. bool flag = 1;
    46. void bfs()
    47. {
    48. queue q;
    49. q.push(make_pair(0, 0));
    50. dis[0][0] = 0;
    51. while (!q.empty())
    52. {
    53. PII t = q.front();
    54. q.pop();
    55. int x = t.first, y = t.second;
    56. if (x == C || y == C)
    57. {
    58. cout << dis[x][y] << '\n';
    59. dfs(x, y);
    60. flag = 0;
    61. return;
    62. }
    63. int ix, iy;
    64. // FILL(1)
    65. ix = A, iy = y;
    66. if (dis[ix][iy] == -1)
    67. {
    68. dis[ix][iy] = dis[x][y] + 1;
    69. pre[ix][iy] = {x, y, 1};
    70. q.push(make_pair(ix, iy));
    71. }
    72. // FILL(2)
    73. ix = x, iy = B;
    74. if (dis[ix][iy] == -1)
    75. {
    76. dis[ix][iy] = dis[x][y] + 1;
    77. pre[ix][iy] = {x, y, 2};
    78. q.push(make_pair(ix, iy));
    79. }
    80. // DROP(1)
    81. ix = 0, iy = y;
    82. if (dis[ix][iy] == -1)
    83. {
    84. dis[ix][iy] = dis[x][y] + 1;
    85. pre[ix][iy] = {x, y, 3};
    86. q.push(make_pair(ix, iy));
    87. }
    88. // DROP(2)
    89. ix = x, iy = 0;
    90. if (dis[ix][iy] == -1)
    91. {
    92. dis[ix][iy] = dis[x][y] + 1;
    93. pre[ix][iy] = {x, y, 4};
    94. q.push(make_pair(ix, iy));
    95. }
    96. // POUR(1,2)
    97. ix = x, iy = y;
    98. while (ix && iy < B)
    99. {
    100. --ix;
    101. ++iy;
    102. }
    103. if (dis[ix][iy] == -1)
    104. {
    105. dis[ix][iy] = dis[x][y] + 1;
    106. pre[ix][iy] = {x, y, 5};
    107. q.push(make_pair(ix, iy));
    108. }
    109. // POUR(2,1)
    110. ix = x, iy = y;
    111. while (iy && ix < A)
    112. {
    113. ++ix;
    114. --iy;
    115. }
    116. if (dis[ix][iy] == -1)
    117. {
    118. dis[ix][iy] = dis[x][y] + 1;
    119. pre[ix][iy] = {x, y, 6};
    120. q.push(make_pair(ix, iy));
    121. }
    122. }
    123. }
    124. void solve()
    125. {
    126. memset(dis, -1, sizeof dis);
    127. cin >> A >> B >> C;
    128. bfs();
    129. if (flag)
    130. cout << "impossible";
    131. }
    132. signed main()
    133. {
    134. int t = 1;
    135. // cin>>t;
    136. while (t--)
    137. {
    138. solve();
    139. }
    140. return 0;
    141. }

    //感谢学长的讲解 hwh ;

    ~~~//仅当笔者个人备忘录使用。

  • 相关阅读:
    三大数据库 sequence 之华山论剑 (下篇)
    主流开发语言和开发环境介绍
    Windows 驱动开发 新手入门(四)
    React + hooks + Ts 实现将后端响应的文件流(如Pdf)输出到浏览器下载
    企业加密软件哪个最好用?
    详解深度学习中,如何进行反向传播
    在医疗影像领域,生成式模型可以做些什么?用什么平台快速实现?使用MONAI框架进行生成式模型开发
    分布式 PostgreSQL 集群(Citus),官方快速入门教程
    【Rust指南】结合String深入理解Rust语言的Slice(切片)类型
    内核进程的调度与进程切换
  • 原文地址:https://blog.csdn.net/Sky_miracle/article/details/137352439
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号