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

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 閱讀(1319) 評(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>
            欧美v日韩v国产v| 久久婷婷国产麻豆91天堂| 欧美日韩亚洲一区二区三区在线观看 | 性久久久久久| 韩国成人精品a∨在线观看| 久久爱www久久做| 亚洲高清在线| 亚洲图中文字幕| 国产日韩一区在线| 久久综合色播五月| 一区二区激情小说| 久久国产视频网| 91久久在线观看| 国产精品99一区| 久久精品成人欧美大片古装| 亚洲黄色精品| 欧美一区二区三区免费视| 尤物yw午夜国产精品视频| 欧美成人免费视频| 西西人体一区二区| 亚洲成色最大综合在线| 午夜激情亚洲| 亚洲精品欧美激情| 国产美女扒开尿口久久久| 久热精品在线| 午夜精品久久久久| 亚洲国产精品久久久久秋霞不卡| 亚洲欧美日韩一区在线| 亚洲国产欧美一区二区三区久久 | 一区二区三区在线高清| 欧美日韩国产大片| 久久久999国产| 国产精品99久久久久久久久| 美女主播一区| 久久超碰97中文字幕| 亚洲激情综合| 国产一区久久久| 国产精品h在线观看| 久久在线播放| 欧美亚洲一区二区在线| 日韩视频一区二区三区| 美女脱光内衣内裤视频久久影院| 一区二区三区四区国产精品| 亚洲国产精品va在线看黑人| 国产欧美精品在线| 国产精品国产一区二区| 久久综合九色综合欧美就去吻| 午夜精品久久久久影视| 亚洲美女性视频| 最新国产精品拍自在线播放| 久久久久五月天| 欧美在线观看视频| 亚洲在线一区| 亚洲视频在线观看视频| 亚洲精品自在在线观看| 亚洲高清中文字幕| 一区二区在线看| 国产在线一区二区三区四区| 国产精品国产三级国产| 欧美日韩精品欧美日韩精品一| 蜜桃av综合| 免费一级欧美在线大片| 久久九九国产精品| 欧美在线看片a免费观看| 亚洲欧美久久久| 亚洲欧美日韩一区二区| 亚洲天堂成人在线视频| 一本色道久久综合狠狠躁篇的优点| 亚洲国产欧美一区| 亚洲人成在线观看网站高清| 亚洲国产精品va在线看黑人动漫 | 亚洲高清不卡在线| 一区二区在线免费观看| 在线播放日韩专区| 亚洲国产合集| 亚洲激情视频网| 日韩视频免费观看| 一区二区国产精品| 亚洲一区久久久| 午夜精品免费视频| 久久精品一级爱片| 蜜月aⅴ免费一区二区三区| 久久综合久久综合久久综合| 麻豆精品精华液| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲一区在线免费| 在线视频欧美一区| 午夜一区二区三视频在线观看| 先锋影音国产一区| 久久久亚洲欧洲日产国码αv | 国产欧美日韩91| 黑人一区二区| 亚洲人精品午夜| 亚洲午夜性刺激影院| 午夜精品理论片| 蜜臀va亚洲va欧美va天堂| 亚洲国产精品成人一区二区| 一本色道精品久久一区二区三区| 亚洲影院一区| 久久深夜福利免费观看| 欧美日本精品在线| 国产日韩高清一区二区三区在线| 在线观看成人小视频| 亚洲精品一级| 欧美一区二区大片| 亚洲成色最大综合在线| 一区二区三区四区五区在线| 欧美专区第一页| 欧美日本精品| 国内精品视频666| 一本色道久久综合| 久久国产一区二区| 亚洲美女黄色片| 欧美一区在线看| 欧美日韩直播| 亚洲高清视频的网址| 在线视频免费在线观看一区二区| 久久久精品一品道一区| 91久久久久久| 久久国产精品一区二区| 欧美日韩国产高清视频| 一区二区三区在线视频免费观看| 99re6热在线精品视频播放速度| 欧美一区二区三区免费在线看 | 老司机67194精品线观看| 国产精品国产三级国产a| 亚洲国产精品热久久| 性欧美精品高清| 亚洲美女黄色| 欧美刺激午夜性久久久久久久| 国产精品夜夜夜一区二区三区尤| 亚洲国内欧美| 久久一二三四| 亚洲一区二区在线免费观看| 欧美激情第一页xxx| 狠狠久久综合婷婷不卡| 亚洲女优在线| 亚洲黄色影院| 看片网站欧美日韩| 激情久久久久久久| 亚洲自拍偷拍色片视频| 亚洲人在线视频| 免费成人黄色片| 影音先锋国产精品| 久久女同精品一区二区| 亚洲午夜一区| 国产精品国产馆在线真实露脸 | 午夜久久黄色| 99re6热在线精品视频播放速度 | 欧美日韩免费观看一区三区 | 亚洲乱亚洲高清| 亚洲国产91精品在线观看| 久久精品av麻豆的观看方式| 国产日产欧产精品推荐色| 亚洲免费在线观看| 亚洲调教视频在线观看| 欧美色网一区二区| 亚洲午夜视频在线观看| 99精品视频免费| 欧美特黄一区| 亚洲免费一区二区| 亚洲一区二区av电影| 国产精品久久国产愉拍| 亚洲一区二区免费在线| 在线综合亚洲| 国产女人aaa级久久久级| 欧美在线日韩精品| 欧美伊久线香蕉线新在线| 国内精品久久久| 蜜臀久久久99精品久久久久久| 久久人人超碰| 亚洲精品乱码久久久久久黑人| 亚洲高清中文字幕| 欧美精品v国产精品v日韩精品| 亚洲精品资源美女情侣酒店| 亚洲国产一区二区三区在线播| 欧美日韩第一区| 亚洲尤物在线视频观看| 亚洲香蕉伊综合在人在线视看| 国产精品亚洲综合久久| 久久一区中文字幕| 欧美成人有码| 在线亚洲激情| 性做久久久久久| 亚洲国产高清视频| 99精品福利视频| 国产人成精品一区二区三| 久久综合一区| 欧美激情视频在线播放| 亚洲一线二线三线久久久| 午夜老司机精品| 亚洲国产精彩中文乱码av在线播放| 亚洲欧洲精品一区| 国产精品一区在线观看| 久久视频在线免费观看| 欧美激情一二三区| 久久成人人人人精品欧| 快播亚洲色图| 欧美专区福利在线| 欧美福利电影网|