51nod 1624 STL妙用 二分

2022-08-19 21:00:12 字數 726 閱讀 3682

這是演算法馬拉松一道題。當時想法方向是正確的可惜沒有想到stl。

題意3*n的矩陣。。要走出一條取餘最大路。。

看到3肯定是在這裡做文章。。那麼可以列舉第一行二分剩下的嘛。。

到這裡思路都很清晰,但是考慮到如果不刪除(刪除當前節點不合法的走法,移動一下刪乙個)的話,二分就結果不一定正確了。。這就十分尷尬

賽後看題解可以 multiset來刪除,當然也可以map了。。。這裡就是經驗的問題了

二分時候要注意一些地方,乙個最優答案當然是靠近p-1了,那麼列舉的x怎麼靠近p-1呢,當然有兩種方法,一是x+y靠近p-1,要麼是x+y靠近2*p-1了。

然後在multiset裡面二分即可。。

這裡要學習stl的應用,自己根本沒有領會到stl的精髓啊。。。蒟蒻加油!

#include #include #include #include #include using namespace std;

const int maxn=100005;

long long n,p;

long long arr[3][maxn];

long long sum[3][maxn];

multisets;

int main()

{ scanf("%d%d",&n,&p);

for(int i=0;i<3;i++){

for(int j=0;j::iterator it;

for(int i=0;i

51nod 1624 取餘最長路

佳佳有乙個n m的帶權矩陣,她想從 1,1 出發走到 n,m 且只能往右往下移動,她能得到的娛樂值為所經過的位置的權的總和。有一天,她被下了惡毒的詛咒,這個詛咒的作用是將她的娛樂值變為對p取模後的值,這讓佳佳十分的不開心,因為她無法找到一條能使她得到最大娛樂值的路徑了!她發現這個問題實在是太困難了,...

51nod 1624 取餘最長路

原題鏈結 1624 取餘最長路 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 佳佳有乙個n m的帶權矩陣,她想從 1,1 出發走到 n,m 且只能往右往下移動,她能得到的娛樂值為所經過的位置的權的總和。有一天,她被下了惡毒的詛咒,這個詛咒的作用是將她的娛樂值變為...

51 Nod1624 取餘最長路

1624 取餘最長路 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 佳佳有乙個n m的帶權矩陣,她想從 1,1 出發走到 n,m 且只能往右往下移動,她能得到的娛樂值為所經過的位置的權的總和。有一天,她被下了惡毒的詛咒,這個詛咒的作用是將她的娛樂值變為對p取模後...