#include<iostream>
using namespace std;
int main()
{
int cash,n,max;
while(cin>>cash>>n)
{
max = 0;
int m[1001],v[1001];
for(int i = 0;i<n;i++) cin>>m[i]>>v[i];
bool dp[100001];
memset(dp,0,sizeof(dp));
dp[0] = true;
for(int i = 0;i<n;i++)
{
for(int j = max;j>=0;j--)
{
if(dp[j])
{
for(int k = 1;k <= m[i];k++)
{
int tmp = j+k*v[i];
if(tmp>cash) break;
dp[tmp] = true;
if(tmp>max) max = tmp;
}
}
}
}
cout<<max<<endl;
}
return 0;
}
分享到:
相关推荐
【标题】"poj1276解答和分析"是一个关于解决特定编程问题的资源集合,其中包含了作者对于这个问题的理解、解析以及相应的源代码。在编程竞赛或算法学习中,POJ(Problem On The Internet)是流行的一个在线判题系统...
【标题】"POJ1276-Cash Machine"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Set of Peking University)。这个题目挑战程序员解决现金自动取款机(ATM)的现金提取问题,涉及到算法设计和实现。 ...
北大POJ1276试题代码
晒代码之二——多重背包(POJ1276)
* 背包问题:背包问题是指解决问题的背包问题算法,如 poj1837、poj1276。 * 型如下表的简单 DP:型如下表的简单 DP 是指解决问题的简单 DP 算法,如 poj3267、poj1836、poj1260、poj2533。 * 计算几何学:计算几何...
* 背包问题:例如 poj1837、poj1276。 * 类型 DP:例如 poj3267、poj1836、poj1260、poj2533。 中级 1. 基本算法: * C++的标准模版库的应用:例如 poj3096、poj3007。 * 较为复杂的模拟题的训练:例如 poj...
- 背包问题:如`poj1837, poj1276`。 - 简单DP:如`poj3267, poj1836`。 - **数学** - 组合数学:如`POJ3252, poj1850`。 - 数论:如`poj2635, poj3292`。 #### 第二阶段中级训练计划 #### 第3周至第4周(共...
- (poj1837, poj1276):通过位运算来压缩状态,从而减少内存占用。 2. **背包问题**: - (poj3267, poj1836, poj1260, poj2533):零一背包、完全背包等问题的解决方案。 3. **二维动态规划**: - (poj3176, poj...
5. **动态规划**和**数学**:poj1837、poj1276是简单的动态规划问题,poj3267、poj1836等进一步强化了DP,poj3252、poj1850等则涉及组合数学,poj2635、poj3292等训练了数论知识。 **中级阶段**则更加强调复杂算法...
- POJ 1837、POJ 1276:基础动态规划问题。 #### 多维动态规划 - **题目示例**: - POJ 3267、POJ 1836:多维状态转移方程。 - POJ 1260、POJ 2533:涉及多个变量的状态转移。 - POJ 3176、POJ 1080:复杂的...
- 推荐题目:[poj1837](https://vjudge.net/problem/POJ-1837)、[poj1276](https://vjudge.net/problem/POJ-1276) - 概率论问题通常涉及事件的概率计算,需要理解条件概率、期望等概念。 2. **期望** - 推荐题目...
1. **状态压缩动态规划**:通过位运算来表示状态,优化空间和时间复杂度(poj1837, poj1276)。 ### 六、几何算法 1. **凸包**:构建点集的凸包(poj3267, poj1836, poj1260, poj2533)。 2. **线段交**:计算线段...
- poj1276 - **应用场景**:适用于资源分配、组合优化等问题。 **2. 其他典型动态规划问题** - **示例题目**: - poj3267 - poj1836 - poj1260 - poj2533 - poj3176 - poj1080 - poj1159 - **应用场景**:...
* 背包问题:POJ1837、POJ1276 * DP算法:POJ3267、POJ1836、POJ1260、POJ2533 二、图算法 * 度限制最小生成树和第K最短路:POJ1639、POJ3216、POJ2446 * 最优比率生成树:POJ2728 * 最小树形图:POJ3164 * 次小...
* 背包问题:poj1837, poj1276 * 类似表的简单 DP:poj3267, poj1836, poj1260, poj2533 * 最长公共子序列:poj3176, poj1080, poj1159 * 最优二分检索树问题 六、数学 * 组合数学: + 加法原理和乘法原理 + ...
例如,POJ1837和POJ1276是背包问题的典型例题,而POJ3267和POJ1836则是简单DP的经典例题。 数学部分涵盖了组合数学、数论和计算方法三方面。例如,POJ3252和POJ1850是组合数学的代表题,而POJ2635和POJ3292则是数论...
(1) 背包问题:poj1837, poj1276 (2) 简单DP:poj3267, poj1836, poj1260, poj2533 (3) 其他DP问题: 六、中级算法 本部分涵盖了中级算法,包括C++的标准模版库的应用、较为复杂的模拟题的训练、差分约束系统的...
1. 背包问题:如poj1837、poj1276。 2. 简单动态规划:如表格形式的DP问题,如poj3267、poj1836等。 3. 最长公共子序列:如poj3176、poj1080等。 4. 最优二分检索树问题:如poj1159。 六、数学 1. 组合数学:加法...
动态规划是解决复杂问题的关键,背包问题和特定类型的 DP 问题如 poj1837 和 poj1276 可以帮助理解这一概念。 数学知识是算法中的另一个重要组成部分,包括组合数学(如 poj3252)、数论(如 poj2635)和计算方法...