• <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>
            算法學(xué)社
            記錄難忘的征途
            posts - 141,comments - 220,trackbacks - 0
            300pt
               一個(gè)串S是由X和Y在不改變本身字母相對(duì)順序的情況下拼成的。其中Y是X的一個(gè)排列,求字典序最小的Y。

            算法分析:
               貪心構(gòu)造。
             1 #include<iostream>
             2 #include<string>
             3 using namespace std;
             4 bool vis[55];
             5 int hash[55],tmp[55];
             6 class 
             7 FoxAndHandle{
             8     public : string lexSmallestName(string ch){
             9         int n = ch.size();
            10         for(int i =0; i < n; i++)
            11             hash[ch[i] -'a'] ++;
            12         int cnt[55];
            13         for(int i = 0; i < 26; i++){
            14             hash[i]/= 2;
            15             cnt[i] = hash[i];    
            16         }
            17         string ans;
            18         int now = 0;
            19         for(int _=0;_<n/2;_++){
            20             for(int i = 0; i < 26; i++) if(cnt[i]){
            21                 bool flag = 0;
            22                 for(int j = now; j < n; j++){
            23                     if(ch[j] == i+'a') {
            24                         flag = 1;
            25                         memset(tmp,0,sizeof(tmp));
            26                         for(int p = 0; p < j; p++)if(!vis[p]){
            27                             int x = ch[p] - 'a';
            28                             tmp[x] ++;
            29                             cout<<p<<" "<<x<<" "<<tmp[x]<<" "<<hash[x]<<endl;
            30                             if(tmp[x] > hash[x]) {flag = 0; break;}
            31                         }
            32                         cout<<"chk: "<<_<<" "<<j<<" "<<i<<" "<<flag<<endl;
            33                         if(flag) {vis[j] = 1; ans+=ch[j]; now = j+1;}
            34                         break;
            35                     }
            36                 }
            37                 if(flag) {cnt[i] --;break;}
            38             }
            39         }
            40         return ans;
            41     }
            42 };

            500pt
               一個(gè)環(huán)形序列{(ai, di)},每次選擇一個(gè)j,讓j ... j+aj的所有數(shù)都從序列中刪除(是環(huán)形的哦~)。得分為dj,如果剩下的數(shù)不足aj,就不能選它。
               求可以得到的最大得分總和。
            算法分析:
               因?yàn)槿我庖粋€(gè)沒(méi)有順序的sum(a)<=n的方案都是合法的(否則會(huì)大于n)。那么這就等價(jià)于一個(gè)01背包問(wèn)題了,果然tc就是拼YY啊...
             1 #include<iostream>
             2 #include<cstring>
             3 #include<vector>
             4 using namespace std;
             5 const int inf = (int)1e9;
             6 int dp[55*55];
             7 int work(vector<int> a,vector <int> d){
             8     int n = a.size(), ans = 0;
             9     memset(dp,-1,sizeof(dp));
            10     dp[0] = 0;
            11     for(int j = 0; j < n; j++){
            12         for(int i = n+1; i; i--) if(i - a[j] >= 0 ){
            13             int v = i - a[j];
            14             if(dp[v] == -1) continue;
            15             dp[i] = max(dp[i],dp[v] + d[j]);
            16             //cout<<i<<" "<<dp[i]<<endl;
            17             ans = max(ans,dp[i]);
            18         }
            19 //        cout<<endl;
            20     }
            21     return ans;
            22 }
            23 class SpellCards{
            24     public : int maxDamage(vector <int> level, vector <int> damage){
            25                  return work(level,damage);
            26              }
            27 };
            28 
            posted on 2012-12-09 03:17 西月弦 閱讀(639) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            99久久国语露脸精品国产| 久久久久亚洲AV无码永不| 亚洲国产天堂久久综合| 久久久久免费精品国产| 精品久久久久久国产91| 2021国产精品久久精品| 99久久精品影院老鸭窝| 久久久久久久97| 青春久久| 欧美精品九九99久久在观看| 亚洲午夜精品久久久久久人妖| 久久精品国产亚洲AV香蕉| 国产成人无码精品久久久免费 | 久久无码人妻一区二区三区午夜| 国产精品热久久无码av| 91精品国产综合久久香蕉| 久久综合丁香激情久久| 久久亚洲国产精品一区二区| 99久久99久久| 欧美成人免费观看久久| 国产成人精品综合久久久| 久久久久亚洲av无码专区导航| 久久丫精品国产亚洲av| 久久精品国产亚洲Aⅴ蜜臀色欲| 欧美亚洲另类久久综合婷婷| 伊人久久大香线焦AV综合影院 | 久久国产一区二区| 久久97久久97精品免视看| 模特私拍国产精品久久| 国产午夜福利精品久久2021| 99久久国产亚洲高清观看2024| 亚洲国产成人久久综合一区77| 国产成年无码久久久久毛片| 香蕉久久永久视频| 国产精品va久久久久久久| 国产午夜福利精品久久2021| 欧美亚洲国产精品久久| 激情五月综合综合久久69| 潮喷大喷水系列无码久久精品| 久久这里只有精品首页| 狠狠综合久久AV一区二区三区|