题意:

求长度是n的二进制串中,不含长度大于等于k的回文串的个数

分析:

dp[i][j][k]表示长度i,后11位状态是j不含长度大于等于k的回文串的个数(因为k最大是10,所把后11位状态压缩,dp[i][j][k]=dp[i-1][j>>1][k]+dp[i-1][j>>1|(1<<10)][k],i-1的低11位就是i的高11位以此转移过来)

预处理出来[1,1<<11)中的最大回文串长度,方便统计。

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <string>
#include <cctype>
#include <complex>
#include <cassert>
#include <utility>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
#define lson l,m,rt<<1
#define pi acos(-1.0)
#define rson m+1,r,rt<<11
#define All 1,N,1
#define read freopen("in.txt", "r", stdin)
const ll INFll = 0x3f3f3f3f3f3f3f3fLL;
const int INF= 0x7ffffff;
const int mod = ;
int num[][],b[][<<],dp[][<<][];
int pos[];
void init(){
b[][]=b[][]=;
for(int i=;i<=;++i){
int cas=(<<i);
for(int j=;j<cas;++j){
int q=j;
for(int k=;k<=i;++k)
{
pos[k]=q%;
q/=;
}
int f=;
for(int k=;k<=i/;++k)
if(pos[k]!=pos[i-k+]){
f=;
break;
}
if(f)
b[i][j]=i;
else{
b[i][j]=max(b[i-][j&((<<(i-))-)],b[i-][j>>]);
} }
}
for(int i=;i<=;++i)
{
int cas=(<<i);
for(int j=;j<cas;++j)
for(int k=b[i][j]+;k<=;++k)
{
if(i==)dp[][j][k]++;
num[i][k]++;
}
}
for(int i=;i<=;++i){
for(int j=;j<(<<);++j)
for(int k=;k<=;++k)
{
if(b[][j]>=k)
dp[i][j][k]=;
else{
dp[i][j][k]=(dp[i-][j>>][k]+dp[i-][(j>>)|(<<)][k])%mod;
num[i][k]=(num[i][k]+dp[i][j][k])%mod;
}
}
}
}
int main()
{
init();
int t,n,m;
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
printf("%d\n",num[n][m]);
}
return ;
}

Dyslexic Gollum的更多相关文章

  1. uva 1633 Dyslexic Gollum

    题意: 给出n和k,求出长度为n的不包含长度大于等于k的回文串的01字符串的个数. 思路: 如果一个字符串包含长度为k的回文串,那么它肯定包含长度为k-1的回文串,所以考虑第i位的时候,只要前缀中不包 ...

  2. 【Uva 1633】Dyslexic Gollum

    [Link]: [Description] 输入正整数n和k(1≤n≤400,1≤k≤10),求长度为n的01串中有多少个不含长度至少 为k的回文连续子串.例如,n=k=3时只有4个串满足条件:001 ...

  3. Gollum 安装笔记

    环境Ubuntu server 14.04 sudo apt-get install ruby1.9.1 ruby1.9.1-dev make zlib1g-dev libicu-dev build- ...

  4. gollum安装教程

    在线markdown编辑器,可以直接将该程序安装在服务器上,直接编辑完之后保存在gollum目录下 1.在线安装     sudo apt-get install ruby1.9.1 ruby1.9. ...

  5. 【Linux工具】GIT+Gollum在Ubuntu下搭建本地WIKI编辑系统

    1 设置淘宝的gem镜像 1.1 不用镜像的痛苦 如果直接用官网的话,会有如下的错误信息,添加源.安装gem都是一样的错误,就算能连上也会很慢: $ gem sources -a https://ru ...

  6. 【WIP】gollum

    创建: 2018/03/18 [任务表]TODO 这个博客从来不点发布到首页, 完全100%自用, 全部详细完整的干货.千辛万苦找到这里看到一片空白, 是不是很愤怒? 那就对啦233333

  7. 使用html和css的一些经验

    1.注释须知:html中注释不能这样写: <div></div><!--------这是错误写法-------> <div></div>&l ...

  8. [No00005D]如何高效利用GitHub

    原文地址:http://www.yangzhiping.com/tech/github.html 正是Github,让社会化编程成为现实.本文尝试谈谈GitHub的文化.技巧与影响. Q1:GitHu ...

  9. Python + OpenCV2 系列:3 - python 字符串,类,编码规范

    首先,强烈推荐<<简明 Python 教程>> Swaroop, C. H. 著 沈洁元 译 其实,这本书里已经把python的最基本的用法,编码等等介绍的很好,这里把我用到的 ...

随机推荐

  1. 浅析c语言中的变量(局部变量,外部变量,静态变量,寄存器变量)[转]

    c语言中变量分为四类,分别是 1.auto   自动变量 2.static   静态存贮分配变量(又分为内部静态和外部静态) 3.extern  全程变量(用于外部变量说明) 4.register   ...

  2. c# 计算一个整型数组的平均

    一个整型数组的平均: class Program { static void Main(string[] args) { ,,,,,,,,,}; double avg= GetAvg(array); ...

  3. C语言的几个有趣问题

    问题1. 不能使用分号,编写一个“Hello World”程序. 问题2. 如何用C语言打印“ I am print %”? 问题3. 不能使用">.<.>=.<=“ ...

  4. C and C++ : Partial initialization of automatic structure

    Refer to: http://stackoverflow.com/questions/10828294/c-and-c-partial-initialization-of-automatic-st ...

  5. .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)

    .net Windows服务程序和安装程序制作 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作 ...

  6. 运用CodeSmith Studio实现C#项目构架

    http://www.cnblogs.com/iCaca/category/80950.html http://www.cnblogs.com/BlueBreeze/archive/2011/07/1 ...

  7. js中的cookie使用

    在网上找到的资料,收藏一下 function getCookies(name) { var arr = document.cookie.match(new RegExp("(^| )&quo ...

  8. JSON(3)Google解析Json库Gson

    本文参考 : http://www.cnblogs.com/chenlhuaf/archive/2011/05/01/gson_test.html 1.资料 官网: http://groups.goo ...

  9. SQL Server Object Explorer in VS

    菜单栏View-->SQL Server Object Explorer 默认有几个连接,可以根据需要自己再另外添加 比如添加127.0.0.1 建立连接之后,剩下的操作和sql server中 ...

  10. gulp使用外部配置文件

    这很有好处,因为它使得任务很干净,并且 config.json 可以被其他的任务运行器(例如grunt)重复利用. config.json { "desktop" : { &quo ...