当前位置:网站首页>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;
}
边栏推荐
- Global and Chinese market of aircraft anti icing and rain protection systems 2022-2028: Research Report on technology, participants, trends, market size and share
- 2/12 didn't learn anything
- P2022 有趣的数(二分&数位dp)
- Lombok原理和同时使⽤@Data和@Builder 的坑
- Yyds dry goods inventory web components series (VII) -- life cycle of custom components
- Global and Chinese markets for MRI safe implants 2022-2028: technology, participants, trends, market size and share Research Report
- During pycharm debugging, the view is read only and pause the process to use the command line appear on the console input
- How to execute an SQL statement in MySQL
- Global and Chinese markets for otolaryngology devices 2022-2028: Research Report on technology, participants, trends, market size and share
- Database, relational database and NoSQL non relational database
猜你喜欢

About some basic DP -- those things about coins (the basic introduction of DP)

MySQL learning record 13 database connection pool, pooling technology, DBCP, c3p0

Understanding of processes, threads, coroutines, synchronization, asynchrony, blocking, non blocking, concurrency, parallelism, and serialization

Solution to the problem that the root account of MySQL database cannot be logged in remotely

Solutions: word coverage restoration, longest serial number, Xiaoyu buys stationery, Xiaoyu's electricity bill

MySQL master-slave replication

Stable Huawei micro certification, stable Huawei cloud database service practice

Yyds dry goods inventory hcie security Day11: preliminary study of firewall dual machine hot standby and vgmp concepts

Slow SQL fetching and analysis of MySQL database

What is the difference between gateway address and IP address in tcp/ip protocol?
随机推荐
51nod 1130 n factorial length V2 (Stirling approximation)
DM8 archive log file manual switching
解决“C2001:常量中有换行符“编译问题
颠覆你的认知?get和post请求的本质
关于进程、线程、协程、同步、异步、阻塞、非阻塞、并发、并行、串行的理解
Record an excel xxE vulnerability
《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
Benefits of automated testing
[PSO] Based on PSO particle swarm optimization, matlab simulation of the calculation of the lowest transportation cost of goods at material points, including transportation costs, agent conversion cos
How does technology have the ability to solve problems perfectly
TCP/IP协议里面的网关地址和ip地址有什么区别?
hashlimit速率控制
Solution of storage bar code management system in food industry
Web components series (VII) -- life cycle of custom components
The global and Chinese market of negative pressure wound therapy unit (npwtu) 2022-2028: Research Report on technology, participants, trends, market size and share
记一次excel XXE漏洞
Basic knowledge of binary tree, BFC, DFS
The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
Thread sleep, thread sleep application scenarios