当前位置:网站首页>Study diary: February 13, 2022
Study diary: February 13, 2022
2022-07-06 00:42:00 【Chen Jia on the weekend】
Today's first question

If we have such a set of data
9 11
7 8
8 9
9 7
4 1
7 3
1 2
2 5
5 6
6 2
1 3
3 4
For better comparison , We also draw the corresponding diagram

It's almost like this
From the picture, we can directly see ,1-2 and 3-7
Other roads that do not meet the conditions basically have a common feature , It can be connected with other roads to form a closed loop
So we can eliminate the routes on all closed rings , The remaining route is the final result
In order to meet the output required by the topic , We must sort .
1 2
1 3
1 4
2 5
2 6
3 4
3 7
5 6
7 8
7 9
8 9
Suppose we start from the city 1 Start walking , The way to go is the depth first algorithm
from 1 Go down 1-2 Go to the 2
Judge the city 2 Whether it's the city you've passed , No, just keep going
from 2 Go down 2-5 Go to the 5
Judge the city 5 Whether it's the city you've passed , No , Keep going down
from 5 Go down 5-6, Go to the 6
Judge the city 6 Whether it's the city you've passed , No , Keep going down
from 6 Go down 6-2, Go to the 2
Judge the city 2 Whether it's the city you've passed , yes . It shows that a ring is formed in front , Look ahead , The starting point is 2 The route of the , And mark all routes along the way
So it includes itself , And along the way 2-6,5-6,2-5 All marked
So from 1-2 All the above routes have been traversed
And then from 1-3 The route starts
Judge the city 3, Keep going down -7
Judge the city 7, Keep going down -8
Judge the city 8, Keep going down -9
Judge the city 9, Keep going down -7
Judge the city 7, It's past , Mark the route along the way 7-9,8-9,7-8
We continue from the city 3 go , Go down -4
Judge the city 4, Keep going down -1
Judge the city 1, It's past , Mark the route along the way 1-3,3-4,1-4
All routes have been judged , The final output is an unmarked route
1-2 and 3-7
Among them, several tags are needed
A mark of the route taken ,
A sign of the city passed
A route marked as a ring
The final code is as follows
#include<iostream>
using namespace std;
struct Data
{
int a;
int b;
}data[5003];
int don[5003]={0};// Mark the route taken
int result[5003]={0};// Record the final result
int steep[200];// Record the cities you have passed
int n,m;
int run(int start,int end)
{
int mid=(start+end)/2;
int a=start;
int b=mid+1;
Data shadow[5003];
int len=0;
while(a<=mid&&b<=end)
{
if(data[a].a<data[b].a)
{
shadow[len++]=data[a++];
}
else
if(data[a].a==data[b].a)
{
if(data[a].b<data[b].b)
shadow[len++]=data[a++];
else
shadow[len++]=data[b++];
}
else
shadow[len++]=data[b++];
}
while(a<=mid)
shadow[len++]=data[a++];
while(b<=end)
shadow[len++]=data[b++];
for(int i=0;i<len;i++)
data[start+i]=shadow[i];
}
int sorting(int start,int end)
{
if(start>=end)
return 0;
int mid=(start+end)/2;
sorting(start,mid);
sorting(mid+1,end);
run(start,end);
}
// Mark the route along the way
int clear(int present,int goal,int flag)
{
result[present]=1;
if(flag==0)
if(data[present].a==goal||data[present].b==goal)
return 0;
present=don[present];
clear(present,goal,0);
}
int finding(int present,int cit)
{
if(steep[cit])
{
clear(present,cit,1);
return 0;
}
for(int i=1;i<=m;i++)
{
if(don[i]==0)
{
if(data[i].a==cit)
{
don[i]=present;// Mark the route taken , Record the last step
steep[data[i].a]=1;// Mark the city you have passed
finding(i,data[i].b);// Go to the next city
}
if(data[i].b==cit)
{
don[i]=present;// Mark the route taken , Record the last step
steep[data[i].b]=1;// Mark the city you have passed
finding(i,data[i].a);// Go to the next city
}
}
}
}
int main()
{
cin>>n>>m;
int a,b;
for(int i=1;i<=m;i++)
{
cin>>a>>b;
// When deposited a Must be less than b
if(a>b)
data[i].a=b,data[i].b=a;
else
data[i].a=a,data[i].b=b;
}
sorting(1,m);// Sort
finding(1,data[1].a);
for(int i=1;i<=m;i++)
{
if(result[i]==0)
cout<<data[i].a<<' '<<data[i].b<<endl;
}
}To sum up, this problem is called joint search , A set of depth first algorithms .
Mainly depth first algorithm
Execute special orders according to the special conditions explored , To arrive at the final result
边栏推荐
- 几百行代码实现一个 JSON 解析器
- MCU realizes OTA online upgrade process through UART
- Spark DF adds a column
- Leetcode 450 deleting nodes in a binary search tree
- [groovy] compile time metaprogramming (compile time method interception | find the method to be intercepted in the myasttransformation visit method)
- Cloud guide DNS, knowledge popularization and classroom notes
- Free chat robot API
- LeetCode 6005. The minimum operand to make an array an alternating array
- The detailed page returns to the list and retains the original position of the scroll bar
- Location based mobile terminal network video exploration app system documents + foreign language translation and original text + guidance records (8 weeks) + PPT + review + project source code
猜你喜欢

FFmpeg抓取RTSP图像进行图像分析

猿桌派第三季开播在即,打开出海浪潮下的开发者新视野

Spark SQL空值Null,NaN判断和处理

notepad++正則錶達式替換字符串

LeetCode 1189. Maximum number of "balloons"
![[EI conference sharing] the Third International Conference on intelligent manufacturing and automation frontier in 2022 (cfima 2022)](/img/39/9d189a18f3f75110b400506e274391.png)
[EI conference sharing] the Third International Conference on intelligent manufacturing and automation frontier in 2022 (cfima 2022)

Multithreading and high concurrency (8) -- summarize AQS shared lock from countdownlatch (punch in for the third anniversary)

Classical concurrency problem: the dining problem of philosophers

Basic introduction and source code analysis of webrtc threads
![[groovy] JSON string deserialization (use jsonslurper to deserialize JSON strings | construct related classes according to the map set)](/img/bf/18ef41a8f30523b7ce57d03f93892f.jpg)
[groovy] JSON string deserialization (use jsonslurper to deserialize JSON strings | construct related classes according to the map set)
随机推荐
uniapp开发,打包成H5部署到服务器
AtCoder Beginner Contest 258【比赛记录】
Single source shortest path exercise (I)
Spark-SQL UDF函数
Spark DF adds a column
How to make your own robot
详细页返回列表保留原来滚动条所在位置
Comment faire votre propre robot
CTF daily question day44 rot
Extension and application of timestamp
MDK debug时设置数据实时更新
Idea remotely submits spark tasks to the yarn cluster
Room cannot create an SQLite connection to verify the queries
Leetcode:20220213 week race (less bugs, top 10% 555)
Ffmpeg captures RTSP images for image analysis
The value of applet containers
Leetcode 450 deleting nodes in a binary search tree
How to use the flutter framework to develop and run small programs
Opencv classic 100 questions
MCU通过UART实现OTA在线升级流程