当前位置:网站首页>Acwing-116 pilot brother
Acwing-116 pilot brother
2022-07-06 12:35:00 【Want no boat at the bottom of the sea】
The essence of this problem is the same as that of eight digits
First define a state
struct st{
int map[4];// Handle status
int num;// They count
vector<int> s;// route
int a;// ID code
}About the steps
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#define x first
#define y second
using namespace std;
// Defining structure
struct st {
};
st bfs() {
// initialization
queue<st> que;
que.push();
while () {
st t = que.front();
for()
for () {
// Make new elements
if()// End the process when the conditions are met ;
return
}
que.pop()// Delete the head element
}
}
int main() {
// receive data
for (.....) cin >> ...//
// Make the header element
bfs();// Output results
}The actual code
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#define x first
#define y second
using namespace std;
const int N = 5;
int n = 4;
bool jud[1000000];
typedef pair<int, int> two;
struct st {
int map[N][N];
int num;
int a;
vector<two> s;
}st1;
void clone(int a[][N], int b[][N]) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
a[i][j] = b[i][j];
}
}
void change(int x, int y, int mid[][N]) {
for (int i = 1; i <= n; i++)
mid[i][y] = mid[i][y] ^ 1;
for (int i = 1; i <= n; i++)
mid[x][i] = mid[x][i] ^ 1;
mid[x][y] = mid[x][y] ^ 1;
}
int make(int a[][N]) {
int sum = 0, fur = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
if (a[i][j]) sum += 1 << fur++;
else fur++;
}
return sum;
}
st bfs() {
queue<st> que;
que.push(st1);
while (que.size()) {
st t = que.front();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if(t.s.size())
if (i == t.s.back().x&&j == t.s.back().y)
continue;
st mid;
clone(mid.map, t.map);//map
change(i, j, mid.map);
mid.a = make(mid.map);//a
if (!jud[mid.a]) {
jud[mid.a] = true;
mid.num = t.num + 1;//num
mid.s = t.s;//s
mid.s.push_back({ i,j });
que.push(mid);
if (mid.a == 65535) {
cout << mid.num << endl;
return mid;
}
}
}
}
que.pop();
}
}
int main() {
for(int i=1;i<=n;i++)
for (int j = 1; j <= n; j++) {
char a; cin >> a;
if (a == '-') st1.map[i][j] = 1;
else st1.map[i][j] = 0;
}
st1.a = make(st1.map);
jud[st1.a] = 1;
st1.num = 0;
st it = bfs();
for (int i = 0; i < it.s.size(); i++)
cout << it.s[i].x << ' ' << it.s[i].y << endl;
}边栏推荐
- The dolphin scheduler remotely executes shell scripts through the expect command
- Derivation of logistic regression theory
- idea问题记录
- 如何给Arduino项目添加音乐播放功能
- Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
- Gateway 根据服务名路由失败,报错 Service Unavailable, status=503
- MySQL replacement field part content
- Rough analysis of map file
- Esp8266 connect onenet (old mqtt mode)
- Minio file download problem - inputstream:closed
猜你喜欢

Walk into WPF's drawing Bing Dwen Dwen

Database course design: college educational administration management system (including code)

Design and implementation of general interface open platform - (39) simple and crude implementation of API services

idea中导包方法

Symbolic representation of functions in deep learning papers

level16

单片机蓝牙无线烧录

The dolphin scheduler remotely executes shell scripts through the expect command
![[Nodejs] 20. Koa2 onion ring model ----- code demonstration](/img/a8/a4390238685903b63bb036206f8dcb.jpg)
[Nodejs] 20. Koa2 onion ring model ----- code demonstration

Expected value (EV)
随机推荐
Single chip Bluetooth wireless burning
Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
PT OSC deadlock analysis
[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
(3) Introduction to bioinformatics of R language - function, data Frame, simple DNA reading and analysis
單片機藍牙無線燒錄
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
History object
Arduino get random number
[offer78] merge multiple ordered linked lists
Derivation of logistic regression theory
There is no red exclamation mark after SVN update
HCIP Day 12
Esp8266 connects to bafayun (TCP maker cloud) through Arduino IED
Guided package method in idea
JS数组常用方法的分类、理解和运用
Knowledge summary of request
JS变量类型以及常用类型转换
Conditional probability