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

TC-05TCOR4-250 DP

Posted on 2009-11-22 15:58 rikisand 閱讀(213) 評論(0)  編輯 收藏 引用 所屬分類: TopcoderAlgorithm
roblem Statement

Character j in element i (both 0-based) of messages denotes how many messages employee i sent to employee j. You will return a vector <int> containing the hierarchy of the employees within the company. Element 0 is the highest ranked employee, and so forth. The returned ranking should minimize the number of messages sent from lower ranked employees to higher ranked employees. If multiple solutions are possible, return the one with element 0 minimal. If there are still ties, minimize element 1, etc.

Definition

Class:
CompanyMessages

Method:
getRank

Parameters:
vector <string>

Returns:
vector <int>

Method signature:
vector <int> getRank(vector <string> messages)

(be sure your method is public)

Constraints

-
messages will contain between 2 and 15 elements inclusive.

-
Each element of messages will contain exactly N characters, where N is the number of elements in messages.

-
Each character in messages will be a digit ('0'-'9').

-
Character i in element i of messages will be '0'.

按照題目說明可知,按照找到的順序,所有從低級向高級發的信得數目和應該是最小的。又觀察到,只要確定了第一個,也就是級別最高的boss,那么剩下的員工怎么排列,他們向最高boss 發信數是不變的,從而子問題就是在剩下員工中找到 低級向高級發信數最小的排列 ,顯然這符合DP問題最優子結構的問題。

T[1···N]=Min{sum(N <->{1-N-1},T[1-N-1] } 得到狀態方程后很容易寫出程序 ,可以使用備忘錄dp

Code Snippet
#define REP(i, n) for (int i = 0; i < (n); ++i)

#define two(X) (1<<(X))
#define contain(S,X) ((S&two(X))>0)

int A[1<<15];
vector<vector<int> > vec(1<<15);
class CompanyMessages
{
        public:
        vector <int> getRank(vector <string> mes )
        {
            int n=mes.size();
            REP(mask,two(n)){
                if(!mask)continue;
                A[mask]=100000;
                REP(i,n)if(contain(mask,i)){
                    int now=mask^two(i); int tmp=A[now];
                    REP(j,n)if(contain(now,j))tmp+=(mes[j][i]-'0');
                    if(tmp<A[mask]){
                        vec[mask].clear();vec[mask].push_back(i);
                        for(int s=0;s<vec[now].size();s++)vec[mask].push_back(vec[now][s]);
                        A[mask]=tmp;
                    }
                }
            }
            return vec[two(n)-1];
        }

 

Code Snippet
int memo[two(15)],record[two(15)];
VS M;int N;VI ans;
int solve(int now){
    if( now == 0 ) return 0;
    if( memo[now]>=0 )return memo[now];
    memo[now] = 100000;
    REP(i,N)if(contain(now,i)){
        int mask = now ^ two(i);int tmp = solve(mask);
        REP(j,N)if(contain(mask,j))tmp += (M[j][i] - '0');
        if(tmp < memo[now]) {
            memo[now]=tmp ;
            record[now] = mask;
        }
    }
    return memo[now];
}
void cacl(){
    int mask = two(N)-1;
    ans.clear();
    REP(i,N){
        int k = mask ^ record[mask];
        int cnt = -1; while(k>0){k>>=1;cnt++;}
        ans.push_back(cnt);
        mask=record[mask];
    }
}
class CompanyMessages
{
        public:
        vector <int> getRank(vector <string> mes)
        {
               M=mes;N=mes.size();
               memset(memo,-1,sizeof(memo));
               solve(two(N)-1);
               cacl();
               return ans;
        }
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品丝袜91| 亚洲午夜日本在线观看| 99综合视频| 亚洲综合好骚| 在线免费一区三区| 欧美日韩一区二区三区视频| 欧美不卡视频一区| 亚洲黄色免费电影| 在线观看三级视频欧美| 亚洲三级电影在线观看| 亚洲人成在线观看| 日韩视频中文字幕| 亚洲欧美www| 久久精品成人一区二区三区| 欧美中文字幕视频| 欧美成人影音| 亚洲一区二区三区777| 欧美在线观看网站| 欧美精品日韩| 有码中文亚洲精品| 亚洲第一主播视频| 亚洲精品影视| 久久国产精品99久久久久久老狼| 亚洲专区在线视频| 免费亚洲网站| 亚洲欧美清纯在线制服| 欧美国产一区视频在线观看 | 国产日韩在线亚洲字幕中文| 一区二区三区无毛| 欧美精品激情| 国产婷婷色一区二区三区在线 | 亚洲精选中文字幕| 亚洲精品护士| 日韩亚洲欧美中文三级| 中文国产成人精品| 亚洲视频图片小说| 免费在线亚洲| 欧美一级日韩一级| 欧美色图首页| 欧美在线免费观看视频| 最新日韩在线| 久久一区亚洲| 亚洲精品一区二区三区樱花| 麻豆国产精品777777在线| 久久久久www| 亚洲精品一二三区| 久久视频在线看| 欧美视频中文在线看| 国产午夜久久| 玖玖玖免费嫩草在线影院一区| 亚洲一区欧美二区| 国产精品欧美久久| 亚洲私人影院| 野花国产精品入口| 欧美区在线观看| 欧美一区中文字幕| 欧美日韩www| 亚洲精品国产精品久久清纯直播| 欧美成人一区二区三区在线观看| 老**午夜毛片一区二区三区| 亚洲日本欧美| 午夜精品久久久久久久男人的天堂 | 久久av在线| 亚洲国产综合视频在线观看| 亚洲毛片av| 欧美日韩和欧美的一区二区| 亚洲视频网站在线观看| 欧美性大战久久久久| 久久精视频免费在线久久完整在线看| 老鸭窝亚洲一区二区三区| 久久九九有精品国产23| 欧美性色视频在线| 99精品久久久| 夜夜嗨av一区二区三区| 欧美不卡三区| 在线综合+亚洲+欧美中文字幕| 99re66热这里只有精品3直播| 另类av一区二区| 日韩小视频在线观看| aaa亚洲精品一二三区| 欧美日韩国产成人在线观看| 亚洲日本视频| 亚洲资源在线观看| 国产乱码精品一区二区三区av| 久久国产视频网| 亚洲欧洲另类国产综合| 亚洲综合首页| 激情国产一区| 欧美激情综合在线| 亚洲欧美综合另类中字| 欧美96在线丨欧| 午夜精品一区二区三区在线播放| 国产亚洲精品综合一区91| 狼狼综合久久久久综合网 | 亚洲视频在线播放| 狠狠爱www人成狠狠爱综合网| 牛人盗摄一区二区三区视频| 亚洲人久久久| 国产亚洲欧洲997久久综合| 牛牛国产精品| 久久色在线播放| 久久国产精品一区二区| 亚洲国产精品久久久久秋霞不卡| 中文网丁香综合网| 在线国产亚洲欧美| 国产一区二区三区在线观看精品| 欧美日韩成人一区| 欧美精品久久一区二区| 久久久国产一区二区| 亚洲欧美在线另类| 亚洲欧美激情视频| 亚洲免费伊人电影在线观看av| 最新日韩av| 日韩午夜剧场| 欧美亚洲自偷自偷| 久久久人成影片一区二区三区观看 | 国产欧美一区二区三区国产幕精品| 欧美午夜不卡在线观看免费| 免费成人av资源网| 久久在线免费观看视频| 久久夜色精品| 欧美三级小说| 国产最新精品精品你懂的| 国产一区二区高清视频| 影音欧美亚洲| 亚洲高清资源| 久久疯狂做爰流白浆xx| 亚洲福利专区| 亚洲一区二区毛片| 亚洲一区二区成人| 亚洲午夜精品一区二区三区他趣| 亚洲一区在线直播| 久久人人97超碰精品888| 欧美理论在线播放| 国产精品亚洲а∨天堂免在线| 国产综合香蕉五月婷在线| 亚洲欧洲日韩在线| 久久亚洲精品视频| 亚洲免费观看视频| 久久久蜜桃精品| 国产精品国产三级国产普通话99| 精品动漫一区| 久久久在线视频| 亚洲一二三四久久| 欧美激情欧美狂野欧美精品| 国产综合色一区二区三区| 中文国产成人精品| 一片黄亚洲嫩模| 国产精品乱子久久久久| 亚洲三级免费观看| 亚洲国产精品第一区二区| 久久亚洲精品一区| 亚洲激情国产| 亚洲毛片在线观看.| 欧美成年人视频| av成人天堂| 亚洲小说欧美另类社区| 国产精品国产三级国产专区53| aa成人免费视频| 欧美亚洲一级片| 在线观看成人小视频| 欧美阿v一级看视频| 欧美激情一二区| 午夜精品久久久久久久99水蜜桃 | 欧美mv日韩mv国产网站| 亚洲区国产区| 亚洲一区二区三区视频| 欧美午夜电影在线| 一区二区欧美亚洲| 日韩视频在线观看免费| 欧美日韩国产精品一区二区亚洲 | 亚洲一区二区三区免费观看| 欧美区在线播放| 你懂的国产精品永久在线| 国产精品草草| 欧美aa在线视频| 国产精品扒开腿爽爽爽视频| 欧美在线观看视频一区二区三区| 久久蜜桃资源一区二区老牛| 在线观看91久久久久久| 宅男66日本亚洲欧美视频| 在线看一区二区| 国产精品99久久久久久www| 国产主播在线一区| 亚洲一区免费视频| 在线亚洲美日韩| 欧美成人午夜视频| 欧美激情导航| 亚洲激情成人在线| 老司机免费视频一区二区| 欧美a级理论片| 亚洲激情在线观看| 欧美成人黑人xx视频免费观看| 久久尤物视频| 亚洲人成在线观看一区二区| 欧美丰满高潮xxxx喷水动漫| 亚洲精品欧美精品| 亚洲欧美在线另类| 激情六月婷婷久久| 欧美日韩成人一区二区|