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

oyjpArt ACM/ICPC算法程序設計空間

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

pku3309 Unlucky Luke!

Posted on 2008-08-02 19:35 oyjpart 閱讀(2892) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC或其他比賽

Unlucky Luke!

By oyjpArt/alpc12

題意

n    有2個倉庫,容量為(0 <= V <= 5000) 浮點數!

n    有100個物品,每個物品容量為(0 <= v[i] <= 100) 整數 價值為 m[i] (無范圍浮點數!)

n    現在把這些物品放到2個倉庫中,求最大的價值。

n    如果有放不進去的物品,可以切割出一部分放進去,但是一旦切割,沒放進進去的一部分必須丟棄。

貪心?

n    這道題初看上去,很有讓人貪心的沖動。

n    我和alpc42合計了一下。

n    根據A[i].m/A[i].v 作為優先級 給(A, A+n) 排序。

n    依次將A[0], A[1]…A[n-1]放入倉庫,如果放不進去了,則切掉。

n    現在有兩個倉庫,當準備放一個物品進去的時候,應該放到哪個倉庫呢?

 

第一次提交

n    我們倆想了想,覺得應該是放到空閑地方大的倉庫,因為要盡可能把性價比高的物品放進去。

n    4144542008-08-01 13:42:41

n    WrongAnswer

n    C++

n    0.9K

第二次提交

n    隨后我想出了一種會讓程序出bug的情況。

n    就是當兩個物品性價比相當的時候,應該要讓大容量的在前面。因為有可能小容量的先放進去,導致大容量的沒有地方放了,而需要切割。但實際上可以把小容量的放到小剩余容量的倉庫里面去,而大容量的就可以放到大剩余容量的倉庫.

n    改正提交之后還是Wrong Answer

 

問題在這

n     思考了一下我發現其實上面那個bug并沒有解決。假設A[i].m/A[i].v > A[j].m/A[j].v,按理來說應該先放i,再放j。但是加入A[i].v < A[j].v,同樣的有可能先放i再放j會讓j被迫切割。

n     那么怎么辦?

n     隨后我們想到了一種動態規劃的方法,但是因為復雜度太高,放棄了。這時候我們發現手頭有很多題目可以做,就沒有再做這個題目了。

賽后的思考

n      之所以會出現這樣的問題。在于我們最開始的假設:要把性價比高的物品放到容量更大的倉庫中。

n      那么,假如我們枚舉一個物品放到A倉庫還是B倉庫的話,就可以解決這個問題了。

n      所謂枚舉,其實是一個動態規劃。

n      設dp[i][j] 代表前i個物品(排序后)都被完全放入了倉庫,并且A倉庫已經裝了j的容量的物品。顯然我們可以同時知道B倉庫的容量是多少。

n      向后推的狀態方程

n      dp[i+1][j+A[i+1].v] = Max(dp[i+1][j+A[i+1].v], dp[i][j] + A[i+1].m);

n      dp[i+1][j] = Max(dp[i+1][j], dp[i][j] + A[i+1].m);

n      如果一個倉庫已經放不進去了,大家可以想想,應該是把下一個物品切割掉放入這個倉庫中。(如果后面有物品可以放到另外一個倉庫中,不用擔心。后面的DP會覆蓋這種情況)

n      一個倉庫放滿了之后,另外一個倉庫堆放的情況其實就是貪心了。

// Solution by alpc12
#include 
<stdio.h>
#include 
<algorithm>
using namespace std;

const int N = 105;
const double EPS = 1e-7;
const double INF = 10e100;

double dp[N][10001], V;
int n, maxv, vall[N];

struct Node
{
    
int v;

    
double m;
};

bool operator<(const Node&a,const Node&b) {
    
return a.m/a.v > b.m/b.v;
}

Node A[N];

inline 
double Max(double a,double b) {
    
return a > b ? a : b;
}
inline 
double Min(double a,double b) {
    
return a < b ? a : b;
}

double go(double v, int st) {
    
double ans = 0;
    
while(v > 0 && st <= n) {
        
if(A[st].v <= v) {
            v 
-= A[st].v;
            ans 
+= A[st].m;
        } 
else {
            ans 
+= A[st].m * v/A[st].v;
            v 
= 0;
        }
        st
++;
    }
    
return ans;
}

void solve() {
    
int i, j, k;
    
for(i = 0; i <= n; ++i)
        
for(j = 0; j <= maxv; ++j)
            dp[i][j] 
= -INF;
    dp[
0][0= 0;
    
    
double max = 0;
    
for(i = 0; i <= n; ++i) {
        
for(j = 0; j <= vall[i] && j <= V; ++j) if(dp[i][j] != -INF) {
            max 
= Max(max, dp[i][j]);
            
if(i < n) {
                
int k = vall[i] - j;
                
if((V-j) >= A[i+1].v) {
                    dp[i
+1][j+A[i+1].v] = Max(dp[i+1][j+A[i+1].v], dp[i][j] + A[i+1].m);
                } 
else {
                    max 
= Max(max, dp[i][j] + A[i+1].m*(V-j)/A[i+1].v + go(V-k, i+2));
                }
                
if((V-k) >= A[i+1].v) {
                    dp[i
+1][j] = Max(dp[i+1][j], dp[i][j] + A[i+1].m);
                } 
else {
                    max 
= Max(max, dp[i][j] + A[i+1].m*(V-k)/A[i+1].v + go(V-j, i+2));
                }
            }
        }
    }
    printf(
"%.4lf\n", max);
}

int main()
{
    //freopen(
"t.in""r", stdin);

    
int ntc, i, j;
    scanf(
"%d"&ntc);
    
while(ntc--) {
        scanf(
"%d %lf"&n, &V);
        maxv 
= 0;
        
for(i = 1; i <= n; ++i) {
            scanf(
"%d"&(A[i].v));
            maxv 
+= A[i].v;
        }
        maxv 
= Min(maxv, (int)V);
        
for(i = 1; i <= n; ++i) {
            scanf(
"%lf"&(A[i].m));
        }
        sort(A 
+ 1, A + n + 1);
        vall[
0= 0;
        
for(i = 1; i <= n; ++i) {
            vall[i] 
= vall[i-1+ A[i].v;
        }
        solve();
    }

    
return 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>
            黑人巨大精品欧美黑白配亚洲| 夜夜精品视频| 亚洲性人人天天夜夜摸| 99在线|亚洲一区二区| 亚洲免费大片| 亚洲一区综合| 米奇777在线欧美播放| 麻豆av福利av久久av| 亚洲国产成人不卡| 亚洲精品自在久久| 亚洲主播在线播放| 老色鬼精品视频在线观看播放| 欧美电影免费观看大全| 欧美色图一区二区三区| 国产精品一区二区三区四区| 国内欧美视频一区二区| 99av国产精品欲麻豆| 欧美在线国产| 亚洲国产精品第一区二区| 99riav国产精品| 欧美有码在线观看视频| 欧美成人性网| 玖玖综合伊人| 亚洲国产精品久久久久婷婷老年| 亚洲欧洲一级| 欧美中文在线免费| 亚洲精品一区久久久久久| 午夜精品久久一牛影视| 欧美黄色精品| 尤物yw午夜国产精品视频明星| 99re亚洲国产精品| 久久亚洲综合网| 亚洲图中文字幕| 欧美肥婆bbw| 日韩视频在线免费| 久久国产精品一区二区三区四区| 欧美日韩美女| 亚洲国产视频直播| 欧美综合国产精品久久丁香| 亚洲免费精品| 欧美激情精品久久久久久大尺度 | 在线精品福利| 欧美一区二区视频免费观看 | 亚洲欧美在线观看| 国产精品v亚洲精品v日韩精品 | 欧美在线关看| 国产精品国产三级国产aⅴ无密码| 亚洲国产美女| 久久综合九色综合欧美就去吻 | 欧美午夜精品久久久久久浪潮| 亚洲欧洲日韩在线| 欧美刺激午夜性久久久久久久| 亚欧美中日韩视频| 国产毛片久久| 久久精品欧美| 欧美在线观看一区二区三区| 国产裸体写真av一区二区| 欧美一区二区女人| 亚洲欧美文学| 激情六月婷婷久久| 老司机精品导航| 六月天综合网| 亚洲精品专区| 日韩亚洲欧美在线观看| 欧美日韩不卡| 亚洲免费视频网站| 亚洲欧美国产日韩中文字幕| 国产女精品视频网站免费| 欧美一区二区三区日韩视频| 欧美一进一出视频| 黄色成人精品网站| 欧美阿v一级看视频| 欧美成人xxx| 午夜精品一区二区三区在线视| 欧美精品一区二| 国内综合精品午夜久久资源| 国产农村妇女精品一二区| 久久精品欧美| 蜜臀av在线播放一区二区三区| 亚洲精品中文字幕女同| 亚洲午夜av在线| 国产亚洲精品福利| 欧美国产精品日韩| 欧美日韩国产综合久久| 欧美一区=区| 欧美大片第1页| 欧美亚洲视频| 欧美国产一区二区| 香蕉免费一区二区三区在线观看| 久久久久久久97| 夜夜嗨av色综合久久久综合网| 亚洲欧美日韩一区| 亚洲国产精品v| 亚洲一区二区毛片| 亚洲日韩成人| 欧美一区2区三区4区公司二百| 99在线观看免费视频精品观看| 欧美一级大片在线免费观看| 亚洲精品三级| 久久久久.com| 亚洲欧美日韩在线不卡| 欧美电影免费观看网站| 久久爱91午夜羞羞| 欧美日韩亚洲综合在线| 欧美顶级艳妇交换群宴| 国产亚洲综合性久久久影院| 日韩亚洲精品视频| 亚洲精品综合久久中文字幕| 欧美一区高清| 午夜精品一区二区三区四区| 欧美激情导航| 男男成人高潮片免费网站| 国产精品毛片a∨一区二区三区| 亚洲福利在线看| 黄色精品在线看| 亚洲欧美日韩人成在线播放| 亚洲一区二区三区激情| 欧美黑人多人双交| 欧美国产在线电影| 在线播放豆国产99亚洲| 香蕉国产精品偷在线观看不卡| 亚洲午夜精品网| 欧美日韩国产精品| 亚洲激情亚洲| 亚洲精品视频在线观看网站| 免费不卡视频| 欧美高清视频www夜色资源网| 极品av少妇一区二区| 羞羞色国产精品| 欧美中文在线免费| 国产日韩欧美黄色| 香蕉久久一区二区不卡无毒影院 | 日韩天堂在线视频| 久久超碰97人人做人人爱| 欧美专区在线| 欧美激情亚洲综合一区| 久久噜噜亚洲综合| 国产一区二区无遮挡| 午夜精品久久久久久99热软件| 亚洲欧美视频在线观看| 国产精品日韩电影| 午夜精品理论片| 久久九九全国免费精品观看| 国产偷国产偷亚洲高清97cao | 午夜激情一区| 国产女主播一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 国产精品久久久久久久第一福利 | 亚洲日韩成人| 亚洲一区欧美激情| 国产精品男女猛烈高潮激情| 亚洲欧美成人网| 久久久久久九九九九| 一色屋精品视频免费看| 欧美jizz19性欧美| 日韩一区二区福利| 欧美一区二区三区婷婷月色| 一区二区三区在线观看国产| 欧美黑人国产人伦爽爽爽| 一本一本大道香蕉久在线精品| 午夜精品久久久久久久| 激情一区二区| 欧美三级精品| 久久精品噜噜噜成人av农村| 亚洲激情一区二区| 欧美一区二区三区的| 亚洲电影激情视频网站| 欧美人妖另类| 欧美一区二区三区四区在线观看地址| 可以看av的网站久久看| 一级成人国产| 国产中文一区二区| 欧美裸体一区二区三区| 午夜亚洲激情| 亚洲国产精品一区二区www| 一区二区三区视频在线观看 | 免费在线观看精品| 中文精品视频一区二区在线观看| 久久久久久网| 亚洲欧美日本日韩| 亚洲国产精品久久久久秋霞蜜臀| 欧美体内she精视频在线观看| 久久国产精品72免费观看| 日韩亚洲欧美高清| 亚洲福利视频网| 久久最新视频| 欧美一区在线直播| 一本色道久久综合精品竹菊| 激情五月***国产精品| 欧美性久久久| 欧美激情欧美激情在线五月| 亚洲深夜影院| 亚洲综合999| **网站欧美大片在线观看| 欧美日韩亚洲高清| 久久艳片www.17c.com| 欧美亚洲日本国产| 亚洲永久字幕| 亚洲精品国产精品国产自| 欧美成人有码|