日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

状态压缩DP(大佬写的很好,转来看)

發(fā)布時(shí)間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 状态压缩DP(大佬写的很好,转来看) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

奉上大佬博客 https://blog.csdn.net/accry/article/details/6607703
動(dòng)態(tài)規(guī)劃本來(lái)就很抽象,狀態(tài)的設(shè)定和狀態(tài)的轉(zhuǎn)移都不好把握,而狀態(tài)壓縮的動(dòng)態(tài)規(guī)劃解決的就是那種狀態(tài)很多,不容易用一般的方法表示的動(dòng)態(tài)規(guī)劃問(wèn)題,這個(gè)就更加的難于把握了。難點(diǎn)在于以下幾個(gè)方面:狀態(tài)怎么壓縮?壓縮后怎么表示?怎么轉(zhuǎn)移?是否具有最優(yōu)子結(jié)構(gòu)?是否滿(mǎn)足后效性?涉及到一些位運(yùn)算的操作,雖然比較抽象,但本質(zhì)還是動(dòng)態(tài)規(guī)劃。找準(zhǔn)動(dòng)態(tài)規(guī)劃幾個(gè)方面的問(wèn)題,深刻理解動(dòng)態(tài)規(guī)劃的原理,開(kāi)動(dòng)腦筋思考問(wèn)題。這才是掌握動(dòng)態(tài)規(guī)劃的關(guān)鍵。

動(dòng)態(tài)規(guī)劃最關(guān)鍵的要處理的問(wèn)題就是位運(yùn)算的操作,容易出錯(cuò),狀態(tài)的設(shè)計(jì)也直接決定了程序的效率,或者代碼長(zhǎng)短。狀態(tài)轉(zhuǎn)移方程一定要仔細(xì)推敲,不可一帶而過(guò),要思考為什么這么做,掌握一個(gè)套路,遇見(jiàn)這類(lèi)問(wèn)題能快速的識(shí)別出問(wèn)題的本質(zhì),找出狀態(tài)轉(zhuǎn)移方程和DP的邊界條件。

下面是一些關(guān)于狀態(tài)壓縮DP的題目,大都不難。狀壓DP的東西還有很多,還會(huì)接著總結(jié)。

【POJ3254】Corn Fields

【題目大意】一個(gè)矩陣?yán)镉泻芏喔褡?#xff0c;每個(gè)格子有兩種狀態(tài),可以放牧和不可以放牧,可以放牧用1表示,否則用0表示,在這塊牧場(chǎng)放牛,要求兩個(gè)相鄰的方格不能同時(shí)放牛,即牛與牛不能相鄰。問(wèn)有多少種放牛方案(一頭牛都不放也是一種方案)

【解析】根據(jù)題意,把每一行的狀態(tài)用二進(jìn)制的數(shù)表示,0代表不在這塊放牛,1表示在這一塊放牛。首先很容易看到,每一行的狀態(tài)要符合牧場(chǎng)的硬件條件,即牛必須放在能放牧的方格上。這樣就能排除一些狀態(tài)。另外,牛與牛之間不能相鄰,這樣就要求每一行中不能存在兩個(gè)相鄰的1,這樣也能排除很多狀態(tài)。然后就是根據(jù)上一行的狀態(tài)轉(zhuǎn)移到當(dāng)前行的狀態(tài)的問(wèn)題了。必須符合不能有兩個(gè)1在同一列(兩只牛也不能豎著相鄰)的條件。這樣也能去掉一些狀態(tài)。然后,上一行的所有符合條件的狀態(tài)的總的方案數(shù)就是當(dāng)前行該狀態(tài)的方案數(shù)。

【狀態(tài)表示】dp[state][i]:在狀態(tài)為state時(shí),到第i行符合條件的可以放牛的方案數(shù)

【狀態(tài)轉(zhuǎn)移方程】dp[state][i] =Sigma dp[state’][i-1] (state’為符合條件的所有狀態(tài))

【DP邊界條件】首行放牛的方案數(shù)dp[state][1] =1(state符合條件) OR 0 (state不符合條件)

【代碼】

#include <cstdio> #include <cstring> using namespace std; #define mod 100000000 int M,N,top = 0; int state[600],num[110]; int dp[20][600]; int cur[20]; inline bool ok(int x){if(x&x<<1)return 0;return 1; } void init(){top = 0;int total = 1 << N;for(int i = 0; i < total; ++i){if(ok(i))state[++top] = i;} } inline bool fit(int x,int k){if(x&cur[k])return 0;return 1; } inline int jcount(int x) {int cnt=0;while(x){cnt++;x&=(x-1);}return cnt; }int main(){while(scanf("%d%d",&M,&N)!= EOF){init();memset(dp,0,sizeof(dp));for(int i = 1; i <= M; ++i){cur[i] = 0;int num;for(int j = 1; j <= N; ++j){scanf("%d",&num);if(num == 0)cur[i] +=(1<<(N-j));}}for(int i = 1;i <= top;i++){if(fit(state[i],1)){dp[1][i] = 1;}}for(int i = 2; i <= M; ++i){for(int k = 1; k <= top; ++k){if(!fit(state[k],i))continue;for(int j = 1; j <= top ;++j){if(!fit(state[j],i-1))continue;if(state[k]&state[j])continue;dp[i][k] = (dp[i][k] +dp[i-1][j])%mod;}}}int ans = 0;for(int i = 1; i <= top; ++i){ans = (ans + dp[M][i])%mod;}printf("%d\n",ans);} }

【POJ1185】炮兵陣地–經(jīng)典狀壓DP

【題目大意】類(lèi)似于上面一道題,一個(gè)方格組成的矩陣,每個(gè)方格可以放大炮用0表示,不可以放大炮用1表示(原題用字母),讓放最多的大炮,大炮與大炮間不會(huì)互相攻擊。

【解析】可以發(fā)現(xiàn),對(duì)于每一行放大炮的狀態(tài),只與它上面一行和上上一行的狀態(tài)有關(guān),每一行用狀態(tài)壓縮的表示方法,0表示不放大炮,1表示放大炮,同樣的,先要滿(mǎn)足硬件條件,即有的地方不能放大炮,然后就是每一行中不能有兩個(gè)1的距離小于2(保證橫著不互相攻擊),這些要預(yù)先處理一下。然后就是狀態(tài)表示和轉(zhuǎn)移的問(wèn)題了,因?yàn)槭呛颓皟尚械臓顟B(tài)有關(guān),所以要開(kāi)個(gè)三維的數(shù)組來(lái)表示狀態(tài),當(dāng)前行的狀態(tài)可由前兩行的狀態(tài)轉(zhuǎn)移而來(lái)。即如果當(dāng)前行的狀態(tài)符合前兩行的約束條件(不和前兩行的大炮互相攻擊),則當(dāng)前行的最大值就是上一個(gè)狀態(tài)的值加上當(dāng)前狀態(tài)中1的個(gè)數(shù)(當(dāng)前行放大炮的個(gè)數(shù))

【狀態(tài)表示】dp[i][j][k] 表示第i行狀態(tài)為k,第i-1狀態(tài)為j時(shí)的最大炮兵個(gè)數(shù)。

【狀態(tài)轉(zhuǎn)移方程】dp[i][k][t] =max(dp[i][k][t],dp[i-1][j][k]+num[t]); num[t]為t狀態(tài)中1的個(gè)數(shù)

【DP邊界條件】dp[1][1][i] =num[i] 狀態(tài)i能夠滿(mǎn)足第一行的硬件條件(注意:這里的i指的是第i個(gè)狀態(tài),不是一個(gè)二進(jìn)制數(shù),開(kāi)一個(gè)數(shù)組保存二進(jìn)制狀態(tài))

【代碼】

#include <cstdio> #include <cstring> using namespace std; #define max(a,b) (a) > (b) ? (a) : (b)int N,M; char map[110][20],num[110],top; int stk[70],cur[110]; int dp[110][70][70];inline bool ok(int x){ //判斷該狀態(tài)是否合法,即不存在相鄰的1之間的距離小于3的if(x&(x<<1)) return 0;if(x&(x<<2)) return 0;return 1; } //找到所有可能的合法狀態(tài),最多60種 inline void jinit() {top=0;int i,total=1<<N;for(i=0;i<total;i++) if(ok(i)) stk[++top]=i; } //判斷狀態(tài)x是否與第k行匹配 inline bool fit(int x,int k) {if(cur[k]&x) return 0;return 1; } //數(shù)一個(gè)整型數(shù)x的二進(jìn)制中1的個(gè)數(shù)(用于初始化) inline int jcount(int x) {int cnt=0;while(x){cnt++;x&=(x-1);}return cnt; }int main(){while(scanf("%d%d",&M,&N) != EOF){if(N == 0 && M == 0)break;jinit();for(int i = 1; i <= M; ++i)scanf("%s",map[i]+1);for(int i = 1; i <= M; ++i)for(int j = 1; j <= N; ++j){cur[i]=0;for(j=1;j<=N;j++){if(map[i][j]=='H')cur[i]+=(1<<(j-1));}}memset(dp,-1,sizeof(dp));//初始化第一行狀態(tài)for(int i = 1;i <= top;i++){num[i]=jcount(stk[i]);if(fit(stk[i],1))dp[1][1][i]=num[i];}int i,t,j,k;for(i = 2;i <= M;i++){for(t = 1;t <= top;t++){if(!fit(stk[t],i)) continue;for(j = 1;j <= top;j++){if(stk[t]&stk[j])continue;for(k = 1;k <= top;k++){if(stk[t]&stk[k])continue;if(dp[i-1][j][k]==-1)continue;dp[i][k][t] =max(dp[i][k][t],dp[i-1][j][k]+num[t]);}}}}int ans = 0;for(i = 1; i <= M; ++i)for(j = 1; j <= top; ++j)for(k = 1; k <= top; ++k)ans = max(ans,dp[i][j][k]);printf("%d\n",ans);}return 0; }

【POJ3311】Hie With The Pie

【題目大意】類(lèi)似于TSP問(wèn)題,只是每個(gè)點(diǎn)可以走多次,比經(jīng)典TSP問(wèn)題不同的是要先用弗洛伊的預(yù)處理一下兩兩之間的距離。求最短距離。

【解析】可以用全排列做,求出一個(gè)最短的距離即可。或者用狀態(tài)壓縮DP.用一個(gè)二進(jìn)制數(shù)表示城市是否走過(guò)

【狀態(tài)表示】dp[state][i]表示到達(dá)i點(diǎn)狀態(tài)為state的最短距離

【狀態(tài)轉(zhuǎn)移方程】dp[state][i] =min{dp[state][i],dp[state’][j]+dis[j][i]} dis[j][i]為j到i的最短距離

【DP邊界條件】dp[state][i] =dis[0][i] state是只經(jīng)過(guò)i的狀態(tài)

【代碼】

#include<iostream> #define INF 100000000 using namespace std; int dis[12][12]; int dp[1<<11][12]; int n,ans,_min; int main() { //freopen("in.txt","r",stdin); while(scanf("%d",&n) && n) { for(int i = 0;i <= n;++i) for(int j = 0;j <= n;++j) scanf("%d",&dis[i][j]); for(int k = 0;k <= n;++k) for(int i = 0;i <= n;++i) for(int j = 0;j <=n;++j) if(dis[i][k] + dis[k][j]< dis[i][j]) dis[i][j] = dis[i][k] +dis[k][j]; for(int S = 0;S <= (1<<n)-1;++S)//枚舉所有狀態(tài),用位運(yùn)算表示 for(int i = 1;i <= n;++i) { if(S & (1<<(i-1)))//狀態(tài)S中已經(jīng)過(guò)城市i { if(S ==(1<<(i-1))) dp[S][i] =dis[0][i];//狀態(tài)S只經(jīng)過(guò)城市I,最優(yōu)解自然是從0出發(fā)到i的dis,這也是DP的邊界else//如果S有經(jīng)過(guò)多個(gè)城市 { dp[S][i] = INF; for(int j = 1;j <=n;++j) { if(S &(1<<(j-1)) && j != i)//枚舉不是城市I的其他城市 dp[S][i] =min(dp[S^(1<<(i-1))][j] + dis[j][i],dp[S][i]); //在沒(méi)經(jīng)過(guò)城市I的狀態(tài)中,尋找合適的中間點(diǎn)J使得距離更短} } } } ans = dp[(1<<n)-1][1] + dis[1][0]; for(int i = 2;i <= n;++i) if(dp[(1<<n)-1][i] + dis[i][0] < ans) ans = dp[(1<<n)-1][i] +dis[i][0]; printf("%d\n",ans); } return 0; }

【HDU3001】Traveling

【題目大意】10個(gè)點(diǎn)的TSP問(wèn)題,但是要求每個(gè)點(diǎn)最多走兩邊,不是只可以走一次,所以要用三進(jìn)制的狀態(tài)壓縮解決這個(gè)問(wèn)題。可以預(yù)處理每個(gè)狀態(tài)的第k位是什么。

【解析】和tsp問(wèn)題相同,類(lèi)似于上面那個(gè)題

【狀態(tài)表示】【狀態(tài)轉(zhuǎn)移方程】同上題,具體見(jiàn)代碼

【代碼】

#include <cstdio> #include <cstring> #define INF 0x1f1f1f1f //剛發(fā)現(xiàn)這里寫(xiě)0x1f1f1f跑的比0x1f1f1f1f差不多慢了一倍!Orz~ #define min(a,b) (a) < (b) ? (a) : (b) using namespace std;int N,M; int tri[12] ={0,1,3,9,27,81,243,729,2187,6561,19683,59049}; int dig[59050][11]; //dig[state][k_dig] 狀態(tài)state的第k位是多少 int edge[11][11],dp[59050][11];int main(){for(int i = 0; i < 59050; ++i){int t = i;for(int j = 1; j <= 10; ++j){dig[i][j] = t%3;t /= 3;if(t == 0)break;}}while(scanf("%d%d",&N,&M) != EOF){memset(edge,INF,sizeof(edge));int a,b,c;while(M --){scanf("%d%d%d",&a,&b,&c);if(c < edge[a][b])edge[a][b] = edge[b][a] = c;}memset(dp,INF,sizeof(dp));for(int i = 1; i <= N; ++i)dp[tri[i]][i] = 0;int ans = INF;for(int S = 0; S < tri[N+1]; ++S){int visit_all = 1;for(int i = 1; i <= N; ++i){if(dig[S][i] == 0)visit_all = 0;if(dp[S][i] == INF)continue;for(int j = 1; j <= N; ++j){if(i == j)continue;if(edge[i][j] == INF ||dig[S][j] >= 2)continue;int newS = S + tri[j];dp[newS][j] =min(dp[newS][j],dp[S][i] + edge[i][j]);}}if(visit_all){for(int j = 1; j <= N; ++j)ans = min(ans,dp[S][j]);}}if(ans == INF){puts("-1");continue;}printf("%d\n",ans);}return 0; }

【POJ2288】Islands and Bridge

【題目大意】求漢密爾頓的一道變形問(wèn)題,中間每個(gè)點(diǎn)有權(quán)值,關(guān)于最后得分的描述如下

Suppose there are n islands. The value of aHamilton path C1C2…Cn is calculated as the sum of three parts. Let Vi be thevalue for the island Ci. As the first part, we sum over all the Vi values foreach island in the path. For the second part, for each edge CiCi+1 in the path,we add the product ViVi+1. And for the third part, whenever three consecutiveislands CiCi+1Ci+2 in the path forms a triangle in the map, i.e. there is abridge between Ci and Ci+2, we add the product ViVi+1*Vi+2.

這題要求讓得分最高

【解析】發(fā)現(xiàn)每個(gè)點(diǎn)的狀態(tài)由前面兩個(gè)點(diǎn)確定,用DP(S,A,B)表示狀態(tài)為S時(shí),當(dāng)前到達(dá)A,而上一個(gè)點(diǎn)是B時(shí)的最大得分,這個(gè)狀態(tài)由DP(S’,B,C)通過(guò)從B走到A得到,S’=S-(1<<A),即S’狀態(tài)就是經(jīng)過(guò)B和C但不經(jīng)過(guò)A的一個(gè)狀態(tài),C是不同于A和B的一個(gè)點(diǎn)。

【狀態(tài)轉(zhuǎn)移】dp[S][A][B] =max(dp[S][A][B],dp[S’][B][C]+temp) 這里的temp指的是加上的得分即VbVa+Va,如果構(gòu)成三角關(guān)系(即A和C間有邊),temp就要再加上VbVa*Vc.

【邊界條件】DP((1<<A)+(1<<B),A,B)=Va+Vb+Va*Vb(A和B間有邊)表示

【代碼】

#include <cstdio> #include <cstring> using namespace std; const int MAXN = 13; const int MAX_S = 1<<(MAXN+1); long long dp[MAX_S][MAXN+1][MAXN+1]; long long way[MAX_S][MAXN+1][MAXN+1]; int edge[MAXN+1][MAXN+1]; long long V[MAXN+1];int N,M; int main(){int cas;scanf("%d",&cas);while(cas --){memset(edge,0,sizeof(edge));scanf("%d%d",&N,&M);for(int i = 1; i <= N; ++i)scanf("%d",&V[i]);if(N == 1){printf("%d 1\n",V[1]);continue;}int a,b;while(M --){scanf("%d%d",&a,&b);edge[a][b] = edge[b][a] = 1;}memset(dp,-1,sizeof(dp));memset(way,0,sizeof(way));int ii,jj;long long temp;for(int i = 1; i <= N; ++i)for(int j = 1; j <= N; ++j){if(i == j || !edge[i][j])continue;ii = 1<<(i-1);jj = 1<<(j-1);temp = V[i]+V[j]+V[i]*V[j];dp[ii+jj][i][j] = temp;way[ii+jj][i][j] = 1;}for(int S = 0; S < (1<<N); ++S)for(int i = 1; i <= N; ++i){if((S&(1<<(i-1))) == 0)continue;for(int j = 1; j <= N; ++j){if((S&(1<<(j-1))) ==0 || i == j || !edge[i][j])continue;for(int k = 1; k <= N; ++k){if(i == k || j == k ||(S&(1<<(k-1))) == 0)continue;int newS = S -(1<<(i-1));if(dp[newS][j][k] ==-1)continue;if(!edge[j][k])continue;temp =V[i]+V[i]*V[j]+dp[newS][j][k];if(edge[i][k])temp +=V[i]*V[j]*V[k];if(dp[S][i][j] < temp){dp[S][i][j] = temp;way[S][i][j] =way[newS][j][k]; //如果dp更新,way直接更新}//如果dp不更新,但dp=temp,way加上原來(lái)的值else if(temp ==dp[S][i][j])way[S][i][j] += way[newS][j][k];}}}long long ans = -1,num = 0;int p = (1<<(N)) - 1;for (int i = 1; i <= N; ++i)for (int j = 1; j <= N; ++j){if(i == j)continue;if (ans < dp[p][i][j]){ans = dp[p][i][j];num = way[p][i][j];}else if (ans == dp[p][i][j])num += way[p][i][j];}if(ans == -1){puts("0 0");continue;}printf("%lld %lld\n",ans,num/2);}return 0; }

【ZOJ4257】MostPowerful

【題目大意】不超過(guò)10種氣體,兩兩之間相互碰撞可以產(chǎn)生一定的能量,如a碰b,那么b氣體就消失,自身不能碰自身,問(wèn)最后所能得到的最大能量。

【題目解析】用10位二進(jìn)制表示氣體是否存在,0表示存在,1表示不存在,S(上一個(gè)狀態(tài))中的兩種氣體碰撞并且有一種消失,可以得到newS的狀態(tài)(狀態(tài)轉(zhuǎn)移)

【狀態(tài)表示】dp[state] 狀態(tài)為state時(shí)的最大能量

【轉(zhuǎn)移方程】dp[state] = max(dp[state],dp[state’]+a[i][j])

【邊界條件】dp[i] = 0;

【代碼】

#include <cstdio>#include <cstring>using namespace std;#define max(a,b) (a) > (b) ? (a) : (b)const int MAXN = 10;const int MAX_S = 1 << 10;int a[MAXN+1][MAXN+1];int dp[MAX_S];int N;int main(){while(scanf("%d",&N) != EOF){if(N == 0)break;for(int i = 0; i < N; ++i)for(int j = 0; j < N; ++j){scanf("%d",&a[i][j]);}memset(dp,0,sizeof(dp));int full = 1 << N;for(int s = 0; s < full; ++s){for(int i = 0; i < N; ++i){if((s&(1<<i)))continue;for(int j = 0; j < N; ++j){if(i == j)continue;if( (s&(1<<j)) )continue;int newS = s + (1<<j);dp[newS] = max(dp[newS],dp[s] + a[i][j]);}}}int ans = 0;for(int s = 0; s < full ; ++s)ans = max(ans,dp[s]);printf("%d\n",ans);}return 0;}

【POJ2411】Mondriaan’sDream

【題目大意】一個(gè)矩陣,只能放1*2的木塊,問(wèn)將這個(gè)矩陣完全覆蓋的不同放法有多少種。

【解析】如果是橫著的就定義11,如果豎著的定義為豎著的01,這樣按行dp只需要考慮兩件事兒,當(dāng)前行&上一行,是不是全為1,不是說(shuō)明豎著有空(不可能出現(xiàn)豎著的00),另一個(gè)要檢查當(dāng)前行里有沒(méi)有橫放的,但為奇數(shù)的1。

【狀態(tài)表示】dp[state][i]第i行狀態(tài)為state時(shí)候的方案數(shù)

【轉(zhuǎn)移方程】dp[state][i] += dp[state’][i-1] state’為i-1行的,不與i行狀態(tài)state沖突的狀態(tài)

【邊界條件】第一行 符合條件的狀態(tài)記為1 即dp[state][0] = 1;

【代碼】

#include <cstdio>#include <cstring>using namespace std;int M,N;long long dp[1<<11][11];bool kexing[1<<11];int full;inline bool check(int in){int bit=0;while(in>0){if( (in&1)==1)bit++;else{if( (bit&1)==1)return false;bit=0;}in>>=1;}if( (bit&1)==1)return false;return true;}inline bool check2(int x1,int x2){if( (x1|x2)!= full-1 ) //如果這里不用位運(yùn)算,時(shí)間很長(zhǎng),要用約3000MSreturn false;return kexing[x1&x2];}int main(){full = 1<<11;for(int s = 0; s < full; ++s)if(check(s))kexing[s] = 1;while(scanf("%d%d",&M,&N) != EOF){if(N == 0 && M == 0)break;memset(dp,0,sizeof(dp));full = 1<<N;for(int s = 0; s < full; ++s){if(kexing[s])dp[s][0] = 1;}for(int i = 1; i < M; ++i){for(int s = 0; s < full; ++s){for(int s1 = 0; s1 < full; ++s1){if(!check2(s1,s))continue;//if(dp[s1][i-1] == 0)continue; /*這一步判斷的時(shí)間要大于位運(yùn)算和+=的時(shí)間,如果先把這一步放在check2前面,1300多MS,如果放在check2后面,610多MS,如果不加這一步,560MS,但如果check2用的不是位運(yùn)算,將這一步加在check2前面3000MS左右(水過(guò)),如果不加這一步,TLE*/dp[s][i] += dp[s1][i-1];}}}int S = (1<<N) - 1;printf("%lld\n",dp[S][M-1]);}return 0;}

【HDU3681】PrisonBreak 狀態(tài)壓縮DP+BFS+二分答案

2010杭州賽區(qū)的題目,以現(xiàn)在的水平遇到這種題也就能想一下,賽場(chǎng)上動(dòng)手寫(xiě)這個(gè)題是不會(huì)的。前天做狀壓DP的時(shí)候又看到這個(gè)題,沒(méi)想起來(lái)怎么做,昨天看了一下解題報(bào)告開(kāi)始下手,遇到了各種問(wèn)題。調(diào)試了N久,終于過(guò)了。

【題目大意】機(jī)器人從F出發(fā),走到G可以充電,走到Y(jié)關(guān)掉開(kāi)關(guān),D不能走進(jìn),要求把所有開(kāi)關(guān)關(guān)掉,且電量最少,并求出該最小電量。

【題目解析】機(jī)器人從出發(fā)點(diǎn)出發(fā)要求走過(guò)所有的Y,因?yàn)辄c(diǎn)很少,所以就能想到經(jīng)典的TSP問(wèn)題(起初我也想到了),但關(guān)于G點(diǎn)(不要YY)能充電的問(wèn)題不知道怎么辦,看了下解題報(bào)告才知道。G點(diǎn)可以充電,到達(dá)G點(diǎn)就把當(dāng)前能量更新為電池容量然后繼續(xù)走。因?yàn)槊總€(gè)G點(diǎn)只能充一次電,這就好像TSP中的每個(gè)點(diǎn)只能走一次一樣(G和Y都可以走多次,但走到G充電后,該點(diǎn)就變?yōu)榱薙,而走到Y(jié)關(guān)上開(kāi)關(guān)以后,Y也變成了S。這是一個(gè)很巧妙地想法,所以要求Y點(diǎn)只能關(guān)一次開(kāi)關(guān),G點(diǎn)只能充一次電,這就是TSP了。Orz賽場(chǎng)上可以秒殺這題的大神們),然后就是二分答案了,用狀壓DP判定當(dāng)前電池容量的情況下是否能符合條件。

【狀態(tài)表示】dp[s][i]表示到達(dá)當(dāng)前i點(diǎn)狀態(tài)為s時(shí)最大的剩余的能量

【轉(zhuǎn)移方程】同TSP問(wèn)題了

【邊界條件】dp[1<<sid][sid] = rongliang.即出發(fā)點(diǎn)的能量就是電池容量

【代碼】:

#include <cstdio>#include <cstring>#include <cmath>#include <queue>using namespace std;#define INF 0x1f1f1f1fint dp[32769][16];int dist[16][16][16][16];int di[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};int M,N,sid,nCnt,FinalState;char map[16][16];struct node{int x,y;node(){}node(int _x,int _y):x(_x),y(_y){}}nodes[16];inline void BFS(node start){queue<node> que;int sx = start.x,sy = start.y;dist[sx][sy][sx][sy] = 0;que.push(start);node cur;while(!que.empty()){cur = que.front();que.pop();int x = cur.x,y = cur.y,tx,ty;for(int i = 0; i < 4; ++i){tx = x + di[i][0];ty = y + di[i][1];if(tx < 0 || tx >= M || ty < 0 || ty >= N || map[tx][ty] == 'D')continue;if(dist[sx][sy][tx][ty] == -1){dist[sx][sy][tx][ty] = dist[sx][sy][x][y] + 1;que.push(node(tx,ty));}}}}inline bool ok(int s,int t){ //s狀態(tài)中走過(guò)所有t狀態(tài)中的城市if(((s&t)&t) == t)return 1;return 0; } inline bool check(int step){ int res = -1; memset(dp,-1,sizeof(dp)); dp[1<<sid][sid] = step; int full = 1<<nCnt; for(int s = 0; s < full; ++s){for(int i = 0; i < nCnt; ++i){ if((s&(1<<i)) == 0 || dp[s][i] == -1)continue; if(ok(s,FinalState))res = max(res,dp[s][i]); for(int j = 0; j < nCnt; ++j){ int temp = dist[nodes[i].x][nodes[i].y][nodes[j].x][nodes[j].y]; if(i == j || temp == -1 || (s&(1<<j)))continue; temp = dp[s][i] - temp; if(temp < 0)continue; int newS = s + (1<<j); dp[newS][j] = max(dp[newS][j],temp); if(map[nodes[j].x][nodes[j].y] == 'G')dp[newS][j] = step;}}}if(res < 0)return 0;return 1;}inline int solve(){int low = 0,high = 300;int mid;while(low <= high){mid = (low+high)/2;if(check(mid))high = mid-1;else low = mid+1;}if(low == 301)return -1;return low;}int main(){while(scanf("%d%d",&M,&N) != EOF){if(M == 0 && N == 0)break;nCnt = 0;FinalState = 0;for(int i = 0; i < M; ++i){scanf(" %s",map[i]);for(int j = 0; j < N; ++j){if(map[i][j] == 'F'){sid = nCnt;nodes[nCnt++] = node(i,j);FinalState += (1<<sid);}else if(map[i][j] == 'G')nodes[nCnt++] = node(i,j);else if(map[i][j] == 'Y'){int tid = nCnt;nodes[nCnt++] = node(i,j);FinalState += (1<<tid);}}}memset(dist,-1,sizeof(dist));for(int i = 0; i < nCnt; ++i)BFS(nodes[i]);int ans = solve();printf("%d\n",ans);}return 0;}

總結(jié)

以上是生活随笔為你收集整理的状态压缩DP(大佬写的很好,转来看)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

一 级 黄 色 片免费看的 | 国产午夜精品视频 | 久久免费视频这里只有精品 | 99精品热 | 国产精品电影在线 | 成人免费网站在线观看 | 又色又爽的网站 | 国产精品午夜免费福利视频 | 国产黄影院色大全免费 | 久久国产精品一区二区三区 | 成人97人人超碰人人99 | 手机版av在线 | 日韩国产欧美在线视频 | 久久免费视频精品 | 天天干天天射天天操 | 欧美另类v | 99久久日韩精品免费热麻豆美女 | 亚洲免费公开视频 | 成人在线免费视频 | 国内精品久久久久影院一蜜桃 | av看片在线观看 | 黄色片网站av | 99爱在线观看 | 天天爱天天操天天爽 | 激情久久一区二区三区 | 欧洲一区二区三区精品 | 中文在线免费观看 | 久草在线手机观看 | 三级av免费看 | 亚洲一区在线看 | 色婷婷亚洲婷婷 | 九九在线视频 | 久久一区国产 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产日韩欧美综合在线 | 草樱av| 久久久久国产一区二区三区四区 | 国产精品成人免费精品自在线观看 | 天天综合网天天综合色 | 97在线影视| 狠狠干狠狠久久 | 色噜噜狠狠狠狠色综合久不 | 在线欧美a | 夜夜干天天操 | 久久电影国产免费久久电影 | 色多多在线观看 | 国产对白av | 欧美激情视频一区二区三区 | 成人免费xxx在线观看 | 免费视频一区 | 久久精品一二三 | av黄色免费在线观看 | 国产在线播放不卡 | 亚洲男模gay裸体gay | 六月丁香婷婷网 | 色婷婷久久久综合中文字幕 | av三级在线播放 | 色综合夜色一区 | 国产原创在线观看 | 激情五月播播久久久精品 | 久久免费精彩视频 | 五月激情六月丁香 | www.狠狠 | 日日天天狠狠 | 免费观看www小视频的软件 | 亚洲在线观看av | 在线精品视频免费播放 | 日韩欧美综合视频 | 国产在线小视频 | 黄色大片日本免费大片 | 国产美女视频 | 久草av在线播放 | 国产精品久久久久久久久久久久久 | 玖玖视频精品 | 国产成人一区二区精品非洲 | 又湿又紧又大又爽a视频国产 | 久久五月天色综合 | 99热国内精品 | 亚洲国产网址 | 97影视| av在线播放网址 | 激情五月婷婷激情 | 国产一区在线视频观看 | 五月天高清欧美mv | 伊人婷婷久久 | 天天精品视频 | 奇米网777| 97狠狠干| 97成人超碰 | 国产成人福利片 | 91精品视频导航 | 欧美少妇xxxxxx | 日日射av | 奇米影音四色 | 美女视频黄免费的 | 青青河边草观看完整版高清 | 91亚洲影院| 亚洲视频久久 | 探花视频免费观看 | 国产一区自拍视频 | 国产一区在线视频播放 | 91在线看视频免费 | 国产一级淫片在线观看 | 99久久久久成人国产免费 | 在线观看激情av | 日韩理论电影网 | 日韩精选在线 | 国产成人久久精品77777综合 | 国产精品一区二区麻豆 | www.在线观看av | 精品一区二区三区在线播放 | 视频在线观看99 | 欧美黄污视频 | 欧美三人交 | 天天干天天干天天射 | 日韩av免费在线电影 | 99热在线国产精品 | 中文字幕色在线 | 国色综合| 青春草国产视频 | 久久男人影院 | 米奇影视7777 | 色综合久久综合中文综合网 | 92精品国产成人观看免费 | 婷婷亚洲五月色综合 | 精品中文字幕在线播放 | 精品免费一区 | 深爱婷婷久久综合 | 国产99久久久久 | 一区二区 不卡 | av中文字幕在线免费观看 | 精品久久一二三区 | 久久,天天综合 | 中文字幕国内精品 | 国产精品毛片久久久久久久久久99999999 | 欧美日韩国产mv | 午夜av大片| 精品主播网红福利资源观看 | 日本夜夜草视频网站 | 亚洲视频久久久久 | 国产精品毛片一区视频 | 久久综合免费 | 精品国产自在精品国产精野外直播 | 欧美国产日韩一区二区三区 | 天堂网一区二区三区 | 亚洲高清国产视频 | 亚洲国产精品一区二区尤物区 | 开心激情婷婷 | 久久国产精品成人免费浪潮 | 欧美精品网站 | 偷拍精偷拍精品欧洲亚洲网站 | 欧美日韩在线观看一区二区三区 | 超碰人人在线观看 | 最新久久免费视频 | 亚洲最新av在线网站 | 九九热精品视频在线观看 | 国产精品一区二区av影院萌芽 | 中文字幕字幕中文 | 天天天在线综合网 | 999成人国产| 在线草| 欧美日韩国产色综合一二三四 | 黄在线免费看 | 色在线国产 | 97超碰人人澡人人 | 亚洲综合视频在线 | 久久1区| 激情小说 五月 | 久久精品直播 | 在线91av | 麻豆一区在线观看 | 亚洲六月丁香色婷婷综合久久 | 五月婷婷激情综合 | 探花视频免费在线观看 | 2019av在线视频 | 亚洲综合激情 | 久久久资源 | 97超级碰碰碰碰久久久久 | 999视频网| 高清av免费看 | 亚洲资源| 中文字幕高清在线 | 贫乳av女优大全 | 99在线视频免费观看 | 字幕网资源站中文字幕 | 美女网站视频一区 | 久久精品99国产国产精 | 久久精品这里都是精品 | 国产精品一区二区你懂的 | 人人爽久久久噜噜噜电影 | 色资源网免费观看视频 | 97av视频| 91久久精品一区 | 黄色网大全| 精品女同一区二区三区在线观看 | 最近高清中文字幕在线国语5 | 91cn国产在线 | 天天色播 | 亚洲欧洲av在线 | 99精品美女| 中文字幕国产一区二区 | 亚洲第一伊人 | 一级α片免费看 | 国产香蕉av | 久久婷综合 | 九九热免费视频在线观看 | 久久精品视频在线看 | 最近更新好看的中文字幕 | 久久综合免费视频影院 | 婷婷视频导航 | av三级在线看 | 亚洲精选国产 | 在线v片免费观看视频 | 日韩一区二区三区免费电影 | 色伊人网 | 亚洲最新在线 | 欧美日韩国产在线 | www.黄色片网站 | 国产三级午夜理伦三级 | 欧美成人按摩 | 日本一区二区三区视频在线播放 | 国产一区网址 | 狠狠色丁香久久综合网 | 9797在线看片亚洲精品 | 日韩69av | 91在线一区二区 | 国产精品永久免费视频 | 手机在线观看国产精品 | 欧美日韩另类视频 | 色www精品视频在线观看 | 色综合久久五月 | 97精品国产97久久久久久春色 | www.888av| 日韩高清www | 日韩精品网址 | 91麻豆精品国产91久久久无需广告 | 精品一区二区电影 | 337p日本大胆噜噜噜噜 | 中文字幕亚洲字幕 | 久久久资源 | 国产精品一区二区美女视频免费看 | 狠狠狠狠狠狠天天爱 | 国产一级二级三级在线观看 | 97手机电影网| 最近日韩中文字幕中文 | 波多野结衣在线观看一区二区三区 | 激情综合网天天干 | 九九九热 | 麻豆成人网 | 天天干天天干天天干天天干天天干天天干 | 亚洲成av人影院 | 中文字幕欧美日韩va免费视频 | 久久午夜国产 | 亚洲精品午夜久久久久久久久久久 | 麻豆影视在线免费观看 | 成人av日韩| av成人黄色 | 国产成人精品亚洲日本在线观看 | 中文字幕免费一区 | 香蕉在线视频观看 | av免费高清观看 | 婷婷色 亚洲 | 国产在线精品一区二区不卡了 | 一区二区视频播放 | 日韩色爱 | 999男人的天堂 | 久久在现视频 | 精品在线观看一区二区三区 | 国产香蕉视频在线播放 | 免费午夜在线视频 | 高清美女视频 | 欧美爽爽爽 | 日本精品视频在线观看 | 国产精品女主播一区二区三区 | 欧美在线1 | 黄色一级大片免费看 | 精品一区 在线 | 三级黄色片在线观看 | 最新成人av | 亚州av网站 | 激情 一区二区 | 免费在线观看黄色网 | 色多多视频在线 | 91麻豆精品国产91久久久使用方法 | 亚洲人成综合 | 久久精品国产一区二区 | 丁香综合五月 | 国产精品99精品 | 欧美一级乱黄 | 久久国产成人午夜av影院潦草 | 久久精品99国产精品亚洲最刺激 | 日韩欧美在线观看一区二区三区 | 国产成人黄色网址 | 欧美精品乱码久久久久 | 六月天综合网 | 国产欧美精品一区二区三区四区 | 中文字幕在线影视资源 | 综合色狠狠 | www.com.日本一级 | 亚洲国产经典视频 | 国产精品一区二区视频 | 日韩欧美中文 | 97在线观看免费高清完整版在线观看 | 在线观看aaa | 国产精品91一区 | 国产亚洲人 | 美女网站视频免费都是黄 | 丝袜精品视频 | 新版资源中文在线观看 | 国产网红在线观看 | 91福利小视频 | 99性视频| 久久99国产综合精品 | 欧美国产日韩激情 | 日韩超碰在线 | 成人欧美亚洲 | 成人av av在线| 国产精品久久99精品毛片三a | 高清av不卡 | 午夜18视频在线观看 | 日韩精品欧美视频 | 国产盗摄精品一区二区 | 国产成人免费在线观看 | 欧美日韩免费视频 | 成人国产电影在线观看 | 久久艹久久 | 亚洲综合在线观看视频 | 国产专区视频 | 亚洲v欧美v国产v在线观看 | 国产成人a亚洲精品 | 九九九九九国产 | 中文字幕av一区二区三区四区 | 欧美日韩1区2区 | 欧美日韩精品在线免费观看 | 高潮毛片无遮挡高清免费 | 能在线观看的日韩av | 国产精品1区2区3区 久久免费视频7 | 中文字幕电影高清在线观看 | 一区二区三区 亚洲 | 四虎精品成人免费网站 | 九色视频网址 | 国内久久精品 | 久久成视频 | 国产精品18久久久久久vr | www黄色软件 | 成人在线一区二区三区 | 久久久久高清 | 久久久久亚洲精品 | 最新色视频 | 日本中文字幕在线一区 | 亚洲日本中文字幕在线观看 | av一级片网站 | 99精品国产视频 | 丁香婷婷综合激情五月色 | 久久99精品国产麻豆宅宅 | 日韩中文字幕视频在线观看 | av成人免费网站 | 五月婷婷在线视频观看 | 久久人人射 | 婷婷四房综合激情五月 | 成人午夜在线观看 | www.五月婷婷 | 久久不射电影网 | avav片| 午夜国产一区二区三区四区 | 国产亚洲小视频 | 免费高清在线观看成人 | 中文字幕在线观看第二页 | 国产录像在线观看 | 国内精品久久久久久久久 | 亚洲精欧美一区二区精品 | 中文字幕在线观看免费观看 | 亚洲 综合 激情 | 99热只有精品在线观看 | 中文字幕人成人 | 夜添久久精品亚洲国产精品 | 91视频在线观看免费 | 婷婷伊人综合 | 人人干在线观看 | 激情av在线资源 | 天天插视频| 亚洲情影院 | 久久中文网 | 成人黄色大片在线免费观看 | 少妇bbr搡bbb搡bbb| 亚洲成人av一区 | 亚洲精品在线一区二区三区 | 欧美精品黑人性xxxx | 999在线观看视频 | 久久久亚洲精品 | 青青河边草手机免费 | 亚洲伦理电影在线 | 久久久九九 | 日韩精品欧美专区 | 精品久久福利 | 亚洲免费专区 | av在线播放观看 | 国产尤物在线观看 | 国产精品久久视频 | 2021国产在线视频 | 久久久久国产精品厨房 | 成人a v视频| 婷婷香蕉 | 国产一区免费在线 | 狠狠狠色丁香综合久久天下网 | 国产成人久| 成人丝袜 | 日韩伦理片一区二区三区 | 日韩在线观看你懂得 | 五月婷网| 欧美一区二区在线看 | 午夜精品久久久久久中宇69 | 依人成人综合网 | 亚洲精品乱码久久久久v最新版 | 成人午夜电影在线播放 | 亚洲精品国偷拍自产在线观看 | 日本精品中文字幕 | 免费av看片| 国产精品亚洲人在线观看 | 久久亚洲欧美日韩精品专区 | 久久艹人人 | 欧美一级视频免费 | 久久精品高清视频 | 97超级碰碰碰碰久久久久 | 国模吧一区 | 亚洲禁18久人片 | 久久9999久久 | 手机在线看片日韩 | 日本精品视频在线播放 | 国产手机在线观看视频 | 黄色在线看网站 | 人人爽人人 | 欧美日韩精品在线免费观看 | 天天干天天射天天爽 | 精品久久综合 | 亚洲a网 | 色播六月天 | 在线观看视频你懂得 | 99日韩精品 | 午夜国产一区二区三区四区 | 欧美片一区二区三区 | 中文网丁香综合网 | 色88久久| 色婷婷狠狠操 | 久久三级毛片 | 午夜在线观看影院 | 香蕉色综合 | 97精品超碰一区二区三区 | 国产无遮挡猛进猛出免费软件 | 美女黄濒 | 黄色福利视频网站 | 中文字幕不卡在线88 | japanesexxxhd奶水| 久久免费看a级毛毛片 | 国产午夜精品一区二区三区欧美 | 在线播放一区 | 久久综合色播五月 | 最新av观看| 国产又黄又硬又爽 | 中文字幕av免费观看 | 狠狠激情中文字幕 | 成人av直播 | 日本在线观看一区二区 | 亚洲激情视频在线 | 久久天堂影院 | 欧美日韩国产在线精品 | 欧美一性一交一乱 | 免费无遮挡动漫网站 | 久久久免费电影 | 91精品啪在线观看国产线免费 | 亚洲日日日 | 丰满少妇在线观看资源站 | 中文字幕国产视频 | 国产精品福利在线观看 | 福利片视频区 | 成人午夜片av在线看 | 国产精品久久久久久妇 | 午夜狠狠干 | 国产亚洲在线观看 | 日韩av不卡在线观看 | 久久视频这里只有精品 | 日韩中文字幕免费在线观看 | 日本久热| 久久久免费观看完整版 | 午夜精品成人一区二区三区 | 国产色在线,com | 国产精品6999成人免费视频 | 五月天亚洲综合小说网 | 丁香色婷 | 免费高清无人区完整版 | 亚洲无吗天堂 | 91成人精品 | 激情丁香月 | 中字幕视频在线永久在线观看免费 | 人人爽人人爽人人 | 日日天天av | 欧美日韩不卡一区二区 | 国产很黄很色的视频 | 97伊人网| 欧洲视频一区 | 国产精品99久久久久久武松影视 | 亚洲人成人在线 | 中文字幕乱码电影 | 色就色,综合激情 | 国产人在线成免费视频 | 91av99| 激情av一区二区 | 国产成人精品av在线 | 亚洲国产精品成人综合 | 日韩区欠美精品av视频 | 久久综合九色综合欧美狠狠 | 国产精品久久99综合免费观看尤物 | 91av电影在线 | 婷婷精品在线视频 | 久久成人午夜 | 黄污视频网站大全 | 国产精品18久久久久久久久久久久 | 免费在线激情视频 | 国产这里只有精品 | 国产精品视频免费在线观看 | 精品国产色 | 国产亲近乱来精品 | av一级片在线观看 | 日韩成年视频 | 在线导航av| 日韩精品一区二区三区免费视频观看 | 99精品视频免费观看视频 | 亚洲电影影音先锋 | 亚洲国产日韩精品 | 深夜激情影院 | 久久精品综合 | 亚洲一区二区三区在线看 | 欧美乱码精品一区 | 玖玖在线视频观看 | 亚洲成成品网站 | 四虎成人精品永久免费av | 亚洲精品国产麻豆 | 日韩欧美网址 | 深夜福利视频在线观看 | 亚洲精品在线播放视频 | 全黄网站| 人人超碰免费 | 午夜视频免费在线观看 | 亚洲一区二区三区在线看 | 国产伦精品一区二区三区免费 | 91热视频 | 国产精品激情 | 啪啪小视频网站 | 在线v| 91精品999| 久久黄色免费视频 | 日本一区二区三区免费观看 | 精品国产精品一区二区夜夜嗨 | 超碰999| 五月婷婷中文网 | 久久精品成人热国产成 | 激情视频久久 | 国产精品黄 | 91日韩在线视频 | 日韩欧美大片免费观看 | 日韩av在线资源 | 国产精品国产自产拍高清av | 成人免费在线观看电影 | 日韩av免费在线看 | 国产精品99久久久久久人免费 | 午夜久久精品 | 国产精品一码二码三码在线 | 日韩在线视频免费观看 | 久久精品女人毛片国产 | 国产精品久久久99 | 美女黄频在线观看 | 日韩在线网 | 7799av| 在线免费观看国产精品 | 在线观看免费日韩 | 免费在线一区二区三区 | 午夜久久久久久久久久久 | 国产成人av一区二区三区在线观看 | 色吊丝在线永久观看最新版本 | 国产精品一区二区白浆 | 五月婷婷六月丁香 | 国产伦理久久精品久久久久_ | 久久久精品网 | 欧美另类调教 | 天天爽天天搞 | 国产精品女人久久久 | 日韩精品久久一区二区三区 | 激情av在线资源 | 福利一区二区在线 | 一个色综合网站 | 久久久久久不卡 | 狠狠躁夜夜a产精品视频 | 天天综合网久久综合网 | 日韩精品无码一区二区三区 | 中文在线8新资源库 | 精品欧美小视频在线观看 | 国产在线2020 | 久久一视频 | 97人人添人澡人人爽超碰动图 | 婷婷婷国产在线视频 | 国产精品亚洲片夜色在线 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 五月在线 | 国产一区二区视频在线播放 | 久青草电影 | 丁香 婷婷 激情 | 成人欧美一区二区三区在线观看 | 精品国产一区二区三区av性色 | 国产又粗又猛又爽又黄的视频先 | 欧美日韩高清在线一区 | 狠狠色丁香婷婷综合久久片 | 一区二区三区免费看 | 超碰在线天天 | 91资源在线 | 日韩av资源站 | 激情欧美一区二区三区免费看 | 亚洲精品国产精品国自产在线 | 色综合天天综合 | 黄色亚洲片| 久久久久激情 | 中文字幕在线观看免费观看 | 国产精品中文字幕在线观看 | 国产一级免费在线 | 成人免费视频播放 | 在线观看国产一区二区 | 久青草视频在线观看 | 国产一区二区在线免费播放 | 天堂v中文| 欧美色图视频一区 | 国产成人精品一区二区三区 | 天堂在线v| 日韩视频 一区 | 91爱爱中文字幕 | 亚洲激色 | 免费看的黄网站 | 成人毛片一区 | 在线看片成人 | 久久精品视频免费播放 | 麻豆果冻剧传媒在线播放 | 亚洲欧美观看 | 日韩在线视频播放 | 国产亚洲精品久久久网站好莱 | 国产一区精品在线观看 | 日韩啪啪小视频 | 成年人免费看片 | 欧美成人a在线 | 日韩 精品 一区 国产 麻豆 | 中文字幕免费高清在线观看 | 狠狠躁日日躁夜夜躁av | 中文字幕精品www乱入免费视频 | 日韩专区在线播放 | 最近2019中文免费高清视频观看www99 | www操操| 国产精品精品国产 | 亚洲国产无| 黄网站色视频免费观看 | www.伊人网 | 亚洲精品福利视频 | 麻豆视频观看 | 天天天色综合 | 人人插人人澡 | 美女福利视频网 | 99在线观看免费视频精品观看 | 91精品国产99久久久久久红楼 | 特级毛片aaa | 深爱激情站 | 久久久久国产精品免费 | 欧美伦理电影一区二区 | 91免费日韩| 国产精品久久久久久久久久三级 | 日韩偷拍精品 | 国产精品大尺度 | 草在线| 免费av福利| 日韩精品一区二区三区不卡 | 亚洲国产中文字幕在线观看 | 六月色丁香 | 亚洲国产精品激情在线观看 | 久草视频资源 | 久久综合五月婷婷 | 欧洲在线免费视频 | 日韩在线不卡 | 美女av免费看 | 国产一级在线观看视频 | 丝袜少妇在线 | 欧美激情综合色综合啪啪五月 | 黄色小说在线观看视频 | 国产1级毛片 | 久久婷婷网 | 色婷婷综合久色 | 黄a网| 亚洲精品日韩av | 欧美日韩一区久久 | 国产精品美女久久久久久免费 | 99国产免费网址 | 99精品热视频只有精品10 | 久久久久久国产一区二区三区 | 欧美一级电影在线观看 | 国产成人在线一区 | 欧美日韩一区二区三区免费视频 | 天天综合入口 | 欧美性视频网站 | 成人黄色在线 | 97超碰国产精品女人人人爽 | 人人爽人人射 | 国内精自线一二区永久 | 精品理论片 | 国产日韩欧美视频在线观看 | 丁香花中文在线免费观看 | 黄色软件在线观看 | 日韩乱色精品一区二区 | 国产精品9999久久久久仙踪林 | 久草在线视频首页 | 久草免费在线观看视频 | 国产精品第十页 | 欧美一级免费黄色片 | 免费观看第二部31集 | 激情偷乱人伦小说视频在线观看 | 久久av免费电影 | 色小说av| 日韩电影在线看 | 深爱综合网 | 在线亚洲欧美视频 | 日韩精品免费一区二区三区 | 精品国产1区 | 天天天天天干 | 黄色小说视频在线 | 日韩免费一区二区在线观看 | 91人网站| 精品在线一区二区三区 | 97看片网 | 99久久9 | 久久久影视| 五月婷婷欧美 | 久久资源在线 | 久久综合九色综合久久久精品综合 | 精品影院 | 国产91勾搭技师精品 | 欧美成人视 | 久久毛片高清国产 | 久久久精华网 | 国内精品福利视频 | 欧美一进一出抽搐大尺度视频 | 色中色资源站 | 国产最新在线 | 最新中文在线视频 | 五月网婷婷| 国产成人av在线影院 | 亚洲国产午夜精品 | 午夜少妇一区二区三区 | 亚州天堂 | 九九热在线视频 | 最新中文字幕在线资源 | 免费网站看v片在线a | 最近高清中文在线字幕在线观看 | 欧美激情视频一区二区三区免费 | av视屏在线播放 | 国产在线观看地址 | 九九久久婷婷 | 国产精品日韩久久久久 | 中文字幕 第二区 | 日韩字幕在线观看 | 欧美日韩中文字幕综合视频 | 久久成熟| 天天干天天干天天干天天干天天干天天干 | 久久精品激情 | 嫩小bbbb摸bbb摸bbb | 手机在线观看国产精品 | 国产在线视频在线观看 | 蜜臀av免费一区二区三区 | 久久美女视频 | 夜夜躁狠狠躁日日躁视频黑人 | 在线国产91| 色综合久久88色综合天天 | 国产精品第十页 | 97av视频在线 | 国产美女精品视频免费观看 | 欧美一级电影片 | 亚洲成年人在线播放 | 国产精品女同一区二区三区久久夜 | 黄色网www| 69成人在线 | 丁香五香天综合情 | 久久99久久久久 | 五月天久久综合网 | 亚洲久草在线 | 伊人久久国产精品 | 一区二区不卡视频在线观看 | 在线观看黄网站 | 美女视频黄在线 | 久久久久激情电影 | 91久久精品一区二区三区 | 中文字幕国产一区 | 成人av在线亚洲 | 日韩av成人在线 | 久久久国产一区二区三区 | 精品自拍av | 日韩理论在线视频 | 91麻豆精品国产自产 | 一本色道久久综合亚洲二区三区 | 高清一区二区三区av | 夜夜干天天操 | 国产精品免费看久久久8精臀av | 欧美精品久久久久久久久久白贞 | 久久久久国产免费免费 | 日韩小视频网站 | 激情欧美丁香 | av一级片网站| 中文字幕在线视频网站 | 久久综合狠狠综合久久综合88 | 亚洲欧美国产精品va在线观看 | 国产不卡在线看 | 天天操夜夜曰 | 国产综合精品一区二区三区 | 黄色一级大片免费看 | 婷婷丁香在线 | 麻豆视频在线观看免费 | 国产电影一区二区三区四区 | 免费三级黄色片 | 国产一区二区高清不卡 | 国产精品视频永久免费播放 | 日本三级人妇 | 欧美亚洲三级 | 国产黄色网 | 久久久电影网站 | 久久精品久久久精品美女 | 欧美在线aaa| 精品高清视频 | 久久国产精品久久精品 | 免费人成网 | av高清网站在线观看 | 天天操天天摸天天爽 | av免费在线网站 | 国产999免费视频 | 96精品高清视频在线观看软件特色 | 亚洲最大av | 中文字幕高清 | 国产a精品 | a级国产乱理论片在线观看 伊人宗合网 | 国产福利精品视频 | 婷婷精品| 欧美日韩高清一区二区 | 久久久午夜剧场 | 婷婷九月丁香 | 精品久久久影院 | 91麻豆国产| 国产成人精品一区二区三区福利 | 久久天天躁狠狠躁亚洲综合公司 | 亚洲精品tv久久久久久久久久 | 午夜精品中文字幕 | 国产精品综合在线观看 | 久久国产精品系列 | 三级性生活视频 | 欧美日韩亚洲第一页 | 成年人毛片在线观看 | 四虎免费在线观看视频 | 人成电影网 | 一区二区三区在线影院 | 成人试看120秒 | 国内视频 | 日韩欧美第二页 | 久久精品一区二区三区国产主播 | 欧美日韩亚洲一 | 91视频高清| 在线免费观看一区二区三区 | 国产成人精品久久二区二区 | 国产特级毛片aaaaaa | 亚洲九九| 精品国产伦一区二区三区观看方式 | 涩涩网站在线看 | 在线观看www视频 | av成人在线播放 | 丁香高清视频在线看看 | 香蕉视频在线免费 | 欧美一区免费在线观看 | 91av电影在线 | 亚洲国产无| 久久久久久久精 | 99久视频| 一区二区三区在线免费 | 国产高清日韩欧美 | 久久综合综合久久综合 | 91中文字幕在线播放 | 国产免费黄色 | 国产在线传媒 | 国产一区二区在线免费观看 | 一区 二区电影免费在线观看 | 中文字幕色站 | 欧美亚洲国产一卡 | 一区二区三区精品在线视频 | 婷婷资源站| 97在线视频网站 | 国产日产精品久久久久快鸭 | 久草精品视频在线播放 | 日韩精品在线视频免费观看 | www免费黄色| 丁香视频 | 91成人精品视频 | 黄色三级网站在线观看 | 五月婷婷中文字幕 | 日韩一区二区三区免费电影 | 成人在线视频一区 | 日韩r级电影在线观看 | 97超在线 | 蜜桃麻豆www久久囤产精品 | 成人97视频一区二区 | 成年人网站免费观看 | 亚洲成aⅴ人在线观看 | 黄色片网站av | 国产精品手机视频 | 国精产品999国精产品视频 | 精品久久久国产 | 天天射天天操天天 | 午夜影视av | 成人网在线免费视频 | 久久成电影| 伊人国产在线观看 | 狠狠操狠狠干2017 | 国产精华国产精品 | 国产a国产| 不卡电影免费在线播放一区 | 亚洲狠狠婷婷综合久久久 | 2019免费中文字幕 | 成人免费视频在线观看 | 久久成人久久 | 欧美成人影音 | 手机在线免费av | 国产黄色成人av | 免费网站v | 色av婷婷 | 日本黄网站 | 久久综合国产伦精品免费 | 日日操天天操狠狠操 | 国产在线观看污片 | 色综合久久久久综合 | 狠狠色丁香婷婷综合 | 在线中文字幕一区二区 | av在线电影播放 | 国产在线精品一区二区三区 | 亚洲国产一区二区精品专区 | 国产成a人亚洲精v品在线观看 | 一区二区三区精品在线 | 欧美日韩裸体免费视频 | 中文字幕最新精品 | 亚洲精品一区二区三区在线观看 | 久久久久久久电影 | 黄色网址a | 国产一区二区不卡视频 | 色爱区综合激月婷婷 | 国产特级毛片aaaaaa高清 | 久久久久久美女 | 亚洲九九爱 | 337p欧美| 国产亚洲综合性久久久影院 | 在线天堂中文在线资源网 | 精品伦理一区二区三区 | .国产精品成人自产拍在线观看6 | 亚洲 欧美变态 另类 综合 | 在线 高清 中文字幕 | 中文在线a√在线 | 国产看片 色 | 精品久久久久久久久亚洲 | 午夜精品一区二区三区免费 | 久久久九色精品国产一区二区三区 | 麻豆91精品91久久久 | 中国老女人日b | 国内外成人在线视频 | 岛国大片免费视频 | 免费在线国产视频 | 国产xxxx | 日韩中文在线字幕 | 亚洲天堂网在线观看视频 | 亚洲男男gaygayxxxgv | 欧美一级久久久久 | 精品视频中文字幕 | 亚洲资源在线观看 | 午夜精品久久久久久99热明星 | 香蕉视频网址 | 国产精品毛片久久蜜 | 午夜 免费 | 欧美激情综合五月色丁香 | 五月婷婷丁香综合 | 天天干com | 天天拍天天草 | 亚州人成在线播放 | 国产日本亚洲 | 最近高清中文字幕 | 五月天久久综合 | 国内丰满少妇猛烈精品播 | 久久久精品国产一区二区电影四季 | 亚洲欧洲精品一区二区 | 久久精品99国产精品日本 | 国产97色在线 | 亚洲码国产日韩欧美高潮在线播放 | 丁香六月婷婷综合 | 一区二区三区 亚洲 | 日本性生活一级片 | 中文字幕永久免费 |