ll【ybt动态规划】筷子
This commit is contained in:
parent
840982aeee
commit
b4de50b5d1
|
@ -1,4 +1,3 @@
|
|||
#include <algorithm>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main()
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# 标题
|
||||
|
||||
* 内容
|
|
@ -0,0 +1,21 @@
|
|||
# 【ybt动态规划】筷子
|
||||
|
||||
|
||||
|
||||
【问题描述】
|
||||
A先生有很多双筷子。确切的说应该是很多根,因为筷子的长度不一,很难判断出哪两根是一双的。这天,A先生家里来了K个客人,A先生留下他们吃晚饭。加上A先生,A夫人和他们的孩子小A,共K+3个人。每人需要用一双筷子。A先生只好清理了一下筷子,共N根,长度为T1,T2,T3,……,TN.现在他想用这些筷子组合成K+3双,使每双的筷子长度差的平方和最小。(怎么不是和最小??这要去问A先生了,呵呵)
|
||||
【输入格式】
|
||||
输入文件共有两行,第一行为两个用空格隔开的整数,表示N,K(1≤ N ≤100, 0< K<50),第二行共有N个用空格隔开的整数,为Ti.每个整数为1~50之间的数。
|
||||
【输出格式】
|
||||
输出文件仅一行。如果凑不齐K+3双,输出-1,否则输出长度差平方和的最小值。
|
||||
【输入样例】
|
||||
10 1
|
||||
1 1 2 3 3 3 4 6 10 20
|
||||
【输出样例】
|
||||
5
|
||||
说明:
|
||||
第一双 1 1
|
||||
第二双 2 3
|
||||
第三双 3 3
|
||||
第四双 4 6
|
||||
(1-1)^2+(2-3)^2+(3-3)^2+(4-6)^2=5
|
|
@ -0,0 +1,34 @@
|
|||
#include<iostream>
|
||||
#include<algorithm>
|
||||
using namespace std;
|
||||
int main(){
|
||||
int kuaiz,ke,ren=3,a[101];
|
||||
cin>>kuaiz>>ke;
|
||||
for(int i=1;i<=kuaiz;i++){
|
||||
cin>>a[i];;
|
||||
}
|
||||
ren+=ke;
|
||||
if(ren*2>kuaiz){
|
||||
cout<<"-1";
|
||||
return 0;
|
||||
}
|
||||
sort(a+1,a+kuaiz+1);
|
||||
int f[101][51]={0};
|
||||
bool pan[101][51]={0};
|
||||
for(int i=2;i<=kuaiz;i++){
|
||||
for(int j=1;j<=ren;j++){
|
||||
if(f[i-1][j]==0&&pan[i-1][j]==0){
|
||||
f[i][j]=f[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]);
|
||||
pan[i][j]=1;
|
||||
}else{
|
||||
f[i][j]= min (f[i-1][j],f[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]));
|
||||
pan[i][j]=1;
|
||||
}
|
||||
//cout<<i<<" "<<j<<" "<<f[i][j]<<endl;
|
||||
if(j==i/2){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
cout<<f[kuaiz][ren];
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,2 @@
|
|||
10 1
|
||||
1 1 2 3 3 3 4 6 10 20
|
|
@ -0,0 +1,2 @@
|
|||
10 2
|
||||
1 1 2 3 3 3 4 6 10 20
|
|
@ -0,0 +1,4 @@
|
|||
30 7
|
||||
1 1 2 3 3 3 4 6 10 20
|
||||
1 1 2 3 3 3 4 6 10 20
|
||||
1 1 2 3 3 3 4 6 10 20
|
|
@ -0,0 +1,18 @@
|
|||
## z:\Chao\src\ll1882_chopsticks\test\in.txt
|
||||
2020/04/24 ÖÜÎå 16:56:52.53
|
||||
5
|
||||
-----------------------------------------------
|
||||
Process exited after 150 ms with return value 0
|
||||
|
||||
## z:\Chao\src\ll1882_chopsticks\test\in2.txt
|
||||
2020/04/24 ÖÜÎå 16:56:52.53
|
||||
-1
|
||||
-----------------------------------------------
|
||||
Process exited after 80 ms with return value 0
|
||||
|
||||
## z:\Chao\src\ll1882_chopsticks\test\in3.txt
|
||||
2020/04/24 ÖÜÎå 16:56:52.53
|
||||
0
|
||||
-----------------------------------------------
|
||||
Process exited after 70 ms with return value 0
|
||||
|
Loading…
Reference in New Issue