[FJOI2016] 建筑师

STM32MP257 SPI3从模式NSS引脚失效:Linux设备树与硬件NSS混用排查 SPI(Serial Peripheral Interface)作为嵌入式系统中广泛使用的同步串行总线,依靠NSS/CS片选信号实现主从设备间的通信选通。在从机模式下,NSS引脚的电平变化直接决定SPI控制器是否响应外部传输。然而在STM32MP257这类异构MPU平台上,从设备的NSS信号路径远比普通单片机复杂:引脚复用、设备树配置、控制器软硬件NSS模式以及Linux SPI框架的运行时行为都可能成为片选失效的隐患。本文从SPI从模式的基础原理出发,系统梳理NSS引脚从硬件通路到软件配置的完整链路,结合 阅读详情

题目描述

小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 nn 个建筑,每个建筑的高度是 1 到 nn 之间的一个整数。小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同。另外小 Z 觉得如果从最左边(所有建筑都在右边)看能看到 A 个建筑,从最右边(所有建筑都在左边)看能看到 BB 个建筑,这样的建筑群有着独特的美感。现在,小 Z 想知道满足上述所有条件的建筑方案有多少种?

如果建筑 i 的左(右)边没有任何建造比它高,则建筑 i 可以从左(右)边看到。两种方案不同,当且仅当存在某个建筑在两种方案下的高度不同。

输入格式

第一行一个整数 T,代表 TT 组数据。

接下来 T 行,每行三个整数 n、A、Bn、A、B。

输出格式

对于每组数据输出一行答案 modmod 109+7109+7。

样例输入

2
3 2 2
3 1 2

样例输出

2
1

数据规模与约定

对于 10%10% 的数据,1≤n≤101≤n≤10。

对于 20%20% 的数据,1≤n≤1001≤n≤100。

对于 40%40% 的数据,1≤n≤50000,1≤T≤51≤n≤50000,1≤T≤5。

对于 70%70% 的数据,1≤n≤50000,1≤T≤20001≤n≤50000,1≤T≤2000。

对于 100%100% 的数据,1≤n≤50000,1≤A、B≤100,1≤T≤2000001≤n≤50000,1≤A、B≤100,1≤T≤200000。

题解

首先,我们考虑暴力该怎么做。
记 fi,j,kfi,j,k 为 前 ii 个中, 从左边能看到 j 个, 从右边能看到 kk 个的方案数。
则 fi,j,k=fi−1,j−1,k+fi−1,j,k−1+fi−1,j,k×(i−2)
因为左右两边是镜像关系,所以我们只要处理出 fi,jfi,j 为放了 ii 个,从一侧能看到 j 个的方案数即可。
这样就有 4040 分了。
然后我们设去掉最高的点之后, 当前从左边能看到的为 aa 个, 从右边能看到的为 b 个,我们每次加一条边有三种情况。
第一种情况为 a+1a+1, 第二种情况为 b+1b+1, 第三种情况为 a,ba,b 不变。
对于第一第二种都各有 11 种情况。
对于第三种的可能随着我们选边的进行从 n−2 递减到 00。
则设 fi,j 为选了 ii 个点,有 j 个点改变了 aa 或 b 的方案数。
则 fi,j=fi−1,j−1+fi−1,j×(i−1)fi,j=fi−1,j−1+fi−1,j×(i−1)
然后其中有 A−1A−1 个点是用来改变 aa 的。
则最后的答案为 CA+B−2A−1×fn−1,A+B−2
然后这是个斯特林数???
嗯没错,就是个第一类斯特林数。
所以答案为 CA−1A+B−2×SA+B−2n−1CA+B−2A−1×Sn−1A+B−2
额说一下为什么是第一类斯特林数吧。
我们设除去最高的点之后,每个点之后被挡住了 xx 个点。
则这 x 个点有 x!x! 种方案。
算上挡住这些点的固定的那一个点,则这些点的方案数即为这些点的圆排列的方案数。
所以题意即为在去掉最高点之后的 n−1n−1 个数中划分出 A+B−2A+B−2 个圆排列并选出 A−1A−1 个放在左边。
所以答案如上。
不知道有人是怎么打表看出来的,真的是神仙啊。

代码

#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <iostream>
#include <queue>
#include <set>
#include <stack>

#define R register
#define ll long long
#define db double
#define sqr(_x) (_x) * (_x)
#define Cmax(_a, _b) ((_a) < (_b) ? (_a) = (_b), 1 : 0)
#define Cmin(_a, _b) ((_a) > (_b) ? (_a) = (_b), 1 : 0)
#define Max(_a, _b) ((_a) > (_b) ? (_a) : (_b))
#define Min(_a, _b) ((_a) < (_b) ? (_a) : (_b))
#define Abs(_x) (_x < 0 ? (-(_x)) : (_x))

using namespace std;

namespace Dntcry
{
    inline int read()
    {
        R int a = 0, b = 1; R char c = getchar();
        for(; c < '0' || c > '9'; c = getchar()) (c == '-') ? b = -1 : 0;
        for(; c >= '0' && c <= '9'; c = getchar()) a = (a << 1) + (a << 3) + c - '0';
        return a * b;
    }
    inline ll lread()
    {
        R ll a = 0, b = 1; R char c = getchar();
        for(; c < '0' || c > '9'; c = getchar()) (c == '-') ? b = -1 : 0;
        for(; c >= '0' && c <= '9'; c = getchar()) a = (a << 1) + (a << 3) + c - '0';
        return a * b;
    }
    const int Maxn = 50010, Maxl = 210, Mod = 1000000007;
    int T, n, A, B;
    ll S[Maxn][Maxl], C[Maxl][Maxl];
    void init(R int tmp1, R int tmp2)
    {
        for(R int i = 0; i <= tmp1; i++)
        {
            S[i][0] = 0;
            if(i <= tmp2) S[i][i] = 1;
            for(R int j = 1; j <= Min(i, tmp2); j++) 
                S[i][j] = (S[i - 1][j - 1] + (i - 1) * S[i - 1][j] % Mod) % Mod;
        }
        for(R int i = 0; i <= tmp2; i++) 
        {
            C[i][0] = 1;
            for(R int j = 1; j <= i; j++) 
                C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % Mod;
        }
        return ;
    }
    int Main()
    {
        init(50000, 200);
        T = read();
        while(T--)
        {
            n = read(), A = read(), B = read(); 
            printf("%lld\n", S[n - 1][A + B - 2] * C[A + B - 2][A - 1] % Mod);
        }
        return 0;
    }
}
int main()
{
    return Dntcry :: Main();
}
Android AI Agent集成实战:架构设计与自动化技能开发 AI Agent(人工智能代理)是一种能够感知环境、自主规划并执行任务以达成目标的软件实体。其核心原理在于结合大语言模型的推理能力与工具调用(Tool Calling)技术,使应用从被动响应转向主动服务。在移动开发领域,这项技术的价值在于为应用注入“智能大脑”,实现跨应用自动化与个性化交互,从而显著提升用户体验和操作效率。具体到Android平台,其应用场景广泛,例如自动填写表单、智能聊天辅助、个性化工作流优化等。本文聚焦于Android AI Agent的工程化落地,深入探讨了如何利用Accessibil 阅读详情

相关推荐

VINS-Mono 代码详细解读——IMU预积分的残差、Jacobian和协方差 processIMU()+intergrationBase类+imu_factor.h

IMU离散中值预积分 1.1、IMU模型 测量值:加速度计a^、陀螺仪w^, 加上了bias游走和随机白噪声。 真实值:加速度计a、陀螺仪w。 实际情况下,可以获得测量值a^和w^,需要反推真实值。一般忽略随机游走高斯噪声n w=w^-bg; a=qwb(a^-ba)-gw; 1.2、连续时间IMU运动模型,积分 PVQ(两帧之间) 将第k帧和第k+1帧所有的IMU进行积...

try_again_later的博客 9266

FJOI2019全记录(福建省选)

Day 0 最后一个早上,早读完后就到机房里,复习了左偏树和计算几何,然后真的不知道还要做什么了(FFT和一些数论的结论昨天复习过了 也许还要去学一点新东西(?),像Krusk重构树什么的。(一直没有学过 等一下十一点多就要出发去动车站前往福州了(老师居然买了中午一点半的动车) 愉快地跑来写博客。 “最后这几个单位时间很重要,你们要能及时查缺补漏,使自己达到一...

474

从仿真到实战:PMOS缓启动与栅极泄放电路的优化设计

本文深入探讨了PMOS缓启动与栅极泄放电路的优化设计,通过立创EDA仿真和实物调试,解决了关断速度慢和耐压问题。文章详细介绍了电路改进方案和低功耗优化技巧,为工程师提供了实用的工程实践建议,帮助提升电源开关电路的性能和可靠性。

weixin_28721917的博客 260

FJOI2019游记

Day0(2019.4.12):

hzk_cpp的博客 643

Java开发的企业排班系统

Java开发的企业排班系统,用了springboot框架,人脸识别是采用百度接口的方式实现

自学网站s.jf3q.com,菜鸟的成长之路 6013

【LLM】ms-Swift框架下SFT与GRPO协同优化的高效训练策略

本文深入探讨了ms-Swift框架下监督微调(SFT)与群组相对策略优化(GRPO)的协同训练策略,提升大型语言模型(LLM)的性能与效率。通过创新的架构设计和两阶段训练流程,结合GRPO的群组奖励估计与动态基线调整技术,显著优化了数学推理等任务的准确率。文章还分享了计算资源高效利用和参数调优的实战经验,为LLM训练提供了实用指导。

green的博客 994

FJOI2017 滚蛋记

在FJOI前面参加了几天的FJWC,下午打了一些模拟赛,大概的情况是:第一天犯傻爆零,有一天是第二名(这真是人生巅峰),还有两天十几名二十几名这样子。总的来说比较惨,毕竟我弱。主要说一下FJOI吧,共三题。先通读一遍题目,花一个小时干掉第三题FJWCD1T1原题,回头搞第二题。第二题,一看题目觉得和最大点独立集有关?可是独立集的那套理论我已经记不太清楚了啊。。。(我以前还专门整理过这些,这样忘掉了是

无尽 2241

Abaqus仿真突然中断?手把手教你解决SIGTERM/SIGINT报错(附完整命令行方案)

本文深入解析Abaqus仿真中因SIGTERM或SIGINT信号导致进程意外中断的根本原因,并提供了一套完整的命令行解决方案。通过将作业提交方式从图形界面切换到命令行,并配合关键参数设置,可以有效避免因会话空闲超时或外部干扰引发的计算中断,保障长时间仿真任务的稳定运行。

devops8pract的博客 746

FJOI省队集训 chessboard

(题目懒得打字了,建议到新窗口查看) 显然这玩意儿是可以按位搞的...然后就是一个裸的最小割模型? 然而这样做理论上只有30分实际上有40分。 事实上我们可以发现,每一列的取值只和上一列有关,这样我们就可以以每一列为状态进行dp。 记dp[i][j]表示第i列状态为j的方案数,考虑上一列的状态,把它们异或在一起瞎统计一下就行了。 这样做理论复杂度是可以AC的,实际上要跑3s左右......

weixin_30682127的博客 154

基于R-CNN深度学习的常见手势识别系统:数据集、模型和UI界面的完整实现

卷积神经网络(CNN):用于从图像中提取特征。区域提议网络(RPN):用于生成可能包含手势的候选区域。:将候选区域调整为固定大小,并进行进一步的分类和回归。接下来,我们需要加载一个预训练的Faster R-CNN模型,并对其进行微调。我们将使用# 加载预训练的Faster R-CNN模型# 获取分类器的输入特征数# 替换分类器头部,设置为我们数据集的类别数(假设有5类手势)

YOLO 1000

【2025CSPJ普及组】T4. 多边形

【2025CSPJ普及组】T4. 多边形【题目描述】小 R 喜欢玩小木棍。小 R 有 n 根小木棍,第i(1≤i≤n) 根小木棍的长度为 ai。

lybc2019的博客 849

[洛谷P4609] [FJOI2016]建筑师

洛谷题目链接:[FJOI2016]建筑师 题目描述 小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 \(n\) 个建筑,每个建筑的高度是 \(1\) 到 \(n\) 之间的一个整数。 小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同。另外小 Z 觉得如果从最左边(所有建筑都在右边)看能看到 \(A\) 个建筑,从最右边(所有建筑都在左边)看能看到 \(B\...

dengtun2502的博客 270

SolidWorks 小车底盘 装配体

通过制作小车底盘了解solidworks装配体的部分知识

及时总结 2229

FJOI2016 建筑师(组合数学)

FJOI2016 建筑师 昨天考了场省选模拟赛,下来才知道是FJOI2016,不过T1,T2都没在OJ上找到?? T2倒是以前在紫书上面做到过类似的. 同UVa 1638

Continue 1509

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[FJOI2016]建筑师(斯特林数)

【FJOI2016】建筑师 问题描述 小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 n 个建筑,每个建筑的高度是 1 到 n 之间的一个整数。 小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同。另外小 Z 觉得如果从最左边(所有建筑都在右边)看能看到 A个建筑,从最右边(所有建筑都在左边)看能看到 B 个建筑,这样的建筑群有着独特的美感。现在,小 Z...

weixin_30236595的博客 203

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

洛谷P4609 [FJOI2016] 建筑师题解 第一类斯特林数

该题的题解以及斯特林数的应用

bawangtianzun的博客 363

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

洛谷P4609 [FJOI2016]建筑师

题目 题目描述 小Z是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 nnn 个建筑,每个建筑的高度是111到nnn之间的一个整数 小Z有很严重的强迫症,他不喜欢有两个建筑的高度相同 另外小Z觉得如果从最左边(所有建筑都在右边)看能看到AAA个建筑,从最右边(所有建筑都在左边)看能看到BBB个建筑,这样的建筑群有着独特的美感 现在,小Z想知道满足上述所有条件的建筑方案有多少种 如果建筑iii的左(右)边没有任何建造比它高,则建筑iii可以从左(右)边看到 两种方案不同,当且仅当存在某个建筑在

菜鸡Jacky0705的优快云博客 390

【FJOI2016】建筑师

安利另外一篇\(blog\) 密码泥萌都知道 题面 题解 为了描述方便,这里将建筑称作\(zsy\) 高度为\(n\)的\(zsy\)无论如何都能从左右两侧看到。剩下的部分,从左边看到的是前缀\(max\),从右侧看到的是后缀\(max\)。大概像这样: 对于被框住的\(A+B−1\)个部分,只有第一个能作为前、后缀\(max\)被看到。可以认为是把数分成\(A+B−1\)个圆排列,其中有一个仅...

weixin_30622181的博客 182

[FJOI2016]建筑师

题解 首先可以发现\(n\)这个楼将序列分成的两半 前一半就是让你选出\(A\)个数,并且以\(n\)为结尾,每个数到下一个数的这段区间的数一定小于这个数 那么这可以看做是什么呢? 是不是可以把每段区间内的数看做是一个环然后做环排列? 最大的数就当做环首 这就是\((A-1)\)个环排列 那么这就是第一类斯特林数了 \(S(n,m)=(n-1)S(n-1,m)+S(n-1,m-1)\)表...

weixin_30435261的博客 262

FJOI 2016 建筑师(斯特林数)

【FJOI2016】建筑师 问题描述 小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 n 个建筑,每个建筑的高度是 1 到 n 之间的一个整数。 小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同。另外小 Z 觉得如果从最左边(所有建筑都在右边)看能看到 A个建筑,从最右边(所有建筑都在左边)看能看到 B 个建筑,这样的建筑群有着独特的美感。现在,

Mogician_Evian的博客 817

P4609 [FJOI2016]建筑师

思路 裸的第一类斯特林数,思路和CF960G相同 预处理组合数和第一类斯特林数回答即可 代码 #include <cstdio> #include <cstring> #include <algorithm> #define int long long using namespace std; const long long MOD= 1e9+7; long l...

weixin_34149796的博客 113

题解 P4609 【[FJOI2016]建筑师】

一道有趣的组合数学题 这道题其实挺水的至少没有黑题难度(滑稽 只要学过点组合数学就没太大问题。不过思路还是比较巧妙,值得一做。 讲思路吧。 题意如图:(建筑编号从左到右依次排列) 解释一下,画红框的是表示这个红框内的建筑都由一个最高建筑“代表”。比如从左看,111号建筑挡住了2,32,32,3号建筑,直到444号建筑比111号高,444号建筑再成为下一群建筑的代表。 那么...

YT910811的博客 202
上一篇: [SHOI2017] 分手是祝愿
下一篇: 后缀数组学习笔记
DntcryBecthlev
博客等级 码龄9年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值