当前位置:网站首页>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;
}
边栏推荐
- Solution of storage bar code management system in food industry
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
- [adjustable delay network] development of FPGA based adjustable delay network system Verilog
- Leetcode32 longest valid bracket (dynamic programming difficult problem)
- Script lifecycle
- Global and Chinese markets for otolaryngology devices 2022-2028: Research Report on technology, participants, trends, market size and share
- Figure application details
- Basic use of MySQL (it is recommended to read and recite the content)
- Data processing methods - smote series and adasyn
- MySql數據庫root賬戶無法遠程登陸解决辦法
猜你喜欢
CertBot 更新证书失败解决
《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
Maxay paper latex template description
Mlapi series - 04 - network variables and network serialization [network synchronization]
ESP32_ FreeRTOS_ Arduino_ 1_ Create task
Stc8h development (XII): I2C drive AT24C08, at24c32 series EEPROM storage
Execution order of scripts bound to game objects
Stack and queue
Path of class file generated by idea compiling JSP page
What is the difference between gateway address and IP address in tcp/ip protocol?
随机推荐
【leetcode】1189. Maximum number of "balloons"
Global and Chinese markets for otolaryngology devices 2022-2028: Research Report on technology, participants, trends, market size and share
MySql數據庫root賬戶無法遠程登陸解决辦法
HotSpot VM
Basic use of MySQL (it is recommended to read and recite the content)
Figure application details
hashlimit速率控制
Mixed development of QML and QWidget (preliminary exploration)
Stack and queue
P3500 [POI2010]TES-Intelligence Test(二分&离线)
Stable Huawei micro certification, stable Huawei cloud database service practice
Several important classes in unity
How to solve the problem of slow downloading from foreign NPM official servers—— Teach you two ways to switch to Taobao NPM image server
Lombok原理和同时使⽤@Data和@Builder 的坑
80% of the diseases are caused by bad living habits. There are eight common bad habits, which are both physical and mental
lora网关以太网传输
Yyds dry goods inventory web components series (VII) -- life cycle of custom components
STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
2/13 review Backpack + monotonic queue variant
Crawler notes: improve data collection efficiency! Use of proxy pool and thread pool