[DP]BZOJ 4321: queue2

Summary ATP感觉自己退役之前是用不上机房的空调了【笑 阅读详情

Description

要求一个 n 排列的方案数,满足:

  • 任意相差为1的元素不相邻。

    n 只有1000啦。。

    Description

    OEIS上居然有这个东西。。
    考虑DP吧。挺套路的DP。
    考虑前 i 个数,有j个相邻的元素,最后两个数是否相邻 [0/1] ,计为 dpi,j,0/1 。
    因为一个元素加进去只会影响比他小 1 的数。
    这样就没有重复啦。。

    #include <bits/stdc++.h>
    using namespace std;
    
    const int MOD = 7777777;
    const int N = 1010;
    typedef long long ll;
    
    inline char get(void) {
        static char buf[100000], *S = buf, *T = buf;
        if (S == T) {
            T = (S = buf) + fread(buf, 1, 100000, stdin);
            if (S == T) return EOF;
        }
        return *S++;
    }
    inline void read(int &x) {
        static char c; x = 0;
        for (c = get(); c < '0' || c > '9'; c = get());
        for (; c >= '0' && c <= '9'; c = get()) x = x * 10 + c - '0';
    }
    
    int n, res;
    int dp[N][N][2];
    int pre[N], suf[N];
    
    inline void Add(int &x, int a) {
        x += a; while (x >= MOD) x -= MOD;
    }
    inline int Mod(int x) {
        Add(x, 0); return x;
    }
    
    int main(void) {
        freopen("1.in", "r", stdin);
        scanf("%d", &n);
        dp[2][1][1] = 2;
        for (int i = 3; i <= n; i++) {
            for (int j = 0; j < i; j++) {
                Add(dp[i][j][0], (ll)dp[i - 1][j + 1][0] * (j + 1) % MOD);
                Add(dp[i][j][0], (ll)dp[i - 1][j + 1][1] * j % MOD);
                if (i - j >= 2) Add(dp[i][j][0], (ll)dp[i - 1][j][0] * (i - j - 2) % MOD);
                Add(dp[i][j][0], (ll)dp[i - 1][j][1] * (i - j - 1) % MOD);
                if (j) Add(dp[i][j][1], dp[i - 1][j - 1][0] * 2);
                Add(dp[i][j][1], dp[i - 1][j][1]);
                if (j) Add(dp[i][j][1], dp[i - 1][j - 1][1]);
            }
        }
        cout << dp[n][0][0] << endl;
        return 0;
    }
瑞芯微RK3576开发实战:固件烧录与内核启动的典型问题解析 本文详细解析了瑞芯微RK3576开发板在固件烧录与内核启动过程中遇到的典型问题及解决方案。从开发工具版本检查、DDR配置调整到内核启动异常的设备树适配和电源管理问题,提供了系统性的调试方法和实用技巧,帮助开发者高效解决RK3576开发中的常见挑战。 阅读详情

相关推荐

旋转矩阵的左乘与右乘

旋转矩阵左右乘的详细讲解

qq_46619194的博客 3329

bzoj 4321: queue2 (DP)

题目描述传送门题目大意:求1-n的排列中,满足每个数的左右两边的数与自己相差都不是1的方案数。题解刚开始排列组合乱搞,无果。。。。受到点启发后开始想DP,不过还是想了很久。 f(i,j,0)f(i,j,0) 表示从1..i顺序插入序列,有j对相邻的数相差1,第i个数与第i-1个数不相邻。 f(i,j,1)f(i,j,1) 表示从1..i顺序插入序列,有j对相邻的数相差1,第i个数与第i-1个数相

clover_hxy的博客 907

Ansys Zemax与Speos协同设计:从HUD光学优化到驾驶环境可视化全流程解析

本文深入解析了如何利用Ansys Zemax与Speos进行协同设计,实现从HUD光学系统核心优化到驾驶环境可视化验证的全流程。文章强调了HUD设计是光学性能与视觉感知的深度耦合,通过Zemax进行精密光学设计,再利用Speos进行系统级仿真与感知模拟,最终完成从虚拟到现实的闭环验证,有效提升HUD产品的开发效率与可靠性。

weixin_29199873的博客 243

BZOJ 4321 DP

思路: 这个DP太神了… 完全没想到 http://blog.youkuaiyun.com/geotcbrl/article/details/49663401//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n;long long f[1005][1005][2

SiriusRen的博客 670

微信小程序 实现拼图功能

微信小程序 实现碎片拼图

weixin_45689786的博客 2250

HFSS仿真3dB微带双分支定向耦合器学习笔记

设计一个3dB微带双分支定向耦合器,各端口微带线特性阻抗为50Ω,中心频率为5GHz,介质基板的介电常数9.6,基板厚度为0.8mm这里重点讲解HFSS的操作,关于理论知识后面文章更新。

qq_36521926的博客 7768

BZOJ4321 queue2 DP/递推

BZOJ4321 queue2Description求1~n的序列,满足一个数的左右两边的差的绝对值不等与1的方案数。 对答案mod 7777777题解很奇怪的状态,看了题解才搞懂。 钦定f[i][j][1]表示推到第i个数,其中有j对数是相差1的,其中i,与i-1相邻 f[i][j][0]表示推到第i个数,其中有j对数是相差1的,其中i,与i-1不相邻。我们先来分析i-1,i相邻,也就是f[

YJSheep 1230

基于分水岭分割进行肺癌诊断

近年来,肺癌的发病率和病死率均迅速上升,目前已居所有癌症之首。随着肺癌病人数量的增加,医生对肺部 CT 图像进行研判的工作量也增加了不少,在这种情况下难免工作效率降低甚至会出现误诊。为了帮助医生减少重复性工作,对肺部 CT 图像进行计算机辅助检测的技术就被广泛应用于对肺癌的诊断和治疗过程中。医学 CT 图像处理主要是研究医学图像中的器官和组织之间的关系,并进行病理性分析。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1568

BZOJ4321:queue2(DP)

Description n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行。现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 Input 只有一行且为用空格隔开的一个正整数 N,其中100%的数据满足 1≤N ≤ 1000。 Output 一个非负整数,表示方案数对 7777777...

weixin_34209851的博客 150

客服转人工率直降60%!OpenClaw深度集成NLP引擎,打造企业级对话自动化智能客服系统

本文介绍了一套基于OpenClaw智能体框架和NLP大模型引擎的智能客服系统解决方案。该系统通过深度集成NLP引擎实现精准语义理解,采用分层架构设计支持多渠道接入和业务系统对接,显著提升了客服效率。核心亮点包括:92%的重复问题自动解决率,60%的转人工率下降,40%的人力成本降低,以及从30秒压缩至0.5秒的平均响应时长。文章详细阐述了技术选型、系统架构设计、核心模块实现等关键环节,展示了如何通过智能对话系统破解传统客服业务中的人力资源与服务质量矛盾。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 361

深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计

大家好,我是微学AI ,今天给大家介绍一下深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计。高中数学自适应测试系统旨在通过精准评估学生能力,用最少的题目发现其薄弱环节,并提供定制化的学习计划,帮助学生快速提升成绩。同时,系统结合了AI大模型实现自动判卷、生成报告,减轻教师负担,并支持个性化作业布置,使教学更加高效。学生可以清晰了解自身学习状态,教师也能获得精准的学生画像,实现差异化教学。

微学AI的博客 444

【BZOJ4321】queue2 DP

【BZOJ4321】queue2 Description n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行; 现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 Input 只有一行且为用空格隔开的一个正整数 N,其中100%的数据满足 1≤N ≤ 1000; Outp...

aodanchui1057的博客 177

Python爬虫实战:模拟登录知乎 – 通过加密参数和验证码实现自动登录

通过本篇博客的讲解,我们学习了如何通过 POST请求 和 验证码识别,模拟登录知乎并爬取用户信息、问题数据。随着爬虫技术的发展,面对更复杂的反爬虫机制,我们可以不断调整策略,以绕过这些防护,实现数据的自动化抓取。

2201_76125261的博客 731

BZOJ4321: queue2 dp

按照套路,考虑将数字从小到大插入到序列中. 令 $f[i][j]$ 表示将 $1$ ~ $i$ 插入到序列中,形成了 $j$ 对不合法的方案数. 然后考虑将 $i+1$ 插入时的情况: 1. 插入到不合法的空位中,消掉一个不合法. 2. 插入到合法的空位中 3. 插入到 $i$ 旁边,形成一个不合法. 4. 插入到 $i$ 与 $i-1$ 的空位中,消掉一个不合法,又新形成一个不合法...

EM LGH 199

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

DP bzoj4321 queue2

问题 J: queue2 时间限制: 1 Sec 内存限制: 128 MB 题目描述 n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两 人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行; 现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 输入 只有一行且为用空格隔开的一个正整数 N,其中 100%的数据满足 1≤N ≤ 1000; 输出

蒟蒻QTY 822

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[BZOJ4321] queue2

[BZOJ4321] queue2 题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4321 Solution 这种题一般套路就是从小到大插入然后\(\rm dp\)。 设\(f_{i,j,0/1}\)表示现在插入了前\(i\)个数,有\(j\)组相邻的数,并且\(i\)和\(i-1\)有没有相邻的方案数,\(0/1\)是方便转移。 那么...

weixin_30631587的博客 167

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

BZOJ4321queue2——DP/递推

题目描述 n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两 人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行; 现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 输入 只有一行且为用空格隔开的一个正整数 N,其中100%的数据满足 1≤N ≤ 1000; 输出 一个非负整数,表示方案数对 7777777 取模。 ...

weixin_34392843的博客 198

[DP] BZOJ4321. queue2

套路DP…这种和相邻数有关的一般考虑从小到大插入。 fi,j,0/1f_{i,j,0/1} 表示放了前 ii 个数,有 jj 个间隙两数相邻,0/10/1 表示 ii 和 i−1i-1 是否相邻。就好了。#include<cstdio> #include<algorithm> using namespace std; const int maxn=1005,MOD=7777777; typedef

Lynstery's blog 379

bzoj 4321 queue2 dp

设f[i][j][0/1]f[i][j][0/1] 表示前i个数有j个非法的,i是否与i-1相邻的方案数,转移看代码吧。。#include <bits/stdc++.h> using namespace std; #define N 1100 #define mod 7777777 #define ll long long int f[N][N][2],n; void upd(int &x,int

make_it_for_good的博客 433

【bzoj4321】queue2 dp

题目描述 n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行; 现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 输入 只有一行且为用空格隔开的一个正整数 N,其中100%的数据满足 1≤N ≤ 1000; 输出 一个非负整数,表示方案数对 7777777 取模。 样例输入 ...

weixin_30670151的博客 138

bzoj 4321 queue2 dp

简单$dp$,考虑从大到小插入 设个状态$f[i][j][0 / 1]$表示$i$和$i - 1$是否相邻即可 转移看代码就能看懂吧... 复杂度$O(n^2)$ #include <set> #include <vector> #include <cstdio> #include <cstring> #include &lt...

weixin_30696427的博客 123

bzoj4321 queue2(dp)

f[i][j][0],考虑1~i的排列,有j个相邻的差1,i和i-1不相邻的方案数。 考虑j插到哪里去来转移。 复杂度O(n2)O(n2)O(n^2) #include &lt;bits/stdc++.h&gt; using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 1010 #define mo...

Icefox的博客 277
上一篇: [杂题]Codeforces 860D. Wizard's Tour
下一篇: [容斥原理]BZOJ 2839: 集合计数
Vectorxj
博客等级 码龄11年 35粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值