51nod 1779 逆序對統計 狀壓dp

2021-08-09 05:42:58 字數 493 閱讀 3089

n範圍小,可以狀壓

0/1表示是否已經給這道題選擇了分數

按分數的順序列舉

在某乙個狀態中,若給第i道題選擇這個分數那麼產生的貢獻就是狀態中第i位後的1的個數

如:狀態為 10101,已經選好了1,3,5的分數,此時選擇規定第2題的分數,貢獻就是第2位之後1的個數為2

則會產生2對逆序數

一開始感覺會被卡預處理了一下

#include

#include

#define n 20

#define m 100

#define inf 1e18

#define ll long long

using

namespace

std;

int n,m,mx;

ll add[1

<1

}printf("%lld\n",dp[p-1]);

}

51Nod1779 逆序對統計

lyk最近計畫按順序做n道題目,每道題目都分為很多分數檔次,lyk覺得這些題太簡單了,於是它想到了乙個好玩的遊戲。lyk決定將每道題目做出其中的某個分數,使得這n道題目的逆序對個數最多。為了方便,假設共有m個分數檔次,並且會給m個分數檔次分配乙個題目編號,表示該題目會出現這個分數檔次。題目保證每道題...

51NOD1779 逆序對統計

lyk最近計畫按順序做n道題目,每道題目都分為很多分數檔次,lyk覺得這些題太簡單了,於是它想到了乙個好玩的遊戲。lyk決定將每道題目做出其中的某個分數,使得這n道題目的逆序對個數最多。為了方便,假設共有m個分數檔次,並且會給m個分數檔次分配乙個題目編號,表示該題目會出現這個分數檔次。題目保證每道題...

51nod 1779逆序對統計(狀壓DP)

按照插入數的大小排序,然後依次進行dp。用乙個狀態表示n個數是否被選了 10110 就是表示第1 3 4個位置都選了 那麼如果此時這個數該填到5這個位置,那麼必定會造成乙個逆序 因為下乙個數會填到2,下乙個數必定比這個數大 也就是轉移的時候看插入位置前有多少個0,進行轉移 寫的時候有一些小技巧 直接...