0

ハイパーストリング問題を解くアルゴリズムについて知りたいです。説明はhttps://www.hackerrank.com/challenges/hyper-stringsにあります。

動的計画法で解けますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

パブリック クラス ハイパーストリング {

//アブベイカー・タゲルシル

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));

}

}

于 2013-10-15T18:51:52.327 に答える