题意:

求长度是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. Adb connection Error:远程主机强迫关闭了一个现有的连接 解决方法

    用真机调试程序的时候,eclipse 的 Console 总是出现如下的错误"Adb connection Error:远程主机强迫关闭了一个现有的连接". 问题出现的原因:这是 ...

  2. UML系列01之 UML用例图

    UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语言. UML是在开发阶段,说明,可视化,构建和书写一个面 ...

  3. myplan

    告警集成平台 – OneAlert(空) JumpServer-开源跳板机(堡垒机)搭建(空) Suricata入侵检测.防御系统搭建(空) Snort入侵检测系统搭建(空) OpenVas开放式漏洞 ...

  4. Linux命令-date

    [root@localhost ~]# date 2016年 09月 07日 星期三 :: CST [root@localhost ~]# date "+%Y" [root@loc ...

  5. sysfs实例

    转自:http://blog.chinaunix.net/u1/51562/showart_1076295.html 一:前言 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象 ...

  6. pyhton类集成

    class SchoolMember:   def __init__(self,name,age):     self.name = name     self.age = age     print ...

  7. [C]判断一个文件是否是jpg格式

    同学要帮忙写的,用opencv的imread打开文件看抛出的异常来判断这种抖机灵的姿势就不写了… 首先知道jpg文件是以0xFFD8开始,以0xFFD9结尾的.所以直接拿来fseek fread,异或 ...

  8. Client-Side UI Automation Provider - WinForm Sample

    Client-Side UI Automation Provider -  WinForm Sample 2014-09-15 源代码 目录 引用程序集实现提供程序接口分发客户端提供程序注册和配置客户 ...

  9. MFC弹出菜单隐藏解决

    http://social.msdn.microsoft.com/Forums/en-US/5482103e-272b-4c9f-bac4-be15f14782bd/cmfcmenubar-remov ...

  10. CSS处理溢出

    如果内容超过的区块的大小,内容就会溢出,可以使用下面的方法控制溢出 overflow visible 不剪切内容也不添加滚动条 auto 在必需时对象内容才会被裁切或显示滚动条 hidden 不显示超 ...