Submission #44464


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<bits/stdc++.h>
using namespace std;
#define INF 1000000000
int dp(int bit);
int n,m;
int sum[29][100009];
int d[29];
int memo[3000000];
int main(){
memset(memo,-1,sizeof(memo));
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
int a;
scanf("%d",&a);
d[a]++;
sum[a][i]=1;
for(int j=1;j<=m;j++){
sum[j][i]+=sum[j][i-1];
}
}
cout<<dp(0)<<endl;
return(0);
}
int dp(int bit){
int rec=INF,t=0;
if(memo[bit]!=-1)return memo[bit];
if(bit==((1<<m)-1)<<1)return 0;
for(int i=1;i<=m;i++){
if((bit>>i)&1)t+=d[i];
}
for(int i=1;i<=m;i++){
if(!((bit>>i)&1)){
int num=sum[i][t+d[i]]-sum[i][t];
rec=min(rec,dp(bit|(1<<i))+d[i]-num);
}
}
return memo[bit]=rec;
}

ステータス

項目 データ
問題 0595 - ぬいぐるみの整理 (Plush Toys)
ユーザー名 r1705
投稿日時 2018-10-30 16:58:51
言語 C++11
状態 Accepted
得点 100
ソースコード長 774 Byte
最大実行時間 199 ms
最大メモリ使用量 20992 KB

セット

セット 得点 Cases
1 set1 20 / 20 *t4*1.txt
2 set2 20 / 20 *t4*2.txt
3 set3 20 / 20 *t4*3.txt
4 set4 20 / 20 *t4*4.txt
5 set5 20 / 20 *t4*5.txt

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
2017-yo-t4-in1.txt AC 33 ms 14936 KB
1
2017-yo-t4-in2.txt AC 28 ms 16828 KB
2
2017-yo-t4-in3.txt AC 34 ms 16936 KB
3
2017-yo-t4-in4.txt AC 87 ms 20884 KB
4
2017-yo-t4-in5.txt AC 199 ms 20992 KB
5