[2126] JZOJ最も数についてと

  効果の対象に

      すべての約数の数は(自身を除く)するように、いくつかの異なる正の整数、最大合計より多くのSを選択していません。

  分析

      私たちは、その後、我々はディおならを開始している可能性があり、未知の配列があり、合併の要因を破ります!(袋)、我々はできます

      バックパック01にそれを置きます:

      F [J] = MAX([J]、F [J-1] +和F [I])。

    そう:

  コード

    

1の#include <cstdioを>
 2の#include <iostreamの>
 3  使用して 名前空間STDを、
4  
5  int型の F [ 1001000 ]。
6つの int型のANS;
7  INT N。
8  INTの和[ 1001000 ]。
9  INT メイン(){
 10      freopenは(" maxsum.in "" R " 、STDIN)。
11      freopenは(" maxsum.out "" W " 、STDOUT)。
12     cinを>> N;
13      のためにint型 i = 1 ; iが<= N / 2、iが++ ){
 14          のためにINT J =私は* 2、J <= N; J + = I){
 15              和[J] + = I。
16          }
 17      }
 18      のためのint型 i = 1 ; iは<N =、iは++ ){
 19          のためにINT J = N; J> = 1 ; j-- ){
 20              であれば(j> = I)
 21                  F [J ] = MAX(F [J]、F [JI] +和[I])。
22              年= MAX([J] F年)。
23          }
 24      }
 25      COUT << 年。
26 }

洪水

おすすめ

転載: www.cnblogs.com/WestJackson/p/11372310.html
おすすめ