知周所众,在C艹中有一个奇奇怪怪的功能:宏,你可以定义一个宏来指代某项操作,例如
#define cxk basketball(114514)
void basketball(int n){
while (n--){
cout << "你干嘛啊啊哎哟";
}
}
int main(){
cxk(114514);
basketball(114514);
}
这下,main函数中的两个语句效果是一样的啦。
刚好最近在刷题,于是我把一道动规的题目稍微改了一下:
砝码称重
问题描述
给定 nn 种砝码(每种砝码个数不限)和一个整数 MM,求至少需要几个砝码才可以称出刚好 MM 克。
输入格式
第一行:N,MN,M。(n\leq 100,m\leq1000n≤100,m≤1000)
第二行:每种砝码的重量 w[i]w[i]。
输出格式
一行:称出重量 mm 最少需要的砝码个数;如果称不出重量 mm 则输出 Impossible
输入数据 1
3 4
1 2 3
输出数据 1
2
(latex炸了,不想修)
于是轻轻松松写出DP代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
const int INF = 0x3f3f3f3f;
int n,m,a[N],dp[N];
int main(){
cin >> n >&