ハイパーストリング問題を解くアルゴリズムについて知りたいです。説明はhttps://www.hackerrank.com/challenges/hyper-stringsにあります。
動的計画法で解けますか?
どんな助けでも大歓迎です。
ハイパーストリング問題を解くアルゴリズムについて知りたいです。説明はhttps://www.hackerrank.com/challenges/hyper-stringsにあります。
動的計画法で解けますか?
どんな助けでも大歓迎です。
パブリック クラス ハイパーストリング {
//アブベイカー・タゲルシル
private static int n,m,sum=1;
private static void temp(String u,String []d)
{
for(int i=0 ; i<d.length;i++)
{
if((u.length()+d[i].length())<=m)
{
sum++;
temp(u+d[i],d);
}
}
}
private static int Input3(String [] d)
{
sum +=d.length;
for(int i=0;i<d.length;i++){
for(int j=0;j<d.length;j++)
{
if((d[i].length()+d[j].length())<=m)
{
sum++;
temp(d[i]+d[j],d);
}
}
}
return sum;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String h = sc.nextLine();
StringTokenizer tz = new StringTokenizer(h);
String h1 = tz.nextToken();
n = Integer.parseInt(h1);
String h2 = tz.nextToken();
m = Integer.parseInt(h2);
//Input2();
String [] d = new String[n];
for(int i=0;i<n;i++)
{
d[i] = sc.nextLine();
}
System.out.println(Input3(d));
}
}