成电DP专题 A 柱爷与咸鱼神功

来源:互联网 发布:sql数据库报表开发 编辑:程序博客网 时间:2024/04/30 03:12

某日,喵哈哈村,柱爷在自己房间内,面对魔镜

"魔镜啊,魔镜,什么才是这个世界上最强大的武功?"

霎时,一道惊雷落下,柱爷的面前竟然浮现出了一本古老的黑色书籍,而书的名字竟然是“咸鱼神功”!

翻开一看,书的第一页赫然写着:”练至大成可变身咸鱼王,掌控雷电!

看到这句话,柱爷当即决定修炼咸鱼神功!

既然是神功,也不是那么好练的,因此柱爷决定好好的规划一下自己的修炼过程!

柱爷有NN点心情值,而咸鱼神功则有MM个招式,对于每个招式,柱爷必须要消耗TiTi点心情值才能掌握,同时柱爷会获得ViVi的修炼值

那么,柱爷能够获得的最大修炼值是多少呢?

Input

第一行两个整数NN,MM,分别表示柱爷的心情点数和咸鱼神功的招式数量

接下来MM行,每行22个整数,TiViTi,Vi,分别表示学习该招式的消耗和能获得的修炼值

数据保证:

  • 1NM50001≤N,M≤5000

  • 1TiVi100001≤Ti,Vi≤10000

Output

输出仅一行,表示柱爷能获得的最大修炼值

Sample input and output

Sample InputSample Output
5 42 52 33 94 4
14


01背包题:

#include <bits/stdc++.h>using namespace std ;int dp[50000];struct node{int val;int wei;}a[50000];int main(){int n , m ;while(cin>>n>>m){memset(dp,0,sizeof(dp));memset(a,0,sizeof(a));for(int i = 0 ; i < m ; i++) cin>>a[i].val>>a[i].wei;for(int i = 0 ; i < m ; i++){for(int j = n ; j>=a[i].val ; j--){if(dp[j] < dp[j-a[i].val] + a[i].wei){dp[j] = dp[j-a[i].val] + a[i].wei;}}}cout<<dp[n]<<endl;}return 0 ;}


0 0
原创粉丝点击