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

The Fourth Dimension Space

枯葉北風(fēng)寒,忽然年以殘,念往昔,語(yǔ)默心酸。二十光陰無(wú)一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢(mèng)令

9.20上海東華賽區(qū)網(wǎng)絡(luò)賽H題 health (Dp+Dfs+Bit Operation)

Health

 

Unfortunately YY gets ill, but he does not want to go to hospital. His girlfriend LMY gives him N kinds of medicine, which may be helpful. It is not a good idea to take all of them, since taking several different kinds of medicine may cause undesirable side effects. Formally speaking, for each subset S of the N kinds of medicine (excluding the empty set), it has a health value v(S). If YY chooses to take a combination T of the medicines, the final effect to his illness is the sum of health values of all non-empty subsets of T.

YY wants to get healthy as quickly as possible, so the final effect of the medicines he takes should be as great as possible. Of course, YY may choose to take nothing, thus having a zero final effect, if he is too unlucky that all other alternatives he can get are negative…

 

Input

 Input contains multiple test cases.

For each test case, the first line contains a positive integer N (N16), the number of different kinds of medicine YY received from LMY.

The second line contains a single integer M (0M2N).

M lines follow, representing a list of health values.

Each of the M lines contains 2 integers, s (1s<2N) and v (-10000≤v≤10000), indicating a subset of the N kinds of medicine and its health value. Write s in binary representation and add leading zeros if needed to make it exactly N binary digits. If the ith binary digit of s is 1, then the subset it represents includes the ith kind of medicine; otherwise it does not.

It is guaranteed that no two lines of the list describe the same subset. All non-empty subsets that do not appear in the list have health value 0.

Input ends with N=0.

 

Output

 

For each test case, output one line with only one integer, the maximum final effect that can be achieved.

 

Sample Input

2

3

1 10

2 -1

3 100

0

 Sample Output

 109





比賽的時(shí)候,看到這道題過(guò)的人很多,但是自己卻沒(méi)什么思路,非常郁悶,一看題就知道肯定是個(gè)DP,可是究竟怎么動(dòng)態(tài)規(guī)劃呢?想了半天也想不出來(lái),一直卡在這個(gè)題上,后來(lái)有個(gè)同學(xué)提示了我方法,這才明白過(guò)來(lái),原來(lái)這里面還有位運(yùn)算,看來(lái)我平時(shí)缺少位運(yùn)算方面的訓(xùn)練了。。。哎 我還是太水。。。
分析:這個(gè)題的DP思想是把所有1 to 2^n-1的狀態(tài)所對(duì)應(yīng)的健康值都算出來(lái),然后再其中取一個(gè)最大值。我們看看他是如何狀態(tài)轉(zhuǎn)移的:
            假設(shè) n=3  現(xiàn)在考慮 1 1 1(7,從左到右分別是第3,2,1種藥品) 這種狀態(tài),如果第三種藥品不使用,那么相當(dāng)于0 1 1 產(chǎn)生的 總健康值;
            這個(gè)健康值已經(jīng)由它的子結(jié)構(gòu)得到。
            如果使用第三種藥品,那么我們進(jìn)行一次DFS,將他對(duì)應(yīng)的所有的有效狀態(tài)(無(wú)效狀態(tài)對(duì)應(yīng)為0即可)對(duì)應(yīng)的健康值加起來(lái),這樣就得到了
            使用第三種藥物的總健康值。
            我們將上述子結(jié)構(gòu)和DFS得到的結(jié)果相加,便得到了當(dāng)前狀態(tài)下的總健康值。
我們做一個(gè)循環(huán),i from 1to 2^n-1 ,把所有情況對(duì)應(yīng)的健康值算出來(lái),然后再其中取一個(gè)最大值即可。(位運(yùn)算很重要!)

#include<iostream>
using namespace std;
#define MAX (1<<17)

int value[MAX];
int dp[MAX];
int bin[20];
int n,m;
int sum;
int ans;

void dfs(int i,int p)
{

    
if(i<0)
    
{
        sum
+=value[p];
        
return ;
    }

    
else if(bin[i]==1)
        dfs(i
-1,p+(1<<i));
    dfs(i
-1,p);
}



void solve(int n)
{
    
int now=( (1<<n)-1 );
    
int i;
    
int j=1;
    
int k=-1;
    
for(i=1;i<=now;i++)
    
{
        sum
=0;
        memset(bin,
0,sizeof(bin));
        j
=1;
        k
=-1;
        
while(j*2<=i)
        
{

            
if(j&&i)
            
{
                k
++;
                bin[k]
=1;
            }

            
else 
            
{
                k
++;
                bin[k]
=0;
            }

            j
*=2;

        }

        dfs(k,j);
        dp[i]
=dp[i-j]+sum;
        
if(dp[i]>ans)
        ans
=dp[i];
    }



}



int main()
{
    
int i;
    
while(scanf("%d",&n))
    
{
        ans
=0;
        memset(value,
0,sizeof(value));
        
if(n==0)
            
break;
        scanf(
"%d",&m);
        
for(i=1;i<=m;i++)
        
{

            
int a,b;
            scanf(
"%d%d",&a,&b);
            value[a]
=b;
        }

        solve(n);
        printf(
"%d\n",ans);

    }

    
return 0;
}






做了這個(gè)題,突然想起了將10進(jìn)制轉(zhuǎn)化成2進(jìn)制的方法,不斷模除2,取余數(shù),但是一直沒(méi)有深究,今天終于明白了,原來(lái)如果把這個(gè)十進(jìn)制數(shù)考慮成2進(jìn)制,右移一位相當(dāng)于除以2,模除2就是把最后那一位給取出來(lái)了,不斷的模除2,就把這個(gè)2進(jìn)制數(shù)一位一位的取出。
PS :感謝那位提示我思路的同學(xué)

posted on 2009-09-21 14:28 abilitytao 閱讀(1309) 評(píng)論(4)  編輯 收藏 引用

評(píng)論

# re: 9.20上海東華賽區(qū)網(wǎng)絡(luò)賽H題 health (Dp+Dfs+Bit Operation) 2009-09-21 15:48 OwnWaterloo

> 原來(lái)如果把這個(gè)十進(jìn)制數(shù)考慮成2進(jìn)制
在C/C++中,整數(shù)本來(lái)就是按2進(jìn)制而不是按10進(jìn)制存儲(chǔ)的。
不存在考慮成2進(jìn)制的說(shuō)法。

> 突然想起了將10進(jìn)制轉(zhuǎn)化成2進(jìn)制的方法
10進(jìn)制是表象, 2進(jìn)制才是本質(zhì)。
10進(jìn)制只存在于輸入輸出的過(guò)程中, 變量最終是按2進(jìn)制存儲(chǔ)。



> 右移一位相當(dāng)于除以2,模除2就是把最后那一位給取出來(lái)了
> 不斷的模除2,就把這個(gè)2進(jìn)制數(shù)一位一位的取出。
int i,d;
d = i % 2u;
i /= 2u;

如果你使用的編譯器不是古董,第2、3行代碼也會(huì)分別被編譯為位與、移位—— 不一定真的需要寫為 & , >>= —— 而不是除法。

  回復(fù)  更多評(píng)論   

# re: 9.20上海東華賽區(qū)網(wǎng)絡(luò)賽H題 health (Dp+Dfs+Bit Operation) 2009-09-21 19:08 abilitytao

@OwnWaterloo
呵呵 謝謝指點(diǎn) 學(xué)習(xí)了^_^  回復(fù)  更多評(píng)論   

# re: 9.20上海東華賽區(qū)網(wǎng)絡(luò)賽H題 health (Dp+Dfs+Bit Operation) 2009-09-21 19:47 qwe

當(dāng)時(shí)也想到了 , 因?yàn)檫@復(fù)雜度沒(méi)敢寫!LZ你能分析下這復(fù)雜度嗎?  回復(fù)  更多評(píng)論   

# re: 9.20上海東華賽區(qū)網(wǎng)絡(luò)賽H題 health (Dp+Dfs+Bit Operation) 2009-09-30 18:09 abilitytao

@qwe
最低2^16 最高2^32
折中一下 似乎可以接受 對(duì)了 請(qǐng)問(wèn)你有更好的方法嗎?   回復(fù)  更多評(píng)論   


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


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲视频在线播放| 久久久久久久999| 亚洲视频视频在线| 久久精品成人欧美大片古装| 欧美日韩视频在线一区二区观看视频| 亚洲欧洲日韩女同| 亚洲黄页视频免费观看| 亚洲大片在线| 亚洲国产三级网| 亚洲美女少妇无套啪啪呻吟| 一本色道久久加勒比精品| 国产精品99久久久久久久久久久久 | 国产欧美91| 国产精品亚洲一区二区三区在线| 国产情人节一区| 欲香欲色天天天综合和网| 亚洲国产黄色| 亚洲午夜视频在线观看| 久久av红桃一区二区小说| 欧美大片免费久久精品三p | 欧美午夜精品理论片a级按摩| 国产精品青草久久| 黄色一区二区三区四区| 亚洲日本在线视频观看| 亚洲制服av| 欧美sm重口味系列视频在线观看| 亚洲国内高清视频| 亚洲日本中文字幕免费在线不卡| 亚洲美女黄色| 久久精品一区二区国产| 欧美日韩成人在线观看| 国产欧美视频在线观看| 最新亚洲一区| 久久成人免费视频| 亚洲七七久久综合桃花剧情介绍| 国产精品三区www17con| 久久一区国产| 狠狠干狠狠久久| 亚洲精品乱码久久久久| 欧美怡红院视频| 亚洲免费av电影| 久久久久青草大香线综合精品| 欧美视频精品在线| 亚洲激情av在线| 久久综合九色九九| 亚洲欧美日本日韩| 欧美视频在线播放| 亚洲免费观看高清在线观看 | 国产色婷婷国产综合在线理论片a| 亚洲激情电影在线| 久久久久久久性| 亚洲娇小video精品| 欧美一级成年大片在线观看| 欧美色大人视频| 一区二区欧美亚洲| 欧美二区在线| 玖玖精品视频| 影音先锋亚洲电影| 久久天天狠狠| 欧美一区二区精品久久911| 欧美日韩三级一区二区| aa亚洲婷婷| 亚洲伦理网站| 欧美精品一区二区三区视频| 伊人精品久久久久7777| 久久久久久伊人| 欧美一级网站| 国产午夜精品久久久久久免费视 | 久久精品国产第一区二区三区最新章节 | 亚洲高清一区二区三区| 久久久久久久综合色一本| 国产在线播放一区二区三区| 久久精品二区亚洲w码| 欧美一区二区三区成人| 国产日韩欧美精品| 久久久久久一区二区| 久久免费国产精品1| 在线日韩视频| 91久久精品国产91久久性色| 欧美精品久久久久久久久久| 亚洲主播在线播放| 亚洲一区在线看| 国产欧美精品一区二区色综合| 午夜在线a亚洲v天堂网2018| 亚洲午夜在线观看视频在线| 国产精品美女视频网站| 欧美一区二区三区免费视| 午夜精品成人在线| 在线播放豆国产99亚洲| 欧美激情影音先锋| 欧美日韩另类一区| 欧美伊人久久久久久久久影院 | 亚洲国产精品www| 亚洲国产专区| 国产精品自在欧美一区| 欧美大胆人体视频| 欧美日韩一区二| 久久久中精品2020中文| 欧美www视频| 亚洲欧美卡通另类91av| 欧美一区二区三区视频在线观看 | 9i看片成人免费高清| 亚洲一区二区三区高清不卡| 国产综合在线看| 亚洲精品久久久久久一区二区| 国产精品色在线| 欧美激情麻豆| 国产精品综合久久久| 亚洲国产一区二区三区在线播| 国产毛片精品视频| 亚洲日韩第九十九页| 黄色在线一区| 亚洲一区日韩在线| 亚洲免费在线视频| 亚洲视频免费| 欧美成人免费播放| 久久精品女人天堂| 欧美色播在线播放| 亚洲激情自拍| 精品91在线| 亚洲女人天堂av| 亚洲深夜福利在线| 免费在线欧美视频| 久久久九九九九| 国产精品入口麻豆原神| 亚洲免费精彩视频| 亚洲免费大片| 免费亚洲电影| 免费一级欧美片在线观看| 国产日韩欧美在线| 亚洲欧美日韩国产成人| 亚洲男女自偷自拍| 欧美色区777第一页| 亚洲人人精品| 亚洲精品国产精品乱码不99| 久久免费视频这里只有精品| 久久精品国产99精品国产亚洲性色 | 亚洲性图久久| 亚洲在线电影| 老司机亚洲精品| 亚洲精品一品区二品区三品区| 亚洲美女尤物影院| 久久激情一区| 欧美视频一区二区三区在线观看| 国产三级欧美三级日产三级99| 亚洲国产精品一区在线观看不卡| 亚洲最新视频在线| 男人的天堂成人在线| 一区二区三区视频观看| 欧美96在线丨欧| 国产色产综合产在线视频| 亚洲一级二级在线| 亚洲视频网站在线观看| 欧美日韩国产精品专区| 一区二区免费在线播放| 欧美激情第二页| 99re66热这里只有精品4| 欧美成人69av| 欧美精品一区二区视频| 亚洲日本成人女熟在线观看| 噜噜噜噜噜久久久久久91| 久久精品日产第一区二区三区| 一区免费观看| 最新国产の精品合集bt伙计| 欧美激情精品久久久久久变态| 亚洲人成绝费网站色www| 欧美激情综合| 国产精品女主播在线观看| 久久精品国产69国产精品亚洲 | 国产农村妇女精品一区二区| 午夜亚洲激情| 日韩亚洲成人av在线| 国模一区二区三区| 久久综合九色综合欧美就去吻| 亚洲欧美成人一区二区三区| 欧美日韩一区二区三区在线看 | 欧美激情亚洲自拍| 国产精品第2页| 欧美一区二区三区在线看| 亚洲国产精品悠悠久久琪琪| 国产欧美精品一区aⅴ影院| 欧美日本亚洲韩国国产| 久久久久久久久久久成人| 99国产精品私拍| 美女国产一区| 欧美激情91| 亚洲欧洲日产国产综合网| 国产三级精品在线不卡| 久久婷婷蜜乳一本欲蜜臀| 亚洲片在线观看| 激情综合色综合久久综合| av成人免费观看| 亚洲激情成人网| 性做久久久久久| 亚洲欧美伊人| 欧美日韩在线播放一区| 免费毛片一区二区三区久久久| 国产精品久久国产精品99gif| 先锋影音国产一区| 国产精品久久久久久妇女6080|