原题传送:http://www.spoj.pl/problems/SQRBR

  动态规划。

  设f[i][j]表示前i个位置在合法情况下缺少j个右括号的方案数。

  转移方程为:

  f[i][j] = f[i-1][j-1] (第i个地方必须为'[')

  f[i][j] = f[i-1][j-1] + f[i-1][j+1] (分第i个位置放左括号和右括号的情况)

  写的第一份代码不是很严谨,j-1变为负值,但spoj判ac了。

 #include <stdio.h>
#include <string.h>
#define N 205 int f[N][N], n, k;
bool h[N]; int main()
{
int t, d;
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &k);
memset(h, , sizeof h);
memset(f, , sizeof f);
f[][] = ;
for(int i = ; i <= k; i++)
{
scanf("%d", &d);
h[d] = ;
}
for(int i = ; i <= * n; i++)
{
for(int j = ; j <= * n; j++)
{
if(h[i])
{
f[i][j] = f[i-][j-];
}
else
{
f[i][j] = f[i-][j-] + f[i-][j+];
}
}
}
printf("%d\n", f[*n][]);
}
return ;
}

  修改后为:

 #include <stdio.h>
#include <string.h>
#define N 205 int f[N][N], n, k;
bool h[N]; int main()
{
int t, d;
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &k);
memset(h, , sizeof h);
memset(f, , sizeof f);
f[][] = ;
for(int i = ; i <= k; i++)
{
scanf("%d", &d);
h[d] = ;
}
for(int i = ; i <= * n; i++)
{
for(int j = ; j <= * n; j++)
{
if(h[i])
{
if(j != )
f[i][j] = f[i-][j-];
else
f[i][j] = ;
}
else
{
if(j != )
f[i][j] = f[i-][j-] + f[i-][j+];
else
f[i][j] = f[i-][j+];
}
}
}
printf("%d\n", f[*n][]);
}
return ;
}

最新文章

  1. angularJS——自定义服务provider之$get
  2. MFC程序中使用调试宏ASSERT()、ASSERT_VALID()、VERIFY()和TRACE()的区别
  3. [java基础]循环结构2
  4. win下隐藏任务栏
  5. ASP.NET MVC 实现二级域名
  6. VS 2005部署应用程序提示“应用程序无法正常启动( 0x0150002)” 解决方案
  7. 2014年6月5日 深圳 IBM 安全解决方案会议通知
  8. 狗狗40题~(Volume B)
  9. 跨域访问 REST API
  10. php结合redis实现高并发下的抢购、秒杀功能 (转载)
  11. 第03章-VTK系统概述(1)
  12. 前端工程化系列[03]-Grunt构建工具的运转机制
  13. js 回车键事件
  14. lnmp源码编译安装zabbix
  15. 一口一口吃掉Hexo(四)
  16. Remove Duplicates from Sorted Array II leetcode java
  17. hashcode 知识点
  18. @Secured()、 @PreAuthorize() 、 @RolesAllowed()
  19. ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
  20. Codeforces Round #301 (Div. 2) D. Bad Luck Island 概率DP

热门文章

  1. silverlight嵌套html不能输入中文问题
  2. [原]Django慢请求分析工具--dogslow
  3. 【转】8种Nosql数据库系统对比
  4. 通过bind实现activity与service的交互
  5. 自定义DatePicker,年月日,不显示其中某几项
  6. 实战Django:官方实例Part1
  7. 9 本免费的 Python 语言编程书籍(转载)
  8. JTable的DefaultModel方法getValueAt(a,row)
  9. Reverse Vowels of a String
  10. SQL Server数据库学习笔记-外键