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

TC-05TCOR4-250 DP

Posted on 2009-11-22 15:58 rikisand 閱讀(213) 評(píng)論(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'.

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

T[1···N]=Min{sum(N <->{1-N-1},T[1-N-1] } 得到狀態(tài)方程后很容易寫出程序 ,可以使用備忘錄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>
            亚洲免费在线观看| 亚洲激情婷婷| 久久综合精品国产一区二区三区| 亚洲一区中文字幕在线观看| 亚洲图色在线| 亚洲另类在线一区| 一本色道久久综合狠狠躁的推荐| 在线亚洲欧美| 香蕉成人伊视频在线观看| 欧美在线免费观看亚洲| 久久午夜色播影院免费高清| 裸体一区二区三区| 亚洲欧洲在线免费| 一区二区毛片| 久久九九热re6这里有精品| 久久中文字幕一区二区三区| 亚洲韩日在线| 99视频在线观看一区三区| 亚洲一区二区三区精品在线观看| 欧美在线综合视频| 欧美国产日韩xxxxx| 国产精品视频免费观看www| 狠狠噜噜久久| 一区二区三区四区在线| 久久久久国产精品一区二区| 亚洲国产精品va在线看黑人 | 亚洲激情视频| 午夜在线精品偷拍| 亚洲国产精品久久久久| 亚洲欧美另类国产| 欧美激情亚洲激情| 激情懂色av一区av二区av| 亚洲视频精品在线| 欧美电影打屁股sp| 欧美一区二区三区在线观看视频| 欧美成人r级一区二区三区| 国产精品一卡| 妖精视频成人观看www| 久久这里有精品15一区二区三区| 日韩视频―中文字幕| 女人色偷偷aa久久天堂| 韩日午夜在线资源一区二区| 亚洲男人av电影| 亚洲国产综合在线| 麻豆精品视频在线观看| 国产精品午夜电影| 黄色亚洲网站| 久久精品理论片| 中文国产成人精品| 欧美久久久久久久久久| 在线精品亚洲| 久久久欧美精品| 亚洲综合精品| 欧美丝袜一区二区| 一本色道婷婷久久欧美| 亚洲国产精品精华液网站| 西西裸体人体做爰大胆久久久| 欧美久久九九| av成人天堂| 亚洲免费av观看| 日韩视频在线播放| 欧美国产亚洲精品久久久8v| 亚洲国产99| 亚洲国产另类精品专区 | 亚洲影院污污.| 国产精品户外野外| 亚洲欧美视频在线| 在线一区观看| 国产乱码精品| 久久夜色精品国产欧美乱极品| 欧美一二三区精品| 黑人巨大精品欧美一区二区| 久久久久久久久蜜桃| 性欧美大战久久久久久久免费观看 | 欧美日韩国产综合视频在线观看中文 | 欧美电影在线免费观看网站| 一区二区在线观看视频在线观看| 久久久99精品免费观看不卡| 欧美在线观看视频一区二区| 国产综合一区二区| 免费欧美网站| 欧美成熟视频| 亚洲欧美中文日韩v在线观看| 午夜精品久久久久久久白皮肤 | 亚洲中无吗在线| 午夜精品久久99蜜桃的功能介绍| 国产亚洲美州欧州综合国| 鲁大师影院一区二区三区| 欧美福利影院| 亚洲影院色无极综合| 欧美一区二区三区的| 91久久久久久| 亚洲欧美日韩系列| 亚洲国产一成人久久精品| 99精品国产高清一区二区| 国产一区二区黄| 亚洲精品视频在线观看免费| 国产欧美精品一区aⅴ影院| 欧美激情一二三区| 国产精品三级久久久久久电影| 美女脱光内衣内裤视频久久网站| 欧美日韩激情小视频| 久久亚洲欧美国产精品乐播| 欧美另类99xxxxx| 久久久久中文| 国产精品扒开腿爽爽爽视频| 免费在线亚洲| 国产视频亚洲| 一区二区三区精品| 亚洲人成网站777色婷婷| 欧美一区二区三区四区在线观看地址 | 国产精品99久久久久久久vr| 亚洲欧美日韩视频二区| 亚洲精品在线电影| 久久久国际精品| 欧美一区二区视频免费观看| 欧美韩日一区| 免费在线日韩av| 韩国v欧美v日本v亚洲v | 欧美福利一区二区| 欧美成人午夜| 一区二区在线视频观看| 亚洲欧美电影在线观看| 亚洲网站啪啪| 欧美日韩国产一区| 亚洲国产欧美在线 | 午夜久久美女| 欧美日本高清视频| 91久久精品视频| 在线免费观看欧美| 久久狠狠一本精品综合网| 久久riav二区三区| 国产精品日韩精品欧美在线| 亚洲激情电影中文字幕| 最新日韩av| 欧美顶级少妇做爰| 亚洲欧洲精品一区二区三区不卡| 亚洲国产精品悠悠久久琪琪| 久久精品女人天堂| 免费成人在线观看视频| 精品91在线| 免费成人黄色| 亚洲国产片色| 一区二区三区四区蜜桃| 欧美日韩免费观看一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆| 91久久夜色精品国产九色| 欧美成人一区二区三区片免费 | 欧美一区二区大片| 久久精品国产77777蜜臀| 国产日产亚洲精品| 久久国产一二区| 牛牛影视久久网| 日韩视频中午一区| 国产精品mm| 欧美制服第一页| 亚洲国产精品福利| 亚洲香蕉在线观看| 国产性天天综合网| 美日韩精品免费| 亚洲免费精品| 久久se精品一区二区| 亚洲高清精品中出| 亚洲视频在线二区| 亚洲人成欧美中文字幕| 亚洲综合三区| 国产综合色产| 欧美日本韩国一区二区三区| 亚洲视频你懂的| 乱人伦精品视频在线观看| 亚洲毛片av在线| 国产日韩成人精品| 欧美成人在线免费视频| 亚洲自拍16p| 亚洲国产99精品国自产| 先锋资源久久| 欧美日韩国产成人高清视频| 亚洲一区3d动漫同人无遮挡| 久久亚洲视频| 亚洲无限乱码一二三四麻| 红桃视频成人| 国产精品每日更新| 欧美大片在线看免费观看| 亚洲欧美国产高清va在线播| 欧美激情第9页| 久久福利一区| 亚洲一区网站| 日韩视频―中文字幕| 黄色精品网站| 国产婷婷色一区二区三区四区| 欧美激情精品久久久久久久变态| 亚洲欧美日韩天堂一区二区| 亚洲精品国产拍免费91在线| 久久久www| 欧美一区二区在线免费观看| 亚洲精品乱码久久久久| 韩国视频理论视频久久| 国产精品羞羞答答xxdd| 欧美日韩一区在线播放| 欧美a级片网|