第五屆河南省程式設計大賽D 遙 控 器 列舉

2021-09-20 15:30:09 字數 1393 閱讀 8212

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.
思路:資料最大也就100,我們可以列舉到100,每次去最小值,但需要注意0到9需要1次,不需要_ 鍵,我就在這栽了。

#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 55;

const int inf = 0x3f3f3f3f;

const int mod = 1e9 + 7;

int m[maxn];

int ans;

int slove(int x, int y)

if(m[12] == 1)

return res;

}int main()

else if(m[10] == 1)}}

}else

else if(m[10])}}

}if(ans == inf)

cout << "-1" << endl;

else

cout << ans << endl;

}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頻道...

尼瑪啊,第五屆河南省程式設計大賽總結

第五屆河南省程式設計設計大賽,我沒參賽,但是我卻看著我的隊友們戰鬥!同樣令人振奮!我眼中的省賽 忙了一年,沒有參賽,有點遺憾,但是當看到他們取得這麼好的成績,我感到十分的高興,那種不甘心,也隨之消失,這次省賽,本來是讓我們去學習比賽流程的,順便感受一下賽場氣氛,可以說,收穫還是挺大的。通過這次比賽,...

第五屆河南省程式設計大賽 最強DE 戰鬥力

時間限制 1000 ms 記憶體限制 65535 kb 難度 3描述 春秋戰國時期,趙國地大物博,資源非常豐富,人民安居樂業。但許多國家對它虎視眈眈,準備聯合起來對趙國發起一場戰爭。顯然,面對多個國家的部隊去作戰,趙國的兵力明顯處於劣勢。戰鬥力是決定戰爭成敗的關鍵因素,一般來說,一支部隊的戰鬥力與部...