輸入的第一行是兩個正整數n和m。接著是n行m列的人生棋盤。
n<=1000 m<=1000 aij<=1e9
輸入只有一列,如果存在合法序列,則為n+m-1個用乙個空格隔開的權值。
否則就輸出oh,the life is too difficult!
3 31 3 4
7 9 0
5 6 8
1 3 9 6 8
一拿到這道題,果斷貪心,可是萬一搜到的路上有0怎麼辦呢?所以,我們先從終點向回搜,判斷道路是否能走,並且沒走到終點,就輸出oh,the life is too difficult!
然後再從起點開始搜,每次去取的輸出就行了。
1 #include2using
namespace
std;
3int
n,m;
4int mp[1001][1001
]; 5
bool flag[1001][1001];6
int dir[4][2]=;
7struct
node;
11 inline int
read()
1218
intmain()
1927
}28 flag[n][m]=true;//
終點能到達
29for(int i=n;i;i--)
30for(int j=m;j;j--)
3137
if(i==n&&j==m)continue
;38 flag[i][j]=flag[i+1][j]|flag[i][j+1];//
如果有一條路能走,就能到達 39}
40if(!flag[1][1])//
沒有路徑
4145
int x=1,y=1;//
起點開始搜
46while(x!=n||y!=m)
4754 cout輸出終點的
55 }
題解 NOIP模擬題 我要的幸福 C
思路先從 n,m 出發搜一遍,如果最後 1,1 沒有被標記,那麼這組資料是無解的。如果有解,搜完一遍之後利用標記,用貪心輸出。其他的就很簡單了。1 include2 using namespace std 3int a 1010 1010 n,m 4bool vis 1010 1010 5 inli...
NOIP模擬題 連通
給定乙個無向圖,請編寫乙個程式實現以下兩種操作 1 d x y,從原圖中刪除連線x和y頂點的邊。2 q x y,詢問x和y頂點是否連通。這也是連通問題,考慮用並查集解決。但是這是刪除的問題耶,怎麼辦?考慮將刪除變為連通,能不能將所有操作給反過來,從最後乙個操作開始處理。當然是可以的。include ...
Noip模擬題 山峰
description在n m的棋盤上不重複的填1到n m 如果乙個數字比周圍的八個數字大,那麼他就是乙個山峰。現在告訴你所有山峰的位置,問你填數的方案數mod 12345678 input 輸入第一行兩個數字 n m意義如題目描述。接下來n 行,每行 m個字元,表示非山峰,x 表示山峰。1 n 4...