發表文章

目前顯示的是 1月, 2017的文章

Uva 725 ----------- Division

// Uva 725    --------  Division #include <iostream> #include <cstdlib> #include <cstring> using   namespace  std ; int  main ( ) { int  iInput ; int  iFlag, iFlag2, iFlag3 ; bool  second ; int  iBucket [ 10 ]   =   { 0 } ; int  iRem [ 5 ]   =   { 0 } ;        // store number of abcde    second  =   false ; while   (   cin   >>  iInput  )      {         if   (  iInput  ==   0   )          break ;      if   (  second  )          cout   <<  endl ;      else         second  =   true ;      int  i,j,k,l,m ;      int  iNum, iTemp, iTemp2,count ;       iFlag3  =   0 ;      for   (  i = 12345   ;  i <= 98765   ;  i ++   )          {          memset   ( iBucket, 0 , sizeof ( iBucket ) ) ;         iTemp  =  i ;           iFlag  =  j  =   0 ;          while   (  iTemp  >   0   )              {             iRem [ j ]   =  iTemp  %   10 ;             l  =  iTemp  %

coin change -- 679

// dp --- coin change #include <iostream> #include <cstring> #include <stdio.h> using   namespace  std ; int  dp [ 7500 ] ; int  main ( ) { int  iCoinW [ 5 ]   =   {   1 ,  5 ,  10 ,  25 ,  50   } ;    int  iIn,i,j ;     while   (   cin   >>  iIn  )      {      memset ( dp, 0 , sizeof ( dp ) ) ;     dp [ 0 ]   =   1 ;      for   (  i = 0   ;  i < 5   ;  i ++   )          for   (  j = 0   ;  j < 7490   ;  j ++   )               dp [ j + iCoinW [ i ] ]   =  dp [ j + iCoinW [ i ] ]   +  dp [ j ] ;        cout   <<  dp [ iIn ]   << endl ;               } }

DP basic 455A codeforces

// DP practice // 455A --- codeforces #include <iostream> #include <stdio.h> #include <cstring> using   namespace  std ; const   int  N  =   1000010 ; long   long   int  dp [ N ] ; long   long   int  cnt [ N ] ; int  main ( ) { int  iT ; int  iNum,iLarge ; int  i,j ; cin   >>  iT ; memset ( cnt, 0 , sizeof ( cnt ) ) ; iLarge  =   0 ; for   (  i = 0   ;  i < iT  ;  i ++   )          {      cin   >>  iNum ;      // count number appear times     cnt  [ iNum ] ++ ;      // store the largest number to reduce run time      if   (  iNum > iLarge  )         iLarge  =  iNum ;      } dp [ 0 ]   =   0 ; dp [ 1 ]   =  cnt [ 1 ] ; for   (  j = 2   ;  j <= iLarge  ;  j ++   )     dp [ j ]   =  max ( dp [ j - 1 ] ,dp [ j - 2 ]   +   ( cnt [ j ] * j ) ) ;           cout   <<  dp [ j - 1 ]   <<  endl ;     } DETAIL: ex:    input 2 --  1  2 cnt[1]