赞
踩
大致题意
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; // int num[N]; int A, B, M; int a[N], b[N], fin[N]; int minn, ans; void init()//初始化进行处理找到所有b的没有使用券时获得的最小值,即找到最小的a,然后再和所有的b分别相加即可 { minn = a[1] for(int i = 1; i < A; i++) minn = min(minn, a[i + 1]); for(int i = 1; i <= B; i++) f[i] = b[i] + minn; return ; } int main() { // freopen("1.txt", "r", stdin); // freopen("2.txt", "w", stdout); std::ios::sync_with_stdio(false); cin.tie(0); cout .tie(0); cin >> A >> B >> M; for(int i = 1; i <= A; i++) cin >> a[i]; for(int i = 1; i <= B; i++) cin >> b[i]; init(); while(t--) { int x, int y, int c; cin >> x >> y >> c; f[y] = min(f[y], a[x] + b[y] - c);//f[i]保存的是选择的是第i个的微波炉时获得的组合的最小的值 } ans = 0x3f3f3f; for(int i = 1;i <= B; i++) ans = min(ans, f[i]); cout << ans << endl; return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。