当前位置:网站首页>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;
}边栏推荐
- History object
- . elf . map . list . Hex file
- VIM command line notes
- Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
- JS正则表达式基础知识学习
- What is the maximum length of MySQL varchar field
- MySQL takes up too much memory solution
- (课设第一套)1-5 317号子任务 (100 分)(Dijkstra:重边自环)
- Types de variables JS et transformations de type communes
- Single chip Bluetooth wireless burning
猜你喜欢

Unity场景跳转及退出

VSCode基础配置

Expected value (EV)

记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口

Classification, understanding and application of common methods of JS array

Programmers can make mistakes. Basic pointers and arrays of C language

Learning notes of JS variable scope and function

JS變量類型以及常用類型轉換

Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect

Naive Bayesian theory derivation
随机推荐
[Red Treasure Book Notes simplified version] Chapter 12 BOM
Vscode basic configuration
(the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
数据库课程设计:高校教务管理系统(含代码)
Unity3d makes the registration login interface and realizes the scene jump
基于Redis的分布式ID生成器
Latex learning
Pytorch: tensor operation (I) contiguous
Common DOS commands
level16
HCIP Day 12
Esp8266 uses Arduino to connect Alibaba cloud Internet of things
Use of lists
[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
Basic operations of databases and tables ----- creating data tables
Database course design: college educational administration management system (including code)
JUC forkjoin and completable future
Force buckle 1189 Maximum number of "balloons"
What is the maximum length of MySQL varchar field
[esp32 learning-1] construction of Arduino esp32 development environment