*【牛客 - 326B】背单词(线性dp)

题干:

winterzz1准备考4级了,现在winterzz1决定把世界上所有单词都背一遍,winterzz1发现任意一个单词最多有A个连续的元音,最多有B个连续的辅音。且单词最长长度为N,winterzz1问你在满打满算的情况他需要背多少单词???

输入描述:

首先输入一个T(T<=100),表示有T组案例,每组案例依次输入三个正整数N,A,B,N<=5000,A<=50,B<=50;

输出描述:

输出winterzz1最多需要背多少单词,结果mod(10^9+7)

示例1

输入

复制

2
2 2 2
500 20 30

输出

复制

702
175540856

备注:

元音字母为a,e,i,o,u,其余21个字母均为辅音

解题报告:

   这题不算难其实。。。dp[i][j][k]就完事了。。。不过超时了10多次后发现是因为mod运算了太多次了,,把mod改成const就火速AC了、、、好气啊、、不过可能是因为dp的姿势不太正确,,应该可以先记忆下来然后快速幂直接解决一下。。

  这题抽象出来的意思就是:长度为n的01串,其中连续1的个数不能超过x个,连续0的个数不能超过y个。给定n,x,y,问能构造出多少合法串。。然后再加强一下:对0和1,有两个对应的权值,,这就变成这道题了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#include<ctime>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
ll dp[5005][2][55];//0代表元音,1代表辅音
const ll mod = 1e9+7;
int n,a,b;
int main()
{int t;scanf("%d",&t);while(t--) {scanf("%d%d%d",&n,&a,&b);int up = max(a,b);for(int i = 0; i<=n; i++) {for(int j = 0; j<=50; j++) {dp[i][0][j]=dp[i][1][j]=0;//别只初始化到up,,因为有可能上次的up更大,所以没有初始化完全。。。}}if(n == 1) {puts("26");continue;}dp[1][0][1]=5;dp[1][1][1]=21;for(int i = 2; i<=n; i++) {//更新元音的for(int j = 1; j<=min(i-1,b); j++) dp[i][0][1] = (dp[i][0][1] + dp[i-1][1][j]*5ll%mod)%mod;for(int j = 2; j<=min(i,a); j++) dp[i][0][j] += dp[i-1][0][j-1]*5%mod;//更新辅音的for(int j = 1; j<=min(i-1,a); j++) dp[i][1][1] = (dp[i][1][1]+dp[i-1][0][j]*21%mod)%mod;for(int j = 2; j<=min(i,b); j++) dp[i][1][j] += dp[i-1][1][j-1]*21%mod;}ll ans = 0;for(int i = 1; i<=n; i++) {for(int j = 1; j<=50; j++) {if(j <= a) ans = (ans + dp[i][0][j])%mod;if(j <= b) ans = (ans + dp[i][1][j])%mod;}}printf("%lld\n",ans);}return 0 ;}
/*
2
2 2 2
500 20 30
*/

还有一个10msAC的代码,(以后再补一下吧、、):

(这个代码大概意思就是先dp[i][j]算出所有的,再减去连续a个元音的,或者连续b个辅音的,,也不算难想到啊其实,不知道比赛的时候在干什么。。唉可能还是自己苔菜了、、)

#include<bits/stdc++.h>
using namespace std;
using LL=unsigned long long;
const int M=6e3+5;
const int mo=1e9+7;
LL dp[M][2],cnt[M];
LL qpow(LL a,LL b)
{LL res=1;while(b>0){if(b&1)res=res*a%mo;b>>=1;a=a*a%mo;}return res;
}
int main()
{int t;scanf("%d",&t);while(t--){int n,a,b;scanf("%d%d%d",&n,&a,&b);for(int i=1;i<=n;i++)dp[i][0]=dp[i][1]=0;dp[0][0]=dp[0][1]=1;dp[1][0]=5;dp[1][1]=21;cnt[1]=26;LL pa=qpow(5,a+1),pb=qpow(21,b+1),res=26;// cout<<pa<<"=="<<pb<<endl;for(int i=2;i<=n;i++){dp[i][0]=5*cnt[i-1]%mo;dp[i][1]=21*cnt[i-1]%mo;if(i>a)dp[i][0]=(dp[i][0]-dp[i-a-1][1]*pa%mo+mo)%mo;if(i>b)dp[i][1]=(dp[i][1]-dp[i-b-1][0]*pb%mo+mo)%mo;cnt[i]=(dp[i][0]+dp[i][1])%mo;res=(cnt[i]+res)%mo;}printf("%lld\n",res);}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java word转html 乱码 poi,java word转html poi

java word转html poi[2021-01-29 15:50:39] 简介:php去除nbsp的方法&#xff1a;首先创建一个PHP代码示例文件&#xff1b;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff1a;…

教练,我想打ACM

又到了一年期末。。。慵懒中、、、不想复习、、、不想看课本也不想做题、、、不想听课也不想看笔记、、、、然而莫名想刷题&#xff1f;&#xff1f;然而现在并不是刷题的时候啊、、、或许期末完了之后才是肝题的时候、、、然而现在就是什么都不想做啊、、难受。欠了很多套训练…

请写出sfr和sbit的语句格式_习题_C51语言答案

一、填空1&#xff0e;KeiL C51软件中&#xff0c;工程文件的扩展名是___UV2_______&#xff0c;编译连接后生成可烧写的文件扩展名是___HEX_________。2&#xff0e;C51支持的指针有一般指针和存储器指针。3&#xff0e;C51中&#xff0c;没有专门的循环语句&#xff0c;我们可…

未来计算机的功能猜想,全方位猜想,未来计算机发展详细预测

全方位猜想&#xff0c;未来计算机发展详细预测随着计算机技术的发展&#xff0c;PC将成为我们工作上的工具&#xff0c;生活中的控制中心是必然的事情。从网友的文章中&#xff0c;我们可以了解到计算机的未来充满了变数。性能的大幅度提高是不可置疑的&#xff0c;而实现性能…

【HDU - 5500】 Reorder the Books (思维)

题干&#xff1a; dxy has a collection of a series of books called "The Stories of SDOI",There are n(n≤19)n(n≤19) books in this series.Every book has a number from 11 to nn. dxy puts these books in a book stack with the order of their numbers …

github怎么切换到gitee_AOSP-RISCV 的开源仓库在 Gitee 上新建了镜像

前阵子在知乎上给大家介绍了我们在移植 AOSP 到 RISC-V 上的第一步: 汪辰&#xff1a;第一个 RISC-V 上的“Android 最小系统”​zhuanlan.zhihu.com目前所有的工作成果都是开源在 Github 上的&#xff0c;移植改动涉及的子仓库达到 9 个&#xff0c;所有源码下载下来达到 537M…

联想微型计算机拆,联想10064一体机拆机,联想一体机硬盘怎么拆

电脑现在在我们生活中有着非常广泛的用途&#xff0c;不论是我们的工作还是学习都离不开电脑的辅助。我们工作时可以用电脑进行记录档案资料&#xff0c;学习时可以用电脑查阅资料&#xff0c;及时解决一些学习上遇到的疑问。有了电脑之后我们的工作学习效率都得到了非常大的提…

微型计算机原理中断实验,微机原理实验---中断控制实验.doc

微机原理实验---中断控制实验深 圳 大 学 实 验 报 告课程名称&#xff1a; 微机计算机设计实验项目名称&#xff1a; 8259 中断控制实验学院&#xff1a; 信息工程学院专业&#xff1a; 电子信息工程指导教师&#xff1a;报告人&#xff1a; 学号&#xff1a; 2009100000班级&…

【CodeForces - 510D】Fox And Jumping(dp,stlmap,数论的性质)

题干&#xff1a; Fox Ciel is playing a game. In this game there is an infinite long tape with cells indexed by integers (positive, negative and zero). At the beginning she is standing at the cell 0. There are also n cards, each card has 2 attributes: len…

db2 linux 平台下迁移_Linux 下的 DB2数据库的迁移

前言&#xff1a;DB2 Universal Database™(DB2 UDB) 有一对非常有用的工具&#xff0c;可以帮助您实现这种跨平台的备份与恢复功能。 db2move 工具利用了 DB2 的数据移动工具(export 和 import 或 load)来移动数据库表。然而&#xff0c;由于数据库的内容远远不止于用户表&…

加拿大红河学院计算机专业,加拿大红河学院

加拿大红河学院是加拿大曼省最大的由曼省财政支持的公立高等专科学院&#xff0c;是曼省规模最大、课程最全面的学院&#xff0c;也是加拿大最大的学院之一。近年来&#xff0c;加拿大红河学院受到国人狂热追捧&#xff0c;申请人数逐年增长。加拿大红河学院专长于商业管理与国…

【CodeForces - 471C】MUH and House of Cards (思维,找规律)

题干&#xff1a; Polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo of Kiev decided to build a house of cards. For that theyve already found a hefty deck of n playing cards. Lets describe the house they want t…

哪个读书app可以导入txt_QQ阅读iphone版怎么导入电子书 三种手机QQ阅读器导入本地图书图文教程...

QQ阅读iphone版是一款比较方便的移动终端阅读软件&#xff0c;除了从电子书城下载或者购买电子书外&#xff0c;我们也可以把自己电脑中的电子书上传到QQ阅读软件中&#xff0c;不过果粉们都知道苹果手机没有文件管理器&#xff0c;无法使用qq阅读直接点击查看本地小说&#xf…

【CodeForces - 471B】MUH and Important Things (模拟,细节)

题干&#xff1a; Its time polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo of Kiev got down to business. In total, there are ntasks for the day and each animal should do each of these tasks. For each task, t…

大一计算机绩点3算什么水平,绩点只有3?我可以解释一下

放张图文无关压压惊最近开始申请学业奖学金了&#xff0c;大家开始计算自己的绩点&#xff0c;我也算了一下自己的成绩&#xff0c;结果是比3多一点点(如果没有算错的话)。我觉得这是一个比较合适的数字&#xff0c;没有比3小已经很满足了&#xff0c;毕竟学的并不好&#xff0…

不能用了 重装系统git_怎么用光盘重装系统?

身边没有U盘&#xff0c;电脑无法进入操作系统&#xff0c;只有一个系统光盘如何给电脑重装系统呢&#xff1f;受条件限制不能通过小白在线安装和U盘重装&#xff0c;今天教大家怎么用光盘重装系统吧。光盘重装系统准备工作1、保证电脑带有光驱功能&#xff0c;并且光驱处于正常…

【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表)

题干&#xff1a; One way to create a task is to learn from math. You can generate some random math statement or modify some theorems to get something new and build a new task from that. For example, there is a statement called the "Goldbachs conject…

浙江经济职业技术学院计算机排名,浙江经济职业技术学院排名第几

关于浙江经济职业技术学院排名的问题考生问&#xff1a; 关于浙江经济职业技术学院的排名&#xff0c;我想抛给小编姐姐几个问题哦。一、浙江经济职业技术学院今年排名第几&#xff1f;对&#xff0c;指的是全国千余所专科院校当中的排名哦&#xff1b;二、浙江经济职业技术学院…

webform计算某几列结果_WebForm获取checkbox选中的值(几个简单的示例)

PS&#xff1a;最近在做权限管理这个模块&#xff0c;发现用checkbox的地方挺多的&#xff0c;于是写了个简单的例子&#xff0c;以供以后学习和使用。1.前端页面&#xff1a;张三李四王五赵六孙琦猪八2.后台方法&#xff1a;#region 获取从前端页面回传过来的 CheckBox 的值 v…

东明县计算机学校,东明县职业中等专业学校2021年招生信息

一、2021年东明县职业中等专业学校招生计划(一) 职教高考提前批招生计划学校代码专业名称招收人数学制学费备注说明863化学工艺40三年免学费从2022年起&#xff0c;山东省开始实施“职教高考”制度&#xff0c;采 取“文化素质职业技能”考试招生办法&#xff0c;职教高考的 本…