求hack 数据是真水
查看原帖
求hack 数据是真水
622371
__zhangyx__楼主2023/11/16 15:36
#include<bits/stdc++.h>

using namespace std;

#define int long long
typedef pair<int,int> PII;

const int N = 1e6,M = 5 * 1e5 + 5;
const int INF = 0x7f7f7f7f;
int n,m;
int k[N + 5],a[N + 5],t[N + 5];
int dp[N + 5];

void solve() {
    cin >> n >> m;
    for (int i = 1;i <= n;i ++) cin >> k[i] >> a[i];
    for (int i = 1;i <= m;i ++) cin >> t[i];
    
    dp[0] = 1;
    int V = -1;
    for (int i = 1;i <= m;i ++) V = max(V,t[i]);
    
    for (int i = 1;i <= n;i ++) {
        for (int j = V;j >= 0;j --) {
            for (int h = 1;h <= a[i];h ++) {
                if (h * k[i] > j) break;
                dp[j] |= dp[j - h * k[i]];
            }
        }
    }
    
    for (int i = 1;i <= m;i ++) {
        if (dp[t[i]] == 1) cout << "Yes" << endl; 
        else cout << "No" << endl; 
    }
    
} 
 
signed main() {
    std::ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    int T = 1;//cin >> T;
    while (T --) solve();
}
2023/11/16 15:36
加载中...