当前位置:网站首页>P2102 floor tile laying (DFS & greed)
P2102 floor tile laying (DFS & greed)
2022-07-06 04:16:00 【Harris-H】
P2102 Floor tile laying (dfs& greedy )
Enumerate each point as the upper left corner of the square to expand , Just judge the left boundary and the upper boundary , Then fill the square . Because the minimum requirement , So every time, we will judge whether the point in the upper right corner can be smaller , If not, just break, Otherwise, continue to expand .
Reference code
#include<bits/stdc++.h>
using namespace std;
char a[502][502];
int n,m,x,y;
bool same(char k,int x,int y) // Judge (x,y) Can I put k
{
if (x>n||y>m) return false; // Judge whether it has crossed the boundary
if (a[x-1][y]==k&&a[x-1][y]) return false;
if (a[x+1][y]==k&&a[x+1][y]) return false;
if (a[x][y-1]==k&&a[x][y-1]) return false;
if (a[x][y+1]==k&&a[x][y+1]) return false; // Judge whether it is the same as that around
return true;
}
int pd(char k,int x1,int y1) //x1,y1 Represents the coordinates of the upper left corner of the extended square
{
x=x1;
y=y1; //x,y Indicates row and column labels that cannot be extended
int flag=0; //flag Indicates whether the extension is successful
for (int i=1;i<=n;i++)
if (!a[x][y1]&&!a[x1][y]&&same(k,x,y1)&&same(k,x1,y))
// Judge whether the current position has been let go and whether it is the same as the surrounding
{
char min1=0;
for (char ch='A';ch<k;ch++) // Judge whether the right position is smaller
if (same(ch,x1,y))
{
min1=ch;
break;
}
if (min1) break; // If you find a smaller one on the right , Just exit the extension
flag=1;
x++;y++; // Expand down
}
else break;
for (int i=x1;i<x;i++) // because x,y Indicates that cannot be extended , So take the less than sign
for (int j=y1;j<y;j++) a[i][j]=k; // assignment , Expand
return flag;
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
if (!a[i][j])
for (char k='A';k<='Z';k++) // Enumerate the minimum values that can be placed in the current position from small to large
{
int x=pd(k,i,j);
if (x) break; // If you successfully put , It indicates that the current position has been put into the optimal value , sign out
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
printf("%c",a[i][j]);
printf("\n");
} // Happy output
return 0;
}
边栏推荐
- [Key shake elimination] development of key shake elimination module based on FPGA
- Basic knowledge of binary tree, BFC, DFS
- User datagram protocol UDP
- VNCTF2022 WriteUp
- Stack and queue
- Deep learning framework installation (tensorflow & pytorch & paddlepaddle)
- Viewing and verifying backup sets using dmrman
- 1291_ Add timestamp function in xshell log
- The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
- QML和QWidget混合开发(初探)
猜你喜欢
Proof of Stirling formula
User datagram protocol UDP
Solve the compilation problem of "c2001: line breaks in constants"
关于进程、线程、协程、同步、异步、阻塞、非阻塞、并发、并行、串行的理解
Practical development of member management applet 06 introduction to life cycle function and user-defined method
ESP32(基于Arduino)连接EMQX的Mqtt服务器上传信息与命令控制
20、 EEPROM memory (AT24C02) (similar to AD)
【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
Lombok原理和同时使⽤@Data和@Builder 的坑
Cross domain and jsonp details
随机推荐
ESP32(基于Arduino)连接EMQX的Mqtt服务器上传信息与命令控制
[disassembly] a visual air fryer. By the way, analyze the internal circuit
Global and Chinese market of rubber wheel wedges 2022-2028: Research Report on technology, participants, trends, market size and share
Record the pit of NETCORE's memory surge
记一次excel XXE漏洞
BOM - location, history, pop-up box, timing
[Zhao Yuqiang] deploy kubernetes cluster with binary package
Web components series (VII) -- life cycle of custom components
IDEA编译JSP页面生成的class文件路径
10 exemples les plus courants de gestion du trafic istio, que savez - vous?
Hashcode and equals
Query the number and size of records in each table in MySQL database
Practical development of member management applet 06 introduction to life cycle function and user-defined method
Global and Chinese market of aircraft anti icing and rain protection systems 2022-2028: Research Report on technology, participants, trends, market size and share
Mlapi series - 04 - network variables and network serialization [network synchronization]
2/13 qaq~~ greed + binary prefix sum + number theory (find the greatest common factor of multiple numbers)
Lombok principle and the pit of ⽤ @data and @builder at the same time
Lambda expression learning
P2648 make money
HotSpot VM