设为首页 加入收藏

TOP

动态规划--子序列的个数(二)
2013-09-26 19:53:57 来源: 作者: 【 】 浏览:228
Tags:动态 规划 序列 个数

 

  java   public static int run(int [] a);

  */

  #include <stdio.h>

  #include <stdlib.h>

  #define M 1000000007

  int run(const int *a,int n)

  {

  long long SubArray[120] = {0};

  int LastIndex[120] = {0};

  int iter = 0;

  for(iter = 1; iter <= n; iter++)

  {

  switch(LastIndex[a[iter - 1]])

  {

  case 0:

  {

  SubArray[iter] = (2 * SubArray[iter - 1] + 1) % M;

  break;

  }

  default:

  {

  SubArray[iter] = (2 * SubArray[iter - 1] - SubArray[LastIndex[a[iter - 1]] - 1] + M) % M;

  break;

  }

  }

  LastIndex[a[iter - 1]] = iter;

  }

  return SubArray[n] % M;

  }

  int main(void)

  {

  //int a = {1, 2, 2, 3 ,3};

  int a = {1, 2, 3 , 2};

  printf("the result is %d\n", run(a, 4));

  return 0;

  }

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Lucene 3.6.2:针对索引文件 下一篇C++文件流ios::binary的作用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: