SCPC 普普通通的DP(字面意思)

2021-10-07 07:04:11 字數 874 閱讀 7011

給你乙個n*m的矩陣,你需要從左上角走到右下角,你每次只能向下或者向右走,並且不能走出矩陣之外。只要你走到終點之後,你就會獲得獎勵,獎勵的金額為:所有經過的元素做「與」運算。算一算你能獲得的最大獎勵金額為多少。

位置越高對答案影響越大,所以我們從高位到低位開始跑,計算每一位是否能有數字跑到最後且不影響之前的位置,具體實現看**注釋。

#include

using

namespace std;

#define int long long

#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const

int n=

1e3+5;

const

int mod=

1e9+7;

const

int inf=

0x7fffffff

;const

double pi=

3.1415926535

;int n,m,a[n]

[n],dp[n]

[n],ans=0;

signed

main()

}for

(int b=

31;b>=

0;b--

)//最高位對答案影響最大,所以我們從最高位開始跑

if(j+

1<=m&&

(a[i]

[j+1

]&ans)

==ans)}}

}if(dp[n]

[m]&&

(a[n]

[m]&(1

<}}

cout<}

普普通通的DP(按位貪心DP)

題意 還記得這題嗎?cf1332d 就是說乙個二維矩陣,從 1,1 走到 n,m 只能向下或右走,獲得的總貢獻是每一步的 運算,問你最後能獲得多少貢獻。思路 我們很容易想到,dp i j 表示走到 i,j 的最大值,然後每步取大就行,但是這個方法是錯誤的,比如這個資料 3 4 7 3 3 1 4 8...

這瓶普普通通的六神花露水 憑什麼能賣到500塊?

500塊賣你一瓶二手花露水,你願意麼?別說,還真有人心甘情願!前兩天,在乙個神秘的閒魚拍賣線上會場中,一位為一瓶二手六神花露水開出了503元的 天價 一瓶二手花露水被出價31次 這還不是最厲害的 有人花兩千塊買雙拖鞋!被36次競拍的愛馬仕拖鞋 別看只是花露水和拖鞋,人家的 身世 可都頗為曲折 它們每...

這瓶普普通通的六神花露水,憑什麼能賣到500塊?

500塊賣你一瓶二手花露水,你願意麼?別說,還真有人心甘情願!前兩天,在乙個神秘的閒魚拍賣線上會場中,一位為一瓶二手六神花露水開出了503元的 天價 一瓶二手花露水被出價31次 這還不是最厲害的 有人花兩千塊買雙拖鞋!被36次競拍的愛馬仕拖鞋 別看只是花露水和拖鞋,人家的 身世 可都頗為曲折 它們每...