最も強力な(DP-のような水圧の問題)

トピックリンク:

https://ac.nowcoder.com/acm/problem/15832

効果の件名:

翻訳、各衝突は二つのうちの一つが、2はなくなっているではない、消えていることに注意してください

具体的なアイデア:

DP [i]はiがサイクルの列挙のためのトリプルでどのくらいのエネルギー最大の状態を表しています

ACコード:

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3位LL定義長い 長い
4位INF定義0x3f3f3f3f 
5位LL_infを定義する(1LL << 60 6  のconst  int型 MAXN = 2E5 + 100 7  INTの DP [ 1024 + 100 ]。
8  INT [ 15 ] [ 15 ]。
9  のint main()の
 10  {
 11      INT N。
12      しばらく(〜のscanf(" %のD "、&​​N)&& N)
 13      {
 14          のmemset(DP、0はsizeof (DP))。
15          のためにint型 I = 0 ; iがN <; Iは++ 16          {
 17              のためにINT J = 0 ; J <N; J ++ 18              {
 19                  のscanf(" %dの"、および[I] [J])。
20              }
 21          }
 22          INT maxstate =(1<< N) - 1 23          INT MAXX = 0 24          のためにint型 I = 0 ; I <= maxstate; iが++ 25          {
 26              のためにINT J = 0 ; J <N; J ++ 27              {
 28                  のためのint型のk = 0、N <Kあり、k ++ 29                  {
 30                      もし(K == j)は
 31                          続けます32                      であれば((I&(1 << J))== 0&&(I&(1 << K))== 0 33                          、DP [I ^(1 << J)= MAX(DP [iは^(1 << J)]、DP [I] + [K] [J])。
34                      MAXX = MAX(MAXX、DP [I ^(1 << J)])。
35                  }
 36              }
 37          }
 38          のprintf(" %d個の\ n " 、MAXX)。
39      }
 40      リターン 0 41 }

ACMのキャリアは、この終わりにする必要があります

おすすめ

転載: www.cnblogs.com/letlifestop/p/11098159.html