「考試反思」2020-10-31 警示
阿新 • • 發佈:2020-10-31
方程的解
考場上手推了 \(exgcd\)
然後掛成了 \(20\)
確實有些問題沒有想清楚:
\(1.\) \(ax+0y=c\) 得在 \(c\% a=0\) 時有無數個解,反之沒有
\(2.\) 計算正整數解的時候得調一個到 \(>0\) 然後維護另一個,這裡的細節得想明白寫對了
exgcd(a,b,x,y); x*=c; y*=c; while(x<0) x+=b,y-=a; //x>0 int res=0; y+=(x/b)*a; x%=b; if(y<=0) return puts("0"),void(); res=(x>0&&y>0)+y/a-(!(y%a));
Matrix
定義 \(f_{i,j}\) 為左端點結束在 \(i\) 以及之前的區間有 \(j\) 個區間在右邊放了數字
和 \(dp\) 搬運工的幾個題目的狀態定義是有點像的
轉移需要預處理兩個陣列,\(l_i,r_i\) 分別表示有多少行的左/右區間在 \(i\) 結束
\(f_{i,j}\times= A_{i-j-l[i-1]}^{l[i]-l[i-1]}\) 判斷狀態是不是可行,順便乘上排列數
\(f_{i+1,j}+=f_{i,j},f_{i+1,j+1}+=f_{i,j}\times (r_{i+1}-j)\)
分別在左邊和右邊放數字即可
思路的變換著實很妙,轉到這個上去計數的思路積累了
光/CF274E
考試的時候寫了 \(2h\) 但是寫得有點不太得法,有些地方確實是寫複雜了
以後立下來一個 \(flag\):如果 \(1h\) 內沒有寫完的題目,直接換掉去寫暴力,防止其阻礙全域性
不過對於 \(3h\) 場一小時也很珍貴了
挺難取捨的其實
上次考試調模擬題做了 \(3h\) ,這次又來了一個
其實也不知道自己為啥要剛這題,可能是為了逃避 資料結構 和 \(dp\) 吧,以後不能這樣了
以後衝破頭也要去幹dp出來,要不然考試的時間拿來調程式碼和自閉就太無意義了
這題題解:當時自己想的是直接維護所有的對角線,然後二分最早的位置
就寫就行了,誠然,寫不出來