codechef [snackdown2017 Onsite Final] AND Graph
题解给出了一个很强势的dp:
i<K
$$dp[i][len]*Fib[len+2-(t[i]==1)] -> dp[i+1][len]$$
$$dp[i][len]*Fib[len+1-(t[i]==1)] -> dp[i+1][len+1]$$
i>=K
$$dp[i][len]*Fib[len+2-(t[i]==1)-(s[i]==1)] -> dp[i+1][len]$$
其中K是s的前导0个数
意思是单独考虑每一位,相邻两个不能同时为1,方案数是斐波那契数,然后就直接搞了。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MN 5001
using namespace std; const int MOD=;
int T,n,dp[MN][MN],k,F[MN],MMH;
char s[MN],t[MN];
int main(){
F[]=;F[]=;
for (int i=;i<=;i++) F[i]=F[i-]+F[i-],F[i]-=F[i]>=MOD?MOD:;
scanf("%d",&T);
while (T--){
scanf("%s%s",s,t);MMH=;
n=strlen(s);k=;
while (s[k]=='') k++;
for (int i=;i<n;i++)
for (int j=;j<=n;j++) dp[j][i]=;
dp[][]=;
for (int i=;i<n;i++){
for (int j=;j<k;j++){
dp[j+][i]=(1LL*dp[j][i]*F[i+-(t[j]=='')]+dp[j+][i])%MOD;
dp[j+][i+]=(1LL*dp[j][i]*F[i+-(t[j]=='')]+dp[j+][i+])%MOD;
}
for (int j=k;j<n;j++) dp[j+][i]=(1LL*dp[j][i]*F[i+-(t[j]=='')-(s[j]=='')]+dp[j+][i])%MOD;
(MMH+=dp[n][i])%=MOD;
}
printf("%d\n",MMH);
}
}
codechef [snackdown2017 Onsite Final] AND Graph的更多相关文章
- codechef [snackdown2017 Onsite Final] Fusing Weapons
传送门 题目描述 大厨最近迷上了一款勇者斗恶龙的游戏. 游戏每局开始前,会有 N 件武器摆成一圈.每件武器有一个整数的等级.大厨可以选择两件 相邻的等级相同(不妨设同为 A 级)的武器,将它们合成.这 ...
- codechef [snackdown2017 Onsite Final] Minimax
传送门 题目描述 考虑一个 N 行 N 列的网格,行列编号均为 1 ∼ N.每个格子中包含一个整数.记 ri 为第 i 行的最小值,Ci 为第 i 列的最大值.我们称一个网格为好的,当且仅当满足:$$ ...
- CodeChef Counting on a directed graph
Counting on a directed graph Problem Code: GRAPHCNT All submissions for this problem are available. ...
- 可视化工具solo show-----Prefuse自带例子GraphView讲解
2014.10.15日以来的一个月,挤破了头.跑断了腿.伤透了心.吃够了全国最大餐饮连锁店——沙县小吃.其中酸甜苦辣,绝不是三言两语能够说得清道的明的.校招的兄弟姐妹们,你们懂得…… 体会最深的一句话 ...
- Falcon Genome Assembly Tool Kit Manual
Falcon Falcon: a set of tools for fast aligning long reads for consensus and assembly The Falcon too ...
- 记一次亲身踩过的hibernate的bug
记一次亲身踩过的hibernate的bug 在写实体类时,经常会对域增加校验,例如@NotNull表示哪个字段不能为空,昨天晚上调试代码,就遇到了问题, @Entity public class Ap ...
- 如何用kaldi做孤立词识别-初版
---------------------------------------------------------------------------------------------------- ...
- Dominator Tree & Lengauer-Tarjan Algorithm
问题描述 给出一张有向图,可能存在环,对于所有的i,求出从1号点到i点的所有路径上的必经点集合. 什么是支配树 两个简单的小性质—— 1.如果i是j的必经点,而j又是k的必经点,则i也是k的必经点. ...
- 退役前的最后的做题记录upd:2019.04.04
考试考到自闭,每天被吊打. 还有几天可能就要AFO了呢... Luogu3602:Koishi Loves Segments 从左向右,每次删除右端点最大的即可. [HEOI2014]南园满地堆轻絮 ...
随机推荐
- adb devices找不到设备解决办法
问题现象: 解决办法: 1.在设备管理器Android Device中找到设备硬件Id USB\VID对应值: 3.找到.android目录,找到adb_usb.ini文件,如果没有此文件则新建一个, ...
- iOS cocos2d安装以及问题解决
一:下载: 首先要去Cocos2d和Cocos2d-x网站下载相关的工具: 1.Cocos2d下载地址:http://www.cocos2d-iphone.org,然后进入Download页面,下边有 ...
- Maven的下载、安装与环境配置
在创建一个项目时,搭建环境往往是编写具体代码的先决条件,而获取到所有需要的jar包是其中的重中之重.起初,人们在需要jar包的时候总会在网上四处查找,而且如果不知道某jar包版本的更迭,写出的代码或许 ...
- DevOps/TestOps概念
天下大势分久必合合久必分,早期的软件开发只有软件工程师一人完成,为了提高效率逐渐实行分工模式:开发.测试.运维.不同角色担任不同的任务.分工越来越细之后带来了问题也越来越突出,那就是各角色之间的沟通成 ...
- 6月22日项目CodeReview问题及总结
后台代码部分 1. 枚举类的使用:当定义的某个字段有多种状态值或表示值时,可以创建一个枚举类将所有状态表示出来,并供其他使用到该字段的方法统一调用.枚举类定义可参考 '/banking-dbbp-pr ...
- ASP.NET Core 一步步搭建个人网站(5)_Api模拟和网站分析
前言 经过前面几章,我们的网站已经最基本的功能,接下来就是继续拓展其他的功能,这期一起来实现一个该网站流量分析的工具,统计出这个网站每天用户相关数据,不仅要满足了我们对流量统计数字的基本要求,并且用更 ...
- #多个关联的python程序在linux后台运行
由于在shell脚本中直接使用&符号和python程序有冲突,不能正常的进入后台执行python(多番尝试python xxx.py &,后面的&总是不能正常识别.系统cent ...
- Mac新手从入门到放弃MongoDB
1. 简介 MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最 ...
- 用Vue自己造个组件轮子,以及实践背后带来的思考
前言 首先,向大家说声抱歉.由于之前的井底之蛙,误认为Vue.js还远没有覆盖到二三线城市的互联网小厂里.现在我错了,从我司的前端技术选型之路便可见端倪.以太原为例,已经有不少公司陆续开始采用Vue. ...
- 如何学习java?Java基础知识点分享
面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...