• <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>

            風雪夢

            柳絮因風起

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              4 Posts :: 76 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿

            我參與的團隊

            搜索

            •  

            最新評論

            • 1.?re: LightOJ1080 Binary Simulation
            • 話說加個PushDown操作不就OK了咩?
            • --仗劍奔走天涯
            • 2.?re: 正式開博
            • 加油!
            • --leafcloudsky
            • 3.?re: 啟航杯啊
            • 太屎了!!我竟然就這么的WA了兩次,最終發現,第四題少了兩句初始化,第五題把數組開錯地方了,算法沒問題,結果就這么從四題跌到二題,太傷不起了!!可憐我調spfa調了一晚上!!尼瑪啊!!
            • --淺雨歌

            閱讀排行榜

            評論排行榜

            額……這道題貌似也不怎么強大,但是著實讓我糾結,所以我又開始求助了,然后求助成功,解題,然后貼上來,以免以后忘記……

            題目大意是這樣的,給一段時間N,給M個時間段,給開始時間和結束時間,每個時間段有一個效率,每次用完某一時間段的效率必須休息R小時,求最高的效率。

            好吧,存儲結構沒有異議,一個量,三個參數,果斷的結構體存儲啊,方便得體,多好啊……

            剛 開始我果斷的打算把它當成一個01背包來做,但是果斷的錯了,被我自己否決了(還好沒寫……)我的想法是直接把每一段的結束時間減去開始時間,然后成為一個消耗時間段,然后抽象……N代表背包總容量,M代表物品個數,消耗時間段代表著物品占用的空間,效率就是物品價值,一個華麗麗的01背包解決……當然這 個錯了,原因是既然給了每個時間段的開始時間和結束時間,還有休息時間,那如果重疊了怎么算……然后就果斷的否決了。

            實際上正確的狀態是當 選用第i個時間段為結尾的時候,所獲得的最大效率,當然得把時間段的先后先排個序,按照開始時刻排序,這樣比較有愛……這樣的話當處理第i個時間段也就是 f[i]的時候,之前需要計算的都在第i段的前面。當處理到第i段的時候,前面必然有一個j,使得以j為結尾的時候,所得效率最大,從而保證到第j段的最 大效率加上第i段的效率最大,j可以是i前面的任意一段時間,反正保證了最大就行。初始化的時候要有這么一句:f[i]=in[i].ef,這樣就是防止 有前面所有段全都不用這種情況。方程是這樣的:f[i]=max(f[j]+in[i].ef,f[i]),in[i].ef是第i段時間中的效率。

            但是一定要注意一點,選用的時間區間除了端點以外是不能重合的,還得記得把休息時間加上……

            特別鳴謝:翔哥zzxyyx_1

            #include <iostream>
            #include 
            <cstdio>
            #include 
            <algorithm>
            using namespace std;
            struct interval
            {
                
            long st, en, ef;
            }
            in[1001];
            long max(long a, long b)
            {
                
            if (a > b) return a;
                
            else return b;
            }
            long cmp(interval a, interval b)
            {
                
            return a.st < b.st;
            }
            int main()
            {
                
            long n, m, r, i, j, f[1001], maxi;
                cin 
            >> n >> m >> r;
                
            for (i = 1; i <= m; i++)
                {
                    scanf(
            "%ld%ld%ld"&in[i].st, &in[i].en, &in[i].ef);
                }
                sort(
            in + 1in + 1 + m, cmp);
                
            for (i = 1; i <= m; i++) f[i] = in[i].ef;
                
            for (i = 2; i <= m; i++)
                    
            for (j = 1; j < i; j++)
                    {
                        
            if (in[j].en + r <= in[i].st)
                        {
                            f[i] 
            = max(f[j] + in[i].ef, f[i]);
                        }
                    }
                
            for (i = 1; i <= m; i++)
                    
            if (f[i] > maxi) maxi = f[i];
                cout 
            << maxi << endl;
                
            return 0;
            }
            posted on 2012-11-09 01:11 淺雨歌 閱讀(498) 評論(0)  編輯 收藏 引用 所屬分類: DP
            色噜噜狠狠先锋影音久久| 国产精品久久久久久搜索| 国内精品久久久久久麻豆| 午夜精品久久久久久久无码| 久久人人爽人人爽人人片AV东京热| 欧美一区二区三区久久综合| 久久99精品久久久久久| 亚洲国产综合久久天堂| 久久久久亚洲AV无码麻豆| 久久久久亚洲av成人无码电影 | 色综合久久最新中文字幕| 日日狠狠久久偷偷色综合免费| 无码日韩人妻精品久久蜜桃| 精品无码久久久久久久动漫| 国产精品久久久久久一区二区三区| 久久久精品波多野结衣| 久久精品a亚洲国产v高清不卡| 亚洲精品成人久久久| 91精品国产91久久久久久蜜臀| 亚洲中文字幕无码久久精品1| 久久久久国产成人精品亚洲午夜| 国产精品永久久久久久久久久| 亚洲国产精品久久久久久| 久久综合精品国产一区二区三区| 久久人人爽人人爽人人AV| 久久久精品久久久久特色影视| 国产综合久久久久| 久久av无码专区亚洲av桃花岛| 合区精品久久久中文字幕一区| 国产精品无码久久四虎| 国产精品久久久久久久久鸭| 国内精品久久久人妻中文字幕| 亚洲精品国产字幕久久不卡| 亚洲欧美国产精品专区久久| 久久精品国产亚洲av瑜伽| 国产精品狼人久久久久影院| 51久久夜色精品国产| 国产成人精品久久| 久久精品国产国产精品四凭| 国产亚洲成人久久| 无码任你躁久久久久久|