hdu4372 第一类斯特林数

多Agent系统三层记忆架构:从短期缓存到长期知识库的工程实现 在人工智能和软件工程领域,Agent记忆管理是构建智能系统的核心技术之一。其原理在于通过分层存储机制模拟人类认知过程,将信息按生命周期和价值进行组织。这一技术的核心价值在于解决多智能体协作中的上下文断裂问题,提升任务连续性和个性化服务能力。从技术实现角度看,记忆系统通常分为短期、中期和长期三个层次:短期记忆类似CPU缓存,处理即时交互数据;中期记忆管理会话级任务状态;长期记忆则构建持久化知识库。这种分层设计在客服系统、数据分析平台和个性化推荐等场景中尤为重要,能够显著提升Agent的上下文感知能力。本文聚焦 阅读详情

题意:N栋大楼,高度1~N,从前看到F栋大楼,从后看到B栋大楼,问方案数

思路:你看到的F栋并不是F栋,而是F组大楼中分别最高的那个

第N栋肯定能被看到,所以将N分为,F-1+B-1组 

每一组最高的放在最左面(其余看不到可以乱排)

每一组至少一个,比如有一组分到123三栋,

那么123,312,231只算312一种(最高放最左),但是312跟321算两种

不同N数分相同M组,轮换不同算两种,显然第一类斯特林数

分了F+B-2组后还得选F-1放在左边(让他们从低到高排)

注意:防RE,f+b-2>2000输出0w


#include<set>
#include<map>
#include<cmath>
#include<vector>
#include<string>
#include<ctype.h>
#include<stdio.h>
#include<cstring>
#include<iostream>
#include<iterator>
#include<algorithm>
#define ll long long
#define INF  0x3f3f3f3f
#define scann(d) scanf("%d",&d)
#define scanl(d) scanf("%I64d",&d)
using namespace  std;
const double eps = 1e-8;
const double PI = acos(-1.0);
const double e  = 2.718281828459;
const int N=200000;
const int mod=1e9+7;
inline  int sgn(double a);
inline  ll gcd(ll a,ll b);
inline  ll mod_pow(ll x,ll n,ll mod); 			//快速幂 余数

ll s1[2005][2005];
void initS()
{
	memset(s1,0,sizeof(s1));  
	s1[0][0]=1;
	for(int i=1; i<=2001; i++)
	{
		s1[i][0]=0;
		s1[i][i]=1;
		for(int j=1; j<=2001&&j<=i; j++)
		{
			s1[i][j]=(s1[i-1][j]%mod*(ll)(i-1)%mod)%mod+s1[i-1][j-1]%mod;
			s1[i][j]%=mod;
		}
	}
}
ll c[2005][2005];
void initC()
{
    memset(c,0,sizeof(c)); 
	c[0][0]=1;
	c[1][0]=1;
	c[1][1]=1;
	for(int i=1; i<=2001; i++)
	{
		c[i][0]=c[i][i]=1;
		for(int j=1; j<=i; j++)
		{
			c[i][j]=c[i-1][j-1]%mod+c[i-1][j]%mod;//递推公式,2000比较小还能用 mod可以不是质数
			c[i][j]%=mod;
		}
	}
}
int main()
{
	initS();
	initC();
	//cout<<s1[4][2]<<endl;
	int T;
	cin>>T;
	while(T--)
	{
		int n,f,b;ll ans=0;
		//cin>>n>>f>>b;//670ms
		scanf("%d%d%d",&n,&f,&b);//280ms
		if(f+b-2<=2000)
		 ans=(c[f+b-2][f-1]%mod)*(s1[n-1][f+b-2]%mod);
		ans%=mod;
		printf("%lld\n",ans);
	}
	return 0;
}


















inline int sgn(double a)
{
	return a < -eps ? -1 : a < eps ? 0 : 1;
}

inline ll gcd(ll a,ll b)
{
	return a==0?b:gcd(b%a,a);
}

ll mod_pow(ll x,ll n,ll mod)//快速幂 余数
{
	ll res=1;
	while(n>0)
	{
		if(n&1)//n的二进制最右位是1,即奇数
			res=res*x%mod;
		x=x*x%mod;
		n=n>>1;		 //相当于n/=2;
	}
	return res;
}


hdu4372(第一类斯特林数) Count the Buildings Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2185    Accepted Submission(s): 715 Problem Description There a 阅读详情

相关推荐

新手必看!Stata工具变量分析中的三大陷阱:如何正确解读LM统计量、CDW检验和Hansen J值

本文深度解析Stata工具变量分析中的三大核心检验:不可识别检验、弱IV检验和过度识别检验,帮助新手避开常见陷阱。详细解读LM统计量、CDW检验和Hansen J值的正确使用方法,提供实战案例和Stata操作指南,确保研究结论的可靠性。

weixin_29231027的博客 572

组合数学(斯特林数) hdu 4372 ( Count the Buildings )

给定n栋楼 拍成一列,从前边往后看能看到b栋楼,从后往前能看到f栋楼,问有多少种组合方式. 那么最高的那栋楼,肯定是前与后的分界点,  先考虑从前往后看,假设看到了x栋楼, 那么最高楼前面 肯定有x-1 组,每组最高的肯定是在最前面,这样 就只能看到x栋楼。 同样后面看到y栋,则最高的后面有y-1组,这样一共就是x-1+y-1组,每组其实又是一个环排列,那么题目可转化为 n-1栋楼求

bitwater的空间 417

springboot + netty 实现多客户端登录 超出设备 并下线

本文档旨在详细描述多平台登录控制的需求和实现方案。当前系统仅支持单设备登录,需扩展为支持多设备同时在线,并提供多种登录策略。文档详细列出四种策略:单平台登录、双平台登录、三平台登录和多平台同时在线,每种策略的具体限制和支持平台。技术实现方案包括数据结构设计、NettyUtils 工具类方法、WebSocketHandler 修改,以及相应的测试方案

Likefr 1878

[斯特林数][NTT][HDU4372][WC2019雅礼集训]Count the buildings

HDU4372 考虑最高的点,他左边有x-1个极高点,右边有y-1个极高点 一个极高点和下一个极高点(不包含下一个)这一部分可以看做一个圆排列(不是排列因为极高点的位置固定),那么就是要求n−1n-1n−1个数分成x+y−2x+y-2x+y−2个圆排列的方案数,即sn−1,x+y−2s_{n-1,x+y-2}sn−1,x+y−2​ 然后考虑这些圆排列要选x-1个放到最高点左边,这里只用选出来就行了...

romiqi 163

C#与Vector XL驱动库实战:CAN通道配置与端口访问详解

本文详细解析了使用C#调用Vector XL驱动库进行CAN总线通信开发的核心步骤。重点阐述了如何通过XL_GetDriverConfig获取硬件通道信息,并厘清channelMask与accessMask的区别与转换关系,最终指导开发者正确使用XL_OpenPort函数配置并打开CAN端口,为构建稳定的汽车电子测试与诊断应用奠定基础。

weixin_28452161的博客 362

Ubuntu 22.04下GNU Radio 3.10全家桶编译避坑实录:从UHD、VOLK到WiFi收发模块gr-ieee802-11

本文详细介绍了在Ubuntu 22.04系统下编译安装GNU Radio 3.10全家桶的完整流程,包括UHD驱动、VOLK优化库以及WiFi信号处理模块gr-ieee802-11的集成。通过逐步指导解决版本兼容性和依赖问题,帮助研究人员快速搭建高效的软件定义无线电开发环境,特别适合使用USRP设备进行无线通信研究的开发者。

weixin_30825199的博客 447

斯特林数(Siteling_Number)

一、基本概念 斯特林数出现在许多组合枚举问题中.  第一类斯特林数 StirlingS1[n,m], 给出恰包含 m 个圈的 n 个元素 的排列数目. 斯特林数满足母函数关系 . 注意某些 的定义与 Mathematica 中的不同,差别在于因子 . 第二类斯特林数 StirlingS2[n,m]给出把 n 个可区分小球分配到m个不可区分的的盒子,且盒子没有空盒子的方法的数量. 它们满足关系...

无限迭代中...... 1937

Spirent TestCenter 3.90吞吐测试全流程详解(附RFC 2544配置避坑指南)

本文详细解析了使用Spirent TestCenter 3.90进行网络吞吐测试的全流程,并提供了符合RFC 2544标准的配置指南与避坑要点。内容涵盖测试环境搭建、核心概念澄清、STC软件配置步骤、结果深度解读以及自动化脚本入门,旨在帮助网络测试工程师精准评估设备性能,规避常见配置陷阱。

weixin_42602368的博客 370

第一类Stirling数(第一类斯特林数)

第一类Stirling数(第一类斯特林数) 定义 第一类Stirling数表示把nnn个不同元素构成mmm个圆的排列方案数,写作s(n,m)s(n,m)s(n,m). 根据正负性分为无符号第一类Stirling数su(n,m)s_u(n,m)su​(n,m)和带符号第一类Stirling数ss(n,m)s_s(n,m)ss​(n,m). 组合数学中的第一类Stirling数泛指无符号第一类S...

ZSJZ_liuzian的博客 7277

Tailscale 自建 DERP 中继服务器

Tailscale自建DERP中继服务器

Accompagner的博客 4329

KEPServerEX物联网网关(IoT Gateway)REST客户端代理(非原创)

(中文版)资料来源于【OPC-KEPServerEX学习KEPWare交流】905485143群的【455196383】【零下一度】 一。KEPServerEX物联网网关REST客户端代理演示 在KSE中,首先构建一个带有通道/设备/标签的模拟器系统。 例如,下面是三个随机项目。 直接到IoT网关插件,添加新代理。 从类型列表中选择REST Client。 终结点...

-雲飛兄-博客 5806

组合数学 —— 斯特林数(Stirling)

【第一类斯特林数】 1.定理 第一类斯特林数 S1(n,m) 表示的是将 n 个不同元素构成 m 个圆排列的数目。 2.递推式 设人被标上1,2,.....p,则将这 p 个人排成 m个圆有两种情况: 在一个圆圈里只有标号为 p 的人自己,排法有 S1(n-1,m-1) 个。 p 至少和另一个人在一个圆圈里。 这些排法通过把 1,2....n-1 排成 m 个圆再把 n 放在 1,2...

Alex_McAvoy的博客 2万+

AutoSAR配置与实践(实践篇)13.1 如何添加一个NVM BLOCK

解决办法:如下红框选项都不要自定义,否则无法自动生成对应RAM/ROM映射接口函数。传送门–AUTOSAR配置与实践—总目录传送门–AUTOSAR配置与实践—总目录。

nihaoljq2010的博客 3036

HDU4372(第一类斯特林数)

HDU4372(第一类斯特林数) 分类: 组合博弈2013-08-03 14:54 27人阅读 评论(0) 收藏 举报 题目:Count the Buildings 题意:N座高楼,高度均不同且为1~N中的数,从前向后看能看到F个,从后向前看能看到B个,问有多少种可能的排列数。 0 首先我们知道一个结论:n的环排列

pi9nc的专栏 868

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

第一类斯特林数 hdu4372

Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1497    Accepted Submission(s): 499 Problem Description There are N

转角的守望 525

VB摄像头监控

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

hdu4372--第一类斯特林数

题目描述:有n栋楼排成一排,高度分别为1, 2……n,从前向后看可以看到F栋楼,从后往前看可以看到B栋楼,问这n栋楼有多少种排列? 分析:先说一下第一类斯特林数吧。 S(n, m)表示恰包含m个圈n个元素的排列数,则很容易证明有递推公式:S(n, m) = (n - 1) * S(n - 1, m) + S(n - 1, m - 1); 方便记忆一下...

dechi5213的博客 159

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdu 4372 Count the Buildings 第一类斯特林数

第一类斯特林数 对于n个数,分成k组,每组是一个环排列(非空) S(n,k)=(n−1)∗S(n−1,r)+S(n−1,r−1)S(n,k)=(n-1)*S(n-1,r)+S(n-1,r-1)S(n,k)=(n−1)∗S(n−1,r)+S(n−1,r−1) 分析 一共n个楼,高度分别为1~n,现在从左边往右边看是f个楼,从右边往左边看是b个楼 我们发现最高楼两边都可以看见,故忽略不计 从最高楼到两...

three_trees的blog 178

hdu 4372 Count the Buildings —— 思路+第一类斯特林数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4372 首先,最高的会被看见; 然后考虑剩下 \( x+y-2 \) 个被看见的,每个带了一群被它挡住的楼,其实方案数是圆排列,每个圆从最高的楼开始断掉都是不同的方案; 再把这 \( x+y-2 \) 个圆排列分成两组放左右两边,它们按最高楼的高度就自动有顺序了,不必再算; \( s[i]...

aodan5477的博客 177

HDU4372:Count the Buildings

HDU4372:Count the Buildings题目大意思路代码 题目大意 传送门 思路 个人觉得这位巨佬的博客讲的异常之好。我们把所有建筑物中最高的那个玩意提出来(塔的高度是1~n),我们知道无论从哪边看,这个最高的塔一定能够被看到,所以,我们就以这座塔为分界线。我们考虑,左边需要有F−1F-1F−1幢,我们想一下能看到它们的条件,就是这F−1F-1F−1幢是单调上升的,以此类推,右边B...

nobody_like_you的博客 220

HDU4372 Count the Buildings —— 组合数 + 第一类斯特林数

题目链接:https://vjudge.net/problem/HDU-4372 Count the Buildings Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2509Accepted Submissi...

weixin_30319097的博客 91

[HDU 4372]Count the Buildings(第一类斯特林数+组合数)

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4372题目大意有nn个建筑排成一列,它们的高度是在1到n1到n之间,且没有两个建筑高度相同。从前面看能看到FF个建筑,从后面看能看到BB个建筑,问这样的建筑排列共有多少种。思路第一类斯特林数s1[i][j]=is_1[i][j]=i个互不相同的物品,划分成jj个环的方案数。实际上,一个长度为nn的环的排列的

某沙茶的OI代码库 871

HDU4372Count the Buildings(第一类斯特林数)

Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1477    Accepted Submission(s): 491 Problem Description There a

Rain 752

hdu 4372 第一类斯特林数

#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #include <stack> #include <set> #include <map> #include <vector>using namespace std; #def

点羽染墨 758

hdu 4372 Count the Buildings(第一类斯特林数)

从前向后看可以看到F栋楼,去掉中间最高那栋楼,有F-1栋楼,看到的第一栋楼和看到的第二栋楼之间的楼,分给第一栋楼,属于同一组楼,后边的依次类推,共F-1组楼,对于每组楼,假设有X栋楼,去掉我们看到的这一栋楼固定在第一个位置(这一组最高的楼在最靠前的位置),剩下X-1栋楼随意排列,X-1栋楼的的排列就是X栋楼的环排列,这就分成了F-1个环排列,从后向前看的也是这样。这就是N栋楼形成了F+B-2个环排列

梦幻的蔷薇色 356

HDU 4372 Count the Buildings(组合数学,第一类Stirling数)

HDU 4372 题意:有n个建筑高度为1~n,从前看能看到f个,从后看能看到b个,求可能有多少种排序情况。 思路: 五个小时花了3.5小时在上面,结果靠强行yy出了递推式(事后发现。。yy对了95%,跪在各种细节上,比赛结束也没A掉。。 只能说大力出奇迹!但这种奇迹往往会毁在不经意的细节上orz 分析几组数据我们可以发现,最高的n号楼一定是可以看到的,无论是从左还是右。

a novice 1333
上一篇: hdu4248 组合数学+DP
下一篇: hdu3208 很迷的题,组合数学,精度
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值