CQOI2018 解鎖螢幕

2022-04-26 00:51:32 字數 737 閱讀 4330

其實只有開了o2才能a.......

就是我們看到n的範圍這麼小,就想到狀壓dp。然後我們設狀態dp[i]表示狀態為i的(二進位制表示該點選或者不選),方案數有多少個。

但是我們發現因為還要列舉轉移下乙個點,所以我們還要記錄一下最後的那個點是什麼。

於是我們修改狀態為\(dp[i][j]\)表示當前狀態為i,最後乙個點的編號為j的,方案數有多少個。

然後\(o(2^n*n^2)\).......吧

#include#include#include#include#include#include#define maxn 21

#define eps 1e-7

#define mod 100000007

using namespace std;

int n,m,ans;

int dp[1inline bool cmp(struct node a,struct node b)

int main()

if(flag==1) continue;

dp[s][j]=(dp[s][j]+dp[i][k])%mod;}}

}for(int i=1;i<(1

for(int j=1;j<=n;j++)

ans=(ans+dp[i][j])%mod;

printf("%d\n",ans);

return 0;

}

CQOI2018 解鎖螢幕

使用過android手機的同學一定對手勢解鎖螢幕不陌生。android的解鎖螢幕由3x3個點組成,手指在螢幕上畫一條 線將其中一些點連線起來,即可構成乙個解鎖圖案。如下面三個例子所示 畫線時還需要遵循一些規則 1 連線的點數不能少於4個。也就是說只連線兩個點或者三個點會提示錯誤。2 兩個點之間的連線...

CQOI 2018 解鎖螢幕

洛谷傳送門 使用過android 手機的同學一定對手勢解鎖螢幕不陌生。android 的解鎖螢幕由3x3 個點組成,手指在螢幕上畫一條線,將其中一些點連線起來,即可構成乙個解鎖圖案。如下面三個例子所示 畫線時還需要遵循一些規則 連線的點數不能少於4 個。也就是說只連線兩個點或者三個點會提示錯誤。兩個...

CQOI2018 解鎖螢幕

n leq 20 一眼狀壓。設 f i j 表示 訪問狀態為 i 當前在 j 點的方案數。我們列舉乙個 k 表示下乙個要去的地方 要判斷 j 能不能轉移到 k 還要列舉 l 判斷 j,k,l 是否共線。判斷共線是基礎向量,一次點積 一次叉積帶走。這樣複雜度 o n 32 n 期望得分 30 incl...