nyoj 543 遙 控 器(列舉模擬)

2021-08-20 03:42:58 字數 1734 閱讀 9169

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3描述

dr.kong有一台高階電視機,這台電視機可以接受100個頻道(從0到99編號)。電視的配套遙控器有13個按鈕:

1   2   3   ↑

4   5   6   ↓

7   8   9

—  0

當按"↑"鍵時,當前頻道編號會增加1(如果當前為99頻道,則會切換到0頻道)。如果按"↓"鍵,當前頻道編號會減小1(如果當前為0頻道,則會切換到99頻道)。當要切換到0~9頻道時,可以直接在遙控器上按相應的鍵。當要切換到10~99頻道時,可以先按"—"鍵,然後按2個與頻道編號相對應的數字鍵(即先按與頻道編號的十位數字相對應的鍵,然後按與個位數字相對應的鍵)。

由於遙控器長時間的使用和某些未知原因,遙控器上的某些鍵已經壞了,不能再起作用了。現在你的任務是,能否告訴dr.kong,如何用最少的按鍵次數來將頻道從編號x切換到編號y。 輸入

第一行: n表示有n組測試資料. (1<=n<=5)

對每組測試資料有5行,前4行包含遙控器上每個按鍵的資訊。0表示對應的鍵壞了,1表示對應的鍵可以使用.第5行包含2個整數,分別是x 和 y (0 <= x <= 99; 0 <= y <= 99).

輸出對每組測試資料輸出一行,即將頻道從編號x切換到編號y所需要的最小按鍵次數.如果不可能將頻道從編號x 切換到編號y,則輸出-1.

樣例輸入

2

0 0 1 1

1 1 1 1

1 1 1

1 1

23 52

1 1 1 0

1 1 1 0

1 0 1

0 1

23 52

樣例輸出

4

-1

剛開始用搜尋做的,樣例是搞出來了,提交runtimeerror,也沒改出來,這是網上思路:

#include#include#includeusing namespace std;

#define inf 999

int num[10];//儲存0-9鍵是否損壞

int x,y;

int ad,les;//加,減

int wap;//交換

int swap_num(int a,int b)

else if(b>=10&&num[b/10]==1&&num[b%10]==1&&wap==1)

else return inf;//不能到達

}int add_less(int a,int b)

else

}if(les==1)

else

}return min(ans1,ans2);//二者取最小

}int main()

if(res==inf) printf("-1\n");

else printf("%d\n",res);

} return 0;

}

nyoj 543 遙控器 第五屆河南省程式設計大賽

時間限制 1000 ms 記憶體限制 65535kb 難度 3 描述 dr.kong有一台高階電視機,這台電視機可以接受 100個頻道 從0到 99編號 電視的配套遙控器有 13個按鈕 1 2 3 4 5 6 7 8 9 0 當按 鍵時,當前頻道編號會增加 1 如果當前為 99頻道,則會切換到0頻道...

遙控器中斷

我們以4.9.44版本核心的ir遙控器為例。使用cat proc interrupts命令 其中橫向,第一列是中斷號,第二列是各中斷在cpu中發生的次數,gicv2 是中斷控制器的名稱,第三列也是中斷邏輯號,第四列是驅動註冊的中斷名稱。例如 中斷號 130 對應的就是遙控器的中斷。vendor ms...

遙控器控制互動

最近做到的空調面板調節溫度問題,大概是要通過面板的上下鍵控制溫度,溫度由兩位數字組成,要分別載入十位和個位上的數,不知道為什麼總覺得自己很思維定勢,不夠開闊,想法很單一,總想不到最便捷的方法,直到主程提醒又恍然大悟,我也總在思索 為什麼自己想不到,大概思路就是,定義乙個變數temp,個位除以10取餘...