邦德I【推荐】

题目大意
  每个人都知道詹姆斯邦德,著名的007,但很少有人知道很多任务都不是他亲自完成的,而是由他的堂弟们吉米邦德完成(他有很多堂弟),詹姆斯已经厌倦了把一个个任务分配给一个个吉米,他向你求助。每个月,詹姆斯都会收到一些任务,根据他以前执行任务的经验,他计算出了每个吉米完成每个任务的成功率,要求每个任务必须分配给不同的人去完成,每个人只能完成一个任务。
  请你编写程序找到一个分配方案使得所有任务都成功完成的概率。
题解
  开始受LXF和WJP的影响焦灼的码了最大全匹配,那叫一个*疼,一直WA到2:30,他们居然告诉我正解是状压DP,搞得我心灰意冷,刚刚才写完,具体看代码。
代码(不是我太懒,具体就只有这一点):
 for i:=1 to a[n]*2-1 do  
    begin  
      fillchar(s,sizeof(s),0);  
      for j:=1 to n do  
        if i and a[j]<>0  then  
           begin  
              s[0]:=s[0]+1;  
              s[s[0]]:=j;  
           end;  
      for j:=1 to s[0] do  
        f[i]:=max(f[i],f[i-a[s[j]]]*a[s[0],s[j]]);  
    end;  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值