D - đá xác nhập vấn đề (dp)

D - đá xác nhập vấn đề
Description
Ở một cái hình tròn sân thể dục bốn phía bày n đôi đá. Hiện muốn đem đá có thứ tự mà xác nhập thành một đống. Quy định mỗi lần chỉ có thể tuyển liền nhau 2 đôi đá xác nhập thành tân một đống, cũng đem tân một đống đá số nhớ vì nên thứ xác nhập đạt được. Thí thiết kế một cái thuật toán, tính toán ra đem n đôi đá xác nhập thành một đống nhỏ nhất đạt được cùng lớn nhất đạt được.
Đối với cấp định n đôi đá, tính toán xác nhập thành một đống nhỏ nhất đạt được cùng lớn nhất đạt được.
Input
Đưa vào số liệu đệ 1 hành là chính số nguyên n, 1≤n≤100, tỏ vẻ có n đôi đá. Đệ nhị hành có n cái số, phân biệt tỏ vẻ mỗi đôi đá cái số.
Output
Phát ra số liệu có hai hàng, đệ 1 hành trung số là nhỏ nhất đạt được, đệ 2 hành trung số là lớn nhất đạt được.
Sample
Input
4
4 4 5 9
Output
43
54
Cùng loại Ma trận liền thừa vấn đề
Tương đồng: Đều là mỗi lần tuyển liền nhau hai cái
Bất đồng: ( ở một cái hình tròn sân thể dục bốn phía ) làm thành một vòng tròn, chính là có thể đầu đuôi tương liên
Giải quyết đầu đuôi tương liên liền đem danh sách ở số tổ nhớ hai lần,
在这里插入图片描述
Này mấy cái khu gian phân biệt cầu ra lớn nhất nhỏ nhất, cuối cùng đem này mấy cái khu gian lớn nhất nhỏ nhất lấy ra tới tương đối
Mỗi cái khu gian max min cầu pháp cùng Ma trận liền thừa cùng loại nhưng dời đi phương trình bất đồng

#include<iostream>
#include<algorithm>
#include<memory.h>
#defineinf 0x3f3f3f3f
usingnamespacestd;
intmain()
{
intn,i,j,k,a[202],dp[202][202],dpm[202][202];
cin>>n;
memset(dp,0,sizeof(dp));
memset(dpm,0,sizeof(dpm));
for(i=1;i<=n;i++)
{
cin>>a[i];
a[i+n]=a[i];
}
intsum[202];sum[0]=0;
for(i=1;i<=2*n;i++)
{
sum[i]=sum[i-1]+a[i];
}
for(i=2*n-1;i>=1;i--)
{
for(j=i+1;j<i+n&&j<=2*n;j++)
{
dpm[i][j]=inf;
for(k=i;k<j;k++)
{
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]);// đây là trọng điểm
dpm[i][j]=min(dpm[i][j],dpm[i][k]+dpm[k+1][j]+sum[j]-sum[i-1]);
}
}
}
intmaxx=-1,minn=inf;
for(i=1;i<=n;i++)//n cái khu gian giá trị tiến hành tương đối
{
maxx=max(maxx,dp[i][i+n-1]);
minn=min(minn,dpm[i][i+n-1]);
}
cout<<minn<<endl;
cout<<maxx<<endl;
return0;
}
  • 1
    Điểm tán
  • Dẫm
  • 2
    Cất chứa
    Cảm thấy cũng không tệ lắm? Một kiện cất chứa
  • 0
    Bình luận

“Tương quan đề cử” đối với ngươi có trợ giúp sao?

  • Phi thường không trợ giúp
  • Không trợ giúp
  • Giống nhau
  • Có trợ giúp
  • Phi thường có trợ giúp
Đệ trình
Bình luận
Tăng thêm bao lì xì

Thỉnh điền bao lì xì chúc phúc ngữ hoặc tiêu đề

Cái

Bao lì xì cái số nhỏ nhất vì 10 cái

Nguyên

Bao lì xì kim ngạch thấp nhất 5 nguyên

Trước mặt ngạch trống3.43Nguyên Đi trước nạp phí >
Cần chi trả:10.00Nguyên
Thành tựu một trăm triệu kỹ thuật người!
Lĩnh sau ngươi sẽ tự động trở thành bác chủ cùng bao lì xì chủ fans Quy tắc
hope_wisdom
Phát ra bao lì xì
Thật phóNguyên
Sử dụng ngạch trống chi trả
Điểm đánh một lần nữa thu hoạch
Quét mã chi trả
Tiền bao ngạch trống 0

Để khấu thuyết minh:

1. Ngạch trống là tiền bao nạp phí giả thuyết tiền, dựa theo 1:1 tỉ lệ tiến hành chi trả kim ngạch để khấu.
2. Ngạch trống vô pháp trực tiếp mua sắm download, có thể mua sắm VIP, trả phí chuyên mục cập chương trình học.

Ngạch trống nạp phí