奇怪的dp 思路清奇 dp[i][j]表示当前做完了i个任务,1机器花了j秒,2机器花费的最少时间,然后转移就行了. #include<bits/stdc++.h> using namespace std; ; struct data { int a, b, c; } a[N]; int n, ans = 0x3f3f3f3f, pre; ][N * ]; int main() { scanf("%d", &n); ; i <= n; ++i) { scanf…
用f[i][j]表示完成前i个任务,在A机器上加工j小时时B机器上最少要工作多小时,转移就分为三种,即$f[i][j]=min(f[i-1][j-t1],f[i-1][j]+t2,f[i-t3]+t3)$,然后这个东西可以用类似于背包的方式优化到1维(注意要从大到小枚举) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,a,b,c,s,ans,f[30005]; 4 int main(){ 5 scanf("%d&qu…