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

Onway

我是一只菜菜菜菜鳥...
posts - 61, comments - 56, trackbacks - 0, articles - 34

pku 1948 0-1背包 加強(qiáng)版

Posted on 2010-08-08 11:08 Onway 閱讀(427) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 傷不起的ACM

pku 1948 Triangular Pastures 0-1背包思想

題意:有N個(gè)不同長(zhǎng)度fence,求用所有fence能組成的最大三角形的面積。

幾天前就看到這個(gè)題了,今天才過掉,對(duì)這個(gè)題感覺非常失敗。

首先第一想法是:將總邊長(zhǎng)的三分之一做為背包容量,進(jìn)行一次0-1背包,然后再用剩下的三分之二邊長(zhǎng)的一半做背包容量,再進(jìn)行一次0-1背包。但問題是進(jìn)行第一次背包的時(shí)候要記錄使用過的邊,以便在第二次背包時(shí)不再使用。但由于能力問題,動(dòng)手寫過兩次都無法解決這個(gè)問題。百度一下,發(fā)現(xiàn)人家也想到這個(gè)思路,但都被否決了,原因是這樣的思路,通過找三邊差值最小,并不能保證面值最大。

然后我就沒想法了。直到今天,看到marvin(網(wǎng)上認(rèn)識(shí)的ACMer)的blog,才知道思路應(yīng)該是這樣的:枚舉第一條邊和第二條邊的組合,用sgn[j][k]標(biāo)記第一邊長(zhǎng)為j,第二邊長(zhǎng)為k。如果能從給出的邊里組成這兩條邊,則進(jìn)行標(biāo)記。

看到這個(gè)思路后,發(fā)現(xiàn)原來就是這么簡(jiǎn)單,但怎么自己就沒有想到呢。然后馬上動(dòng)手就寫,又WA到快吐血。

雖然很快發(fā)現(xiàn)問題出在了用背包枚舉兩邊組合的那幾行代碼,但就是改不過來,在那里糾結(jié)得跳樓的心都有。做了一個(gè)星期的背包,居然連這幾行代碼都寫不出,都羞死了。

寫不出那幾個(gè)代碼的原因:1,對(duì)用背包枚舉兩邊組合的原理理解不透徹。2,沒有認(rèn)真分析組合情況。3,做單純的背包題時(shí)留下的思維僵硬。4.,將或運(yùn)算想當(dāng)然的寫成了并運(yùn)算。

AC了這個(gè)題目后,對(duì)背包枚舉兩邊組合部分的三重循環(huán)的邊界條件感覺還是很抽象。再深入去想,才逐漸明了。

1,需要枚舉的兩條邊的長(zhǎng)度都是不能超過總長(zhǎng)的一半的。

2,由于各邊只能使用一次,同0-1背包,循環(huán)需要用逆序。

3,對(duì)于第條邊,如果已有sgn[j-fence[i]][k]或者sgn[j][k-fence[i]],則必有sgn[j][k]。由于這種組合只需滿足其中一個(gè)即可,所以j和k都要枚舉到0并且要保證j>=fence[i]或者k>=fence[i]。

4,優(yōu)化速度的問題。由于j和k可能會(huì)出現(xiàn)長(zhǎng)度交換時(shí)會(huì)進(jìn)行重復(fù)計(jì)算,所以在計(jì)算的時(shí)候可以只取j>=k的情況,但枚舉組合的時(shí)候能取j>=k進(jìn)行枚舉嗎?表面上對(duì)j>=k的情況進(jìn)行過枚舉,似乎就滿足目的了。但實(shí)際上,這樣的j>=k的限制導(dǎo)致,能枚舉,但不能有效地標(biāo)記組合。

設(shè)sgn[j0][k0]為確定組合(0<=k0<=j0)  (確定組合即為能夠確定這種組合的存在與否)

若k0+fenc[i]>j0時(shí)

fence[i]只能加到第一邊,得到確定組合sgn[j0+fence[i]][k0]

當(dāng)fence[i+1]+k0>j0+fence[i]時(shí),(顯然,這時(shí)fence[i+1]>fence[i])

fence[i+1]又只能加到第一邊。

這樣sgn[j0+fence[i+1]][k0+fence[i]]的組合就只能標(biāo)記為失敗了。

解決方式是:對(duì)于fence[i],只要第一邊不使用這個(gè)fence[i]的時(shí)候,必須要讓它能夠加到第二邊。這樣去k=j+fence[i]即可。

#include <iostream>
#include 
<math.h>
using namespace std;
const int MAX=800;
bool sgn[MAX+1][MAX+1];
int fence[41];
int main()
{
    
double find(int,int,int);
    
int i,j,k,n,sum=0;
    scanf(
"%d",&n);
    
for(i=1;i<=n;++i)    {scanf("%d",&fence[i]);sum+=fence[i];}

    memset(sgn,
0,sizeof(sgn));
    sgn[
0][0]=1;
    
for(i=1;i<=n;++i)
        
for(j=sum/2;j>=0;--j)
            
for(k=j+fence[i];k>=0;--k)
                
if((j>=fence[i]&&sgn[j-fence[i]][k])||
                    (k
>=fence[i]&&sgn[j][k-fence[i]]))
                    sgn[j][k]
=1;            


    
double ans=-0.01,tmp;
    
for(i=1;i<=sum/2;++i)
        
for(j=1;j<=i;++j)
            
if(sgn[i][j])
            {
                tmp
=find(sum-i-j,i,j);
                
                ans
=ans>tmp?ans:tmp;
            }
    cout
<<int(ans*100)<<endl;
    
return 0;
}
double find(int x,int y,int z)
{
    
if(x+y>z&&x+z>y&&y+z>x)
        
return    sqrt(1.0*(x+y+z)*(x+y-z)*(x+z-y)*(y+z-x))*0.25;
    
else
        
return -0.01;
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            狠狠久久亚洲欧美| 亚洲电影在线播放| 久久久免费精品| 亚洲天堂av在线免费| 久久婷婷麻豆| 亚洲剧情一区二区| 欧美国产91| 国产女主播视频一区二区| 亚洲三级电影在线观看| 亚洲黄一区二区| 国产精品亚洲成人| 亚洲欧美日韩在线不卡| 欧美激情一区二区三级高清视频| 亚洲午夜羞羞片| 亚洲精品欧美在线| 久久综合伊人77777麻豆| 在线欧美电影| 久久国产精品久久久久久久久久| 99精品视频免费在线观看| 久久综合免费视频影院| 久久综合中文字幕| 亚洲私人影院在线观看| 在线电影国产精品| 麻豆成人综合网| 欧美国产精品v| 99精品视频免费全部在线| 欧美日韩国语| 亚洲永久免费精品| 久久久久久久久久看片| 精品91视频| 欧美精品一区二区高清在线观看| 久久综合狠狠综合久久激情| 欧美揉bbbbb揉bbbbb| 欧美国产日韩xxxxx| 欧美日韩精品综合| 亚洲欧洲精品成人久久奇米网| 一本久道久久综合中文字幕| 久久久蜜臀国产一区二区| 亚洲国产成人久久综合一区| 欧美激情在线播放| 久久一二三区| 亚洲女人天堂av| 亚洲人成啪啪网站| 国产女优一区| 国产精品美女一区二区| 一区电影在线观看| 欧美成人国产va精品日本一级| 国产欧美日韩在线| 欧美三级在线播放| 久久久久久电影| 免费成人在线视频网站| 最近中文字幕日韩精品| 激情校园亚洲| 国产精品久久久久久av福利软件| 国产精品对白刺激久久久| 欧美日韩在线不卡| 免费日韩精品中文字幕视频在线| 久久久久久久久久久久久女国产乱| 久久成人免费| 亚洲第一精品夜夜躁人人爽| 久久久精品日韩欧美| 久久精品日韩欧美| 一区二区三区高清在线| 欧美精品 日韩| 亚洲人成欧美中文字幕| 亚洲国产综合视频在线观看| 欧美在线一级视频| 狠狠久久婷婷| 欧美mv日韩mv国产网站| 美女精品国产| 亚洲免费电影在线| 一本大道久久精品懂色aⅴ| 欧美经典一区二区三区| 亚洲午夜av在线| 亚洲天堂男人| 国产一区二区激情| 欧美xx视频| 欧美日韩精品免费观看视频| 亚洲一区在线视频| 欧美与黑人午夜性猛交久久久| 国产欧美一区二区三区久久人妖 | 亚洲电影激情视频网站| 久久亚洲捆绑美女| 亚洲美女av网站| 亚洲手机视频| 韩国av一区二区三区在线观看| 蜜乳av另类精品一区二区| 免费亚洲婷婷| 亚洲欧美高清| 久久精品夜夜夜夜久久| 日韩视频在线观看| 亚洲综合不卡| 亚洲人成网站在线观看播放| 一区二区三区久久久| 激情成人亚洲| 亚洲免费观看在线观看| 国产午夜精品理论片a级探花 | 国产一区二区三区四区老人| 欧美成人免费一级人片100| 欧美日韩在线一区| 老司机精品福利视频| 欧美日韩不卡合集视频| 欧美一区永久视频免费观看| 久久综合九色综合欧美狠狠| 亚洲一区二区黄| 美女脱光内衣内裤视频久久影院| 亚洲一区二区在线播放| 久久久五月天| 性色av一区二区三区在线观看| 老色鬼久久亚洲一区二区| 性感少妇一区| 欧美日韩国产小视频| 久久综合99re88久久爱| 国产精品成人一区二区网站软件 | 在线成人激情黄色| 亚洲天堂男人| 久久亚洲不卡| 久久国产精彩视频| 欧美日韩一区二区三| 蜜月aⅴ免费一区二区三区| 欧美视频一区二区三区| 欧美大片免费久久精品三p| 国产精品自拍网站| 99精品国产在热久久婷婷| 亚洲激情一区二区三区| 亚洲欧美文学| 亚洲男人的天堂在线观看| 欧美国产亚洲视频| 欧美成人午夜77777| 黄色一区二区三区| 亚洲欧美影音先锋| 午夜久久久久| 国产精品毛片大码女人| 亚洲视频在线观看免费| 亚洲一区日韩在线| 欧美日韩精品免费观看视一区二区| 欧美成人精品在线观看| 一区二区三区在线免费观看| 午夜一区二区三区不卡视频| 香蕉久久一区二区不卡无毒影院| 欧美日韩一二区| 99热精品在线| 亚洲男女毛片无遮挡| 国产精品美女在线观看| 亚洲午夜久久久久久久久电影网| 亚洲一区亚洲| 国产精品综合| 久久成人精品视频| 久久久青草婷婷精品综合日韩| 国产亚洲激情| 久久精品免费观看| 老牛国产精品一区的观看方式| 在线观看日产精品| 欧美成人首页| 日韩亚洲欧美高清| 欧美淫片网站| 在线播放豆国产99亚洲| 免费观看在线综合| 99天天综合性| 久久久久久久久蜜桃| 樱花yy私人影院亚洲| 欧美国产一区视频在线观看| 99av国产精品欲麻豆| 午夜视频在线观看一区二区三区| 国产色婷婷国产综合在线理论片a| 午夜日韩在线| 亚洲成人资源网| 亚洲欧美另类在线| 黄色欧美日韩| 欧美精品性视频| 亚洲欧美国产日韩中文字幕 | 亚洲国产专区| 欧美在线你懂的| 亚洲欧洲一区二区三区| 国产精品久久久久aaaa樱花| 久久精品男女| 亚洲视频免费在线观看| 你懂的视频一区二区| 亚洲影院在线观看| 亚洲国产成人91精品| 欧美午夜在线| 牛牛精品成人免费视频| 亚洲欧美日韩中文在线制服| 亚洲视频第一页| 亚洲美女视频在线观看| 欧美在线啊v| 在线综合欧美| 亚洲第一免费播放区| 国产精品成av人在线视午夜片| 久久成人免费| 亚洲一区二区三区四区在线观看| 久久人人爽爽爽人久久久| 中文亚洲免费| 91久久夜色精品国产九色| 国产日韩在线一区| 欧美无乱码久久久免费午夜一区| 美乳少妇欧美精品| 欧美在线观看视频在线| 亚洲小视频在线| 一区二区三区高清在线|