25
13
Các đại ca làm giúp e bài này với ạ, đừng dùng GPT nhoa, k cần full đâu vì nếu full thuật toán phức tạp lắm
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
5217
4884
Thuật toán:
Gọi `dp[i]` là thời gian ngắn nhất để hoàn thành công việc cho đến công nhân thứ `i`.
Khi đó, đến công nhân thứ `i`, sẽ xảy ra 2 trường hợp:
`-` Trường hợp 1: Công nhân thứ `i` làm một mình
`->` Thời gian tốn khi đến công nhân thứ `i` sẽ là `dp[i-1] + t[i]` (cộng thêm thời gian của công nhân này vào)
`-` Trường hợp 2: Công nhân thứ `i` làm với công nhân thứ `i-1`
`->` Thời gian tốn khi đến công nhân thứ `i` sẽ là `dp[i-2] + p[i-1]` (Thời gian ngắn nhất khi `i-2` công nhân đầu làm việc cộng với thời gian của 2 công nhân `i-1` và `i` phối hợp với nhau.)
`=>` Công thức: `dp[i] = min(dp[i - 1] + t[i], dp[i - 2] + p[i - 1])` (Lấy thời gian tối ưu nhỏ hơn)
- Cơ sở quy hoạch động: `dp[1] = t[1]` (Chỉ có công nhân đầu nên phải làm một mình)
Kết quả sẽ là `dp[n]`
#include <bits/stdc++.h>
using namespace std;
int main() {
// freopen("WORD.INP", "r", stdin);
// freopen("WORD.OUT", "w", stdout);
int n;
cin >> n;
int t[n+1];
int p[n];
for (int i = 1; i <= n; i++) cin >> t[i];
for (int i = 1; i <= n - 1; i++) cin >> p[i];
int dp[n];
dp[0]=0;
dp[1] = t[1];
for (int i = 2; i <= n; i++) dp[i] = min(dp[i - 1] + t[i], dp[i - 2] + p[i - 1]);
cout << dp[n];
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
44
14
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main() {
freopen("WORD.INP","r",stdin);
freopen("WORD.OUT","w",stdout);
ll n;
cin>>n;
vector<ll> a(n+1),b(n),dp(n+1);
for (ll i=1;i<=n;i++)
cin>>a[i];
for (ll i=1;i<n;i++)
cin>>b[i];
dp[1]=a[1];
for (ll i=2;i<=n;i++)
dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i-1]);
cout<<dp[n];
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
25
435
13
cảm ơn bạn rất nhiều ạ
5217
77576
4884
Hiểu chưa á
25
435
13
rồi ạ, cô e cũng vừa giảng lại lần 2 xong
5217
77576
4884
okela
25
435
13
vote ctlhn sao ta, phải đến 2 năm rồi e k vô web này
5217
77576
4884
Phải có người khác trả lời nữa í, chứ một mình thi sao có từ nhất được=))) cảm ơn cậu nhee
3
286
1
help mình bài này với ạ https://hoidap247.com/cau-hoi/7670091