青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

算法學社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0

題目描述:

   1...n的排列 p1 ... pn ,位置 i 是good,當且僅當 abs(pi - i) = 1。 問大小為N ,恰好有K個位置是good的排列是多少?

算法分析:

   非常好的一道題,O(n^2) DP搞之。
   
   dp[n][k][p][q] 代表 大小為n,有k個good位置,p = 1代表 倒數第二個位置是n - 1 ,p = 2代表倒數第二個位置是 n, p = 0代表其他,q代表最后一個位置。

    然后轉移不難想。。。。

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define re(i,n) for(int i = 0; i < n; i++)
 5 typedef long long ll;
 6 const int N = 1005;
 7 const int mod = (int)1e9+7;
 8 ll dp[N][N][3][3];
 9 int main(){
10     int n,k;
11     cin >> n >> k;
12     dp[1][0][0][1] = 1;
13     dp[2][0][1][2] = 1;
14     dp[2][2][2][1] = 1;
15     for(int i = 3; i <= n; i++){
16         for(int k = 0; k <= i; k++) {
17             //  * 2
18             re(p,2) re(q,3) dp[i][k][p][2] += dp[i-1][k][q][p+1];
19             re(q,3) dp[i][k][0][2] += dp[i-1][k][q][0];
20             // 2 1
21             if(k >= 2) re(q,2) dp[i][k][2][1] += dp[i-1][k-2][q][2];
22             // 2 0
23             re(q,3) dp[i][k][2][0] += dp[i-1][k][q][1];
24             if(k >= 1) re(q,3) dp[i][k][2][0] += dp[i-1][k-1][q][0];
25             // 0 1
26             dp[i][k][0][1]  += dp[i-1][k][2][1] + dp[i-1][k][2][0];
27             if(k >= 1) dp[i][k][0][1] += dp[i-1][k-1][0][0] + dp[i-1][k-1][0][1] + dp[i-1][k-1][1][0];
28             // 1 0
29             re(q,2) dp[i][k][1][0] += dp[i-1][k+1][q][2] * (k + 1);
30             if(i - 2 - k >= 0) re(q,2) dp[i][k][1][0] += dp[i-1][k][q][2] * (i - 2 - k);
31             // 0 0 vs 2 1
32             ll &ans = dp[i][k][0][0];
33             if(k - 1 >= 0) ans += dp[i-1][k+1][2][1] * (k - 1) ;
34                if(i - 1 - k >= 0) ans += dp[i-1][k][2][1] * (i - 1 - k);
35 //            cout<<"vs 2 1: "<<i<<" "<<k<<" "<<ans<<endl;
36             // 0 0 vs 2 0
37             ans += dp[i-1][k + 1][2][0] * k;
38             if( i - 2 - k >= 0) ans += dp[i-1][k][2][0] * (i - 2 - k);
39 //            cout<<"vs 2 0: "<<i<<" "<<k<<" "<<ans<<endl;
40             // 0 0 vs * 2
41 //            re(q,2) ans += dp[i-1][k+1][q][2] * (k + 1);
42 //            re(q,2) if(i - 2 - k >= 0)ans += dp[i-1][k][q][2] * (i - 2 - k);
43             // 0 0 vs * 0
44             re(q,2) ans += dp[i-1][k+1][q][0] * (k + 1);
45             if(i - 3 - k >= 0) re(q,2) ans += dp[i-1][k][q][0] * (i - 3 - k);
46 //            cout<<"vs * 0: "<<i<<" "<<k<<" "<<ans<<endl;
47             // 0 0 vs 0 1
48             ans += dp[i-1][k+1][0][1] * k;
49             if(i - 2- k >= 0) ans += dp[i-1][k][0][1] * (i - 2 - k);
50 //            cout<<"vs 0 1: "<<i<<" "<<k<<" "<<ans<<endl;
51             re(p,3) re(q,3) dp[i][k][p][q] %= mod;
52         }
53     }
54     ll ans = 0;
55     re(q,3) re(p,3){
56         ans += dp[n][k][p][q];
57 //        cout<<p<<" "<<q<<" "<<dp[n][k][p][q]<<endl;
58     }
59 //    int a,b,c,d; while(cin >> a >> b >> c >> d) cout<<dp[a][b][c][d]<<endl;
60     cout << ans % mod << endl;
61 }
62 
posted on 2013-03-22 16:11 西月弦 閱讀(333) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美高清日韩| 亚洲主播在线播放| 久久久久国产一区二区三区四区 | 亚洲天堂男人| 一本综合精品| 亚洲视频二区| 午夜亚洲性色福利视频| 久久黄金**| 你懂的亚洲视频| 国产精品成人久久久久| 韩国一区电影| 亚洲精品视频免费| 中国成人在线视频| 久久精品水蜜桃av综合天堂| 久久亚洲精品一区二区| 亚洲国产综合在线看不卡| 91久久久在线| 午夜精品福利电影| 欧美成人免费全部观看天天性色| 欧美日韩国产va另类| 国产日韩欧美综合精品| 亚洲黄一区二区三区| 亚洲欧美国产视频| 你懂的视频欧美| 日韩视频永久免费观看| 久久精品亚洲一区二区三区浴池| 欧美精品日本| 国产一区在线看| 中文av字幕一区| 另类成人小视频在线| 99精品欧美一区| 久久综合九色综合久99| 欧美婷婷久久| 亚洲精品九九| 久久综合九色综合欧美就去吻| 亚洲国产天堂久久综合| 久久不射中文字幕| 国产美女诱惑一区二区| 在线视频亚洲一区| 欧美国产视频一区二区| 亚洲欧美在线高清| 欧美日韩一区国产| 亚洲国产天堂久久综合| 久久久亚洲欧洲日产国码αv| 9色精品在线| 欧美精品九九| 亚洲国产欧美另类丝袜| 久久久蜜桃精品| 香蕉亚洲视频| 国产一区美女| 久久精品三级| 亚洲男女毛片无遮挡| 欧美日韩国产一级片| 亚洲人成高清| 亚洲成人自拍视频| 蜜桃久久精品一区二区| 亚洲自拍电影| 91久久夜色精品国产九色| 久久久爽爽爽美女图片| 国产一区二区精品久久91| 香蕉久久夜色| 亚洲一区二区三区免费在线观看| 欧美日韩网址| 亚洲欧美电影院| 亚洲在线视频网站| 国产精品午夜久久| 久久精品国产欧美亚洲人人爽| 亚洲一级黄色| 国产一区二区三区免费在线观看| 久久成人精品电影| 久久精品亚洲一区二区| 亚洲国产网站| 亚洲精品免费在线播放| 欧美日本韩国一区二区三区| 99视频一区| 亚洲一区二区三区免费在线观看 | 亚洲国产99精品国自产| 欧美精品免费观看二区| 亚洲一区二区动漫| 亚洲免费视频网站| 狠狠色综合色区| 亚洲第一色在线| 国产精品久久久久aaaa九色| 久久er精品视频| 欧美aaaaaaaa牛牛影院| 在线综合亚洲| 久久精品免费看| 亚洲精品视频啊美女在线直播| 亚洲视频高清| 伊人成人网在线看| 日韩视频一区二区三区在线播放免费观看| 国产精品欧美久久久久无广告| 老牛国产精品一区的观看方式| 欧美99久久| 久久久国产精品一区| 欧美精品久久99久久在免费线| 亚洲女优在线| 中日韩美女免费视频网址在线观看| 亚洲视频在线观看| 一区在线观看| 亚洲视频 欧洲视频| 亚洲激情一区| 欧美在线关看| 亚洲一区二区三区久久| 久久色在线播放| 午夜在线观看欧美| 欧美ab在线视频| 久久免费一区| 国产精品萝li| 亚洲精品视频一区二区三区| 精品成人一区二区| 亚洲影院高清在线| 一区二区三区www| 裸体丰满少妇做受久久99精品| 午夜精品视频网站| 欧美全黄视频| 欧美国产日本韩| 亚洲视频中文字幕| 国产婷婷色一区二区三区| 亚洲免费观看高清完整版在线观看熊 | 国产精品久久久久99| 亚洲国产专区校园欧美| 亚洲国产高清aⅴ视频| 欧美与欧洲交xxxx免费观看| 亚洲一区二区精品| 欧美福利在线观看| 欧美国产免费| 在线观看成人av| 欧美在线视频一区| 欧美自拍偷拍午夜视频| 国产精品久久久久久模特| 亚洲精品自在久久| av不卡在线| 欧美日韩国产首页在线观看| 亚洲福利小视频| 亚洲精品久久7777| 欧美高潮视频| 一本色道精品久久一区二区三区 | 久久大香伊蕉在人线观看热2| 欧美一级专区免费大片| 国产精品久久久一区二区| 亚洲天堂男人| 久久久www成人免费精品| 国产午夜久久| 欧美伊人久久久久久久久影院| 欧美午夜精品久久久久免费视| 99视频+国产日韩欧美| 亚洲制服欧美中文字幕中文字幕| 欧美日韩在线播| 亚洲愉拍自拍另类高清精品| 亚洲欧美综合网| 国产亚洲精品高潮| 免费人成网站在线观看欧美高清| 欧美激情亚洲一区| 亚洲视频二区| 国内外成人免费视频| 久久亚洲精品伦理| 最新亚洲电影| 午夜视频一区在线观看| 国内精品99| 欧美国产亚洲精品久久久8v| 夜久久久久久| 久久精品导航| 99精品视频一区二区三区| 国产精品视频免费一区| 久久亚洲国产成人| aaa亚洲精品一二三区| 久久福利视频导航| 亚洲日本欧美日韩高观看| 欧美午夜不卡在线观看免费 | 亚洲欧美偷拍卡通变态| 国产欧美一区二区精品忘忧草 | 欧美伊人影院| 欧美国产在线视频| 免费在线观看精品| 99国产精品视频免费观看| 欧美伊久线香蕉线新在线| 1024国产精品| 国产精品日本| 欧美激情aⅴ一区二区三区| 亚洲永久视频| 亚洲国产精品传媒在线观看| 亚洲欧美另类中文字幕| 精品成人乱色一区二区| 国产精品theporn| 欧美jizz19性欧美| 新67194成人永久网站| 亚洲人成网站在线观看播放| 久久国产福利| 亚洲欧美日韩精品久久亚洲区| 亚洲第一综合天堂另类专| 国产欧美一区二区色老头| 欧美日本不卡高清| 免费观看日韩| 久久精品亚洲精品| 欧美一级午夜免费电影| 亚洲午夜羞羞片| 一本色道久久综合狠狠躁篇的优点 | 久久福利影视| 午夜精品视频网站|