搜索小练#10
thought:
1.make two queue, one is for J, another is for F
2.first update the J,and then uodate the F
the code is follow:
1 |
|
thought:
1.make two queue, one is for J, another is for F
2.first update the J,and then uodate the F
the code is follow:
1 | #include <bits/stdc++.h> |
给出完整的AC代码
今天没写完
晚上倒是有一段时间
不过我去弄Atom了......
明天计划:
切掉这个题 把以前做过的搜索题复习一下
1 | #include <iostream> |
这里很容易想到广搜,设初始状态为\((i,j)\),一共就只有六种变化
A杯倒满,B杯倒满,A杯倒出完,B杯倒出完,A到给B,B到给A
任意一种状态\(i\) 或者 \(j\)达到 \(C\) 就停止,注意要打印路径,我这里用一个string存的操作顺序。
1 | #include <iostream> |
分为六种情况讨论
反正现在的我一眼看上去,不知道正解
1 | /* |
1 | #include <iostream> |
感觉做这个题真tm拉低我智商
这么水的数据
INF等于250 随便跑一跑就能水过“-1”
搜索个屁啊
就是个破模拟
不需要动一点脑子
花了我一个小时.....
草
垃圾题
1 | // Prime Path |
1.easy \(bfs\)
2.but is not very easy to find a thought
3.I felt that I have thought vaguely but I can'nt make it.
I will still work hard!
两年后,再一次做这道题,思路清晰但是代码能力下降好多,debug了好长时间
1 | /* |
1 | #include <cstdio> |
this is a easy topic
but I can not make it unless I can read the answer
To tell the truth, I was very terrible
Although the topic is easy but I don't know how to solve it
I will also try my best to welcome the NOIP2020.
1.we need the 'weishu == 20'
because the ull can held '19' so we much let the ull can search all
两年后再写
尝试用bfs写了一下,mle了
1 | /* |
1 | #include <cstdio> |
今天比较心累 就不想用英文了
因为拼单词还得动脑子
这个题先捋一遍思想吧:
我们枚举第一行的状态,通过第一行来决定以下的一些行数。
thus更新答案
但是这题特别tmd狗
"如果最小解有多个,则输出在字典序意义下最小的那个"
真恶心
先埋下一个坑
因为我还没有搞透彻
"先搜0,再搜1能保证字典序最优"
"check函数是s<ans而不是s<=ans"
"因为先搜到的答案一定字典序比后搜到的字符串优"
"#define 字符串 方案"
" 那么后搜到的方案如何干掉先搜到的方案呢——唯有移动步数比先搜到的少"
\(7.14update\):
Q:为什么从零开始搜,要比从1开始搜 更正确?
A:因为字典序是 0 < 1 并且是 '01111' < '10000'还要比较最高位
所以我们从零开始搜的话,我们只可能是如下的搜索过程:‘00001’-->'00011' --> '00111' --> '.....'默认保证了字典序是从小往大搜的
而后面的方案数 如果想干掉之前的ans就必须满足 移动的步数比ans小(即为总的1的个数没有当前ans的1的个数多)
我们不需要再考虑字典序的问题,因为我们先从0开始搜,默认保证了我们字典序几就是从小到大这样排列的
1 | // catch that cow |
PS:
1.before today I break for two days;
2.It is a very easy bfs.
The only season why I cann't solve this problem is I was very sily
第二次做,考虑一下正确性
1 | s.cnt = now.cnt + 1; |
1 | #include <iostream> |
1 | #include <iostream> |
1>\(debug\)完记得清理干净
2>遇到bfs就写队列
3>模拟三维的方向:
1 | int dir[6][3] = {{0, 0, 1}, {0, 0, -1}, {0, 1, 0}, {0, -1, 0}, {1, 0, 0}, {-1, 0, 0}}; |
第二次写这道题的时候,很明显的吃力,太久没有温习编程知识了,什么queue,bfs都记不清了
我知道这是一道很蠢的板子题,但是如果不会做,蠢的就是我了吧
1 | #include <iostream> |