DP水題大禮包

2022-02-19 18:19:04 字數 2807 閱讀 8781

一天8題,6道水題

做法一:考慮在完全揹包上加點東西

做法二:在完全揹包第一次轉移時加值

就是個狀壓dp模板

#includeusing namespace std ;

inline int read()

int n , m , state[ 4096 ] , field[ 13 ] , mod = 100000000 , dp[ 13 ][ 4096 ] ;

int main()

int n , m , a[ maxn ][ maxn ] , flag = 0 ;

int l[ maxn ][ maxn ] , r[ maxn ][ maxn ] , up[ maxn ][ maxn ] , ans = 0 ;

int main()

int lon = r[i][j] - l[i][j] + 1 ;

ans = max( ans , lon*up[i][j] ) ;

}if( !flag )cout<<0;

else cout#includeusing namespace std ;

const int maxn = 100005 ;

#define ll long long

inline int read() ;

while(g>='0'&&g<='9')s=s*10+g-'0',g=getchar() ; return s*w ;

}int n , m , tot = 1 , head[ maxn ] , to[ maxn*20 ] , nex[ maxn*20 ] , a[ maxn ] , du[ maxn ] , ru[ maxn ] ;

ll dis[ maxn ] ;

bool vis[ maxn ] ;

queueq ;

void add( int x , int y )

void toposort()

} }}int main()

for( int i = 1 ; i <= n ; ++i )

if( !du[ i ] )

toposort() ;

ll ans = -2000000005 ;

for( int i = 1 ; i <= n ; ++i )

if( !ru[ i ] )

ans = max( ans , dis[ i ] ) ;

cout《我們考慮到,每一位的影響只和當前位置的字元和先前一位的字元有關,然後就是分情況的線性dp

#includeusing namespace std ;

#define ll long long

inline ll read()

while(g>='0'&&g<='9')s=s*10+g-'0',g=getchar() ; return s*w ;

}char s[ 200005 ] ;

ll n , val[ 200005 ] , dp[ 200005 ][ 2 ] ;

inline ll max( ll x , ll y )

void updata( int i , int x )

if( dp[ i-1 ][ 1 ] != -1 )dp[ i ][ 0 ] = dp[ i-1 ][ 1 ] + val[ i ] ;

if( dp[ i-1 ][ 0 ] != -1 )dp[ i ][ 0 ] = max( dp[ i ][ 0 ] , dp[ i-1 ][ 0 ] ) ;

} int main()

else if( s[i-1] == '1' )

else

} cout#includeusing namespace std ;

const int maxn = 100005 ;

int n , m , a[ maxn ] , st[ maxn ][ 20 ] , log_a[ maxn ] ;

inline int read()

while(g>='0'&&g<='9')s=s*10+g-'0',g=getchar() ; return s*w ;

}void prepare()

return 0 ;

}

好題,我們考慮到從每個房間數的人並不好維護,然後考慮到經過的人只能是從左右兩個位置進入和出去

具體寫**裡了

#includeusing namespace std ;

#define ll long long

const int maxn = 1e5+5 ;

inline ll read()

ll n , dp[ maxn ][ 15 ] , a[ maxn ] ;

inline ll min( ll x , ll y )

while(g>='0'&&g<='9')s=s*10+g-'0',g=getchar() ; return s*w ;

}ll n , m , ans , dp[ 105 ][ maxn ] , q[ maxn ] ;

struct apt[ 105 ] ;

inline bool cmp( ap x , ap y )

inline ll max( ll x , ll y )

int main()

else dp[i][j] = max( dp[i][j] , dp[ i-1 ][ q[head] ] + (j-q[head])*t[i].val ) ;

}}

cout<}

求職大禮包

名稱 求職大禮包 作者 無 格式 很多word文件 頁數 難以統計 語言 中文 預設 摘要或目錄 面試經典試題.doc 面試真題.rar 描述記憶體分配方式.doc 某大公司的兩道筆試題.doc 記憶體對齊.doc 逆置動態鍊錶.doc 請問堆 heap 和堆疊 stack 有什麼區別.doc 求結...

貪心大禮包1

將金幣單價從高到低排序 將結束時間從早到晚排序 舉個例子 1.乙個比賽被另乙個比賽包含 選擇比賽1,因為結束早,這樣後續比賽被占用的時間可能較少 2.乙個比賽和另乙個比賽相交 選擇比賽1,同理。數學手法,寫過題解,不再贅述 click here!合併最小的兩個,優先順序佇列 從小到大 priorit...

寒假大禮包1

在進入學校以後,我感到最大的焦慮就是競爭焦慮,我需要與周圍的所有人進行競爭,成績要比他們高,性格要比周圍人好,甚至於要有好的興趣愛好,若是說最大的焦慮,可能就是 好 如何變的更好,我現在夠不夠好,怎麼比周圍人更好這樣的問題縈繞腦際,讓我總是心神不寧。在高中時,這些焦慮甚至使我難以思考,在進入大學之後...