Day50 費解的開關 遞迴,狀態壓縮

2021-10-07 16:38:30 字數 1265 閱讀 3143

費解的開關

今天一天也沒寫出這題。。。

一開始是想著狀態壓縮第一行

然後發現沒那麼簡單。。。

明天一定補題

應該要做乙個timetable

不然感覺學的亂七八糟的

今天發現就是狀態壓縮

只是change的方式要變化下一行

費解的開關

說多了都是淚

還以為輸出方法數

沒想到是輸出最小步數

注意是如果步數大於6的就輸出-1

總體思路還是狀態壓縮

列舉第一行

然後先轉換第一行列舉的結果

接著從第一行開始

遇到0的點就在其下方做一次改變,注意是其下方

因為如果是那個搜到的點變化的話,就會影響上面的點,而我們已經無法回去檢測上面的點了

同時要注意列舉時行數是1~4,不需要列舉第五行了

#include#include#include#include#include#include#include#include#include#include#include#define lson (o<<1)

#define rson (o<<1|1)

#define fi first

#define sc second

#define dbg(x) cout<<#x<<" = "<<(x)inline int read()

c=getchar();

}while(c>='0'&&c<='9')

return x*w;

}//inline void w(int x)

#define n 10

ll t;

char ma[n][n],backup[n][n];

int ans[n][n],ress=1e9;

int dx=,dy=;

void print() }}

void fun()

// cout<>ma[i];

memcpy(backup,ma,sizeof(backup));

for(int i=0;i<(1<<5);i++)else

} fun();

if(check())

memcpy(ma,backup,sizeof(ma));

memset(ans,0,sizeof(ans));

} if(ress<=6)

cout<>t;

while(t--)

return 0;

}

演算法 費解的開關(遞推與遞迴)

這題類似於我們玩過的乙個小遊戲。當按下中間按鈕時,這個按鈕及上下左右四個方向上的燈的開關轉換一次。本題要求我們將整個矩陣能否在6步以內點亮。其實這個題的思路很 清奇 因為當我們將第一行的所有操作進行遍歷 共有2 5種情況 然後為了將第一行的燈全部點亮,故第二行的操作就能根據第一行燈的狀態唯一確定。以...

CSS實現輸入框的高亮效果 Day50

又到週末了,這一天天過的真快,明天應該回老家了,不知道會不會有機會進行編寫,盡量爭取吧,實在不想就這樣間斷。如果說從前會一天天無聊到爆,那現在自己應該是一天天忙的要死,欠缺了太多東西,那些浪費的時間可不是懊惱就能解決的,出來混,終歸是要還的啊。先來幅圖畫,顯示下什麼是所謂的高亮效果 在輸入框周圍出現...

CSS實現輸入框的高亮效果 Day50

又到週末了,這一天天過的真快,明天應該回老家了。不知道會不會有機會進行編寫。盡量爭取吧,實在不想就這樣間斷。假設說從前會一天天無聊到爆,那如今自己應該是一天天忙的要死,欠缺了太多東西,那些浪費的時間可不是懊惱就能解決的。出來混。終歸是要還的啊。先來幅圖畫,顯示下什麼是所謂的高亮效果 在輸入框周圍出現...