碎碎念

碎碎念

http://www.nowcoder.com/questionTerminal/a91fb7933d7f40e9926234a16e556d84

碎碎念
https://ac.nowcoder.com/acm/contest/3006/F
图片说明
图片说明

本题涉及动态规划
针对第i次喊叫,有AC和RJ两种情况,分别用DP[i][0]和DP[i][1]表示
可划分为两种情况
i<x时候,只能是AC,DP[i][0]=DP[i-1]0此时DP[i-1][1]是0
i>=x时,分两种情况:
1:第i次是AC,则DP[i][0]=DP[i-1][0]+DP[i-1][1]
2:第i次是RJ,则DP[i][1]=DP[i-x][0] (RJ前一次必定是AC)
临界条件:DP[0][0]=1,DP[0][1]=0;

DP[0][0]=1,DP[0][1]=0;
for (int i = 1; i < N; i++) {
        DP[i][0] = (DP[i - 1][0] + DP[i - 1][1]) % mod;
        if (i >= x) {
            DP[i][1] = DP[i - x][0];
        }
}

有Q次询问,可考虑前缀和记录总方案数

DP[i][2] = (DP[i][0] + DP[i][1]) % mod;
DP[i][2] += DP[i - 1][2];
DP[i][2] %= mod;

代码如下

#pragma warning (disable :4996)
#include <iostream>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
const double eps = 1e-7;
const int N = 1e5 + 10;
int x, Q;
ll DP[N][4];
int main() {
    scanf("%d", &x);
    DP[0][0] = 1;
    for (int i = 1; i < N; i++) {
        DP[i][0] = (DP[i - 1][0] + DP[i - 1][1]) % mod;
        if (i >= x) {
            DP[i][1] = DP[i - x][0];
        }
        DP[i][2] = (DP[i][0] + DP[i][1]) % mod;
        DP[i][2] += DP[i - 1][2];
        DP[i][2] %= mod;
    }
    scanf("%d", &Q);
    while (Q--) {
        int le, r;
        scanf("%d %d", &le, &r);
        ll ans = (DP[r][2] - DP[le - 1][2] + mod) % mod;
        cout <<  ans<< endl;
    }
}
全部评论

相关推荐

01-01 10:21
门头沟学院 Java
谁懂啊!我实习遇到的公司,真的太把实习生当正式员工使唤了,刚入职没几天,连项目代码结构都没摸透,就被安排写项目了!一开始都是些接口对接、数据格式转换的基础活,听起来不难,但架不住我对项目的业务逻辑、代码规范一窍不通。对着前辈丢过来的需求文档,我一边查代码注释,一边翻技术文档,磕磕绊绊写完功能,也只知道&nbsp;“这么写能跑通”,根本不明白&nbsp;“为什么要这么设计”,妥妥的知其然不知其所以然。本以为这种基础活会干很久,结果没过多久,领导直接甩给我一个小功能的开发方案,让我负责从方案落地到功能对接、测试上线的全流程。当时我直接懵了,硬着头皮啃需求、画流程图、写核心代码,遇到不懂的就逮着前辈狂问,加班加点成了家常便饭。更没想到的是,后面居然让我独立负责一个模块的开发,还要做性能优化。从数据库索引调整,到接口响应速度提升,每一步都得自己琢磨、自己验证。那段时间真的累到飞起,每天下班脑子都是懵的尤其是发版的时候,我比谁都紧张,盯着监控屏大气不敢喘,生怕自己写的代码出&nbsp;bug&nbsp;导致系统崩溃。一旦出问题,就得立刻配合运维回滚版本,然后自己留下来加班排查修复,常常整栋办公楼只剩我一个人的工位亮着灯。每天加班到深夜,工作量比正式员工还饱和,我不止一次对着电脑发呆:我到底是来实习的,还是来打工的?虽然这段经历确实让我的技术能力突飞猛进,但那种被推着往前走的疲惫感,直到现在想起来都觉得累。
大家实习都在做什么?
点赞 评论 收藏
分享
01-04 21:30
已编辑
河南工业大学 Java
27届学院本誓死冲击...:下次再发把个人信息隐藏掉,以防有心之人。相关课程删了,荣誉奖项只留蓝桥杯,把蓝桥杯写到教育经历里,按教育经历、实习经历、项目经历、专业技能这个顺序排版
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务