JZOJ 3807 地磚鋪設

2021-07-25 20:41:19 字數 1103 閱讀 9489

在遊戲廳大賺了一筆的randy 終於贏到了他想要的家具。乘此機會,他想把自己的房間好好整理一

下。 在百貨公司,可以買到各種各樣正方形的地磚,為了美觀起見,randy 不希望同樣顏色的正方形地

磚相鄰。所以他找到了tio 來幫忙解決這件事情。

tio 很快解決了這個任務。然而,出於某種強迫症,她希望在地上按照長寬劃分成網格後,逐行逐

列每一塊的顏色組成的序列的字典序最小。她希望你幫忙驗證一下她的方案。

這題用貪心,按順序找到第乙個空著的位置,求出當前點可以放的最小的字母,再擴充套件一圈(按當前位置為左上角的大一碼的正方形),看看新擴充套件出來的區域能放的最小的字母是什麼(越上越優先),如果一樣就繼續擴充套件,知道不行,

正確性顯然,

#include 

#include

#include

#define fo(i,a,b) for(int i=a;i<=b;i++)

#define ok(q,w) ((q)>0&&(w)>0&&(q)<=n&&(w)<=m)

using

namespace

std;

const

int n=105;

int n,m;

int a[n][n];

int ans[n][n];

int z[n];

int fx[4][2]=,,,};

void fz(int q,int w,int n,int e)

bool ok1()

bool nil(int q,int w,int n)

return ans;

}int mi(int q,int w)

void ss()

if(q)break;}

if(!q)return;

int mi=mi(q,w),mi1=mi(q,w+1),mx=1;

if(w2,min(n-q,m-w)+1)if(nil(q,w,k))mx=k;else

break;

}fz(q,w,mx,mi);

ss();

}int main()

return

0;}

JZOJ3807 地磚鋪設

在遊戲廳大賺了一筆的randy 終於贏到了他想要的家具。乘此機會,他想把自己的房間好好整理一下。在百貨公司,可以買到各種各樣正方形的地磚,為了美觀起見,randy 不希望同樣顏色的正方形地 磚相鄰。所以他找到了tio 來幫忙解決這件事情。tio 很快解決了這個任務。然而,出於某種強迫症,她希望在地上...

JZOJ 1245 穿越泥地 bfs

傳送門 問從起點到達指定點而不走過泥潭的最小步數是多少 因為座標可能會是負數,所以我們統一加上500 50050 0使得座標變為非負數 然後怒跑bfs bfsbf s include include include include include include include include de...

JZOJ 4016 圈地為王

description 在 n 行 m 列的網格中,你要圈一些地。你從左上角出發,最後返回左上角,路徑內部的區域視為被你圈住。你不可以進入網格內部,只能在邊上行走。你的路徑不能在左上角以外自交,但是邊足夠寬,你可以重複經過而不自交。網格中有一些格仔對你很重要,你要盡量圈住它 而另一些格仔對你有壞處,...