当前位置:网站首页>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;
}
边栏推荐
- 绑定在游戏对象上的脚本的执行顺序
- Record the pit of NETCORE's memory surge
- Global and Chinese markets for otolaryngology devices 2022-2028: Research Report on technology, participants, trends, market size and share
- [Key shake elimination] development of key shake elimination module based on FPGA
- Figure application details
- P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
- AcWing 243. A simple integer problem 2 (tree array interval modification interval query)
- About some basic DP -- those things about coins (the basic introduction of DP)
- ESP32(基于Arduino)连接EMQX的Mqtt服务器上传信息与命令控制
- Recommendation system (IX) PNN model (product based neural networks)
猜你喜欢

Solution of storage bar code management system in food industry

VNCTF2022 WriteUp

Data processing methods - smote series and adasyn

Recommendation system (IX) PNN model (product based neural networks)

【leetcode】1189. Maximum number of "balloons"

Overturn your cognition? The nature of get and post requests

Path of class file generated by idea compiling JSP page

Mysql数据库慢sql抓取与分析

Fedora/REHL 安装 semanage

1291_Xshell日志中增加时间戳的功能
随机推荐
How can programmers resist the "three poisons" of "greed, anger and ignorance"?
P2022 有趣的数(二分&数位dp)
颠覆你的认知?get和post请求的本质
P2102 地砖铺设(dfs&贪心)
Fundamentals of SQL database operation
VPP performance test
/usr/bin/gzip: 1: ELF: not found/usr/bin/gzip: 3: : not found/usr/bin/gzip: 4: Syntax error:
《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
Proof of Stirling formula
[disassembly] a visual air fryer. By the way, analyze the internal circuit
2/13 qaq~~ greed + binary prefix sum + number theory (find the greatest common factor of multiple numbers)
【可调延时网络】基于FPGA的可调延时网络系统verilog开发
[introduction to Django] 11 web page associated MySQL single field table (add, modify, delete)
电脑钉钉怎么调整声音
Global and Chinese markets for endoscopic drying storage cabinets 2022-2028: Research Report on technology, participants, trends, market size and share
About some basic DP -- those things about coins (the basic introduction of DP)
MySQL transaction isolation level
Lambda expression learning
Le compte racine de la base de données MySQL ne peut pas se connecter à distance à la solution
ESP32_ FreeRTOS_ Arduino_ 1_ Create task