2009年9月刊《程序员》算法题之我见——思索之三

tmap的使用_(转载)UE4容器TArray、TMap的使用 ue中特有容器的使用1、Log日志宏输出到屏幕上的调试日志会覆盖,在output log窗口则可以全部显示,所以先写个打日志的宏DECLARE_LOG_CATEGORY_EXTERN(MyContaimTest, Log, All);DEFINE_LOG_CATEGORY(MyContaimTest)//调试日志UE_LOG(MyContaimTest, Warning, TEXT("--- in... 阅读详情

本系列文章目录

 

2009年9月刊《程序员》算法题之我见——思索之一

2009年9月刊《程序员》算法题之我见——思索之二

2009年9月刊《程序员》算法题之我见——思索之三 

 

接上文“2009年9月刊《程序员》算法题之我见——思索之二”

 

仔细分析后发现,似乎不能推导出一个统一的公式来计算出大于三行的可能数。只能另辟蹊径。

 

问题七:M=15,N=2,P=S,求方案总数

这个问题现在的解决方法如下

第一步:先得到每一行P=2S的方案数以及每一个方案

 

第二步:将每一个方案一拆二,分为S和S。这表示这两个方案使能够相邻的,将相邻的可能压入一个表,用来备用。这一步的理由参看上一篇文章。

 

第三步:初始化第一行的每一种可能,每一种的可能都计数为1。从第二行开始,通过查表,得知上一行的每一个方案在这一行的相邻方案是什么,然后计数。随着行数的增多,每种方案在每一行出现的可能数都会发生变化。

 

第四步:到最后一行,统计最后一行每一种方案的各自可能数。然后求总和。

 

经过测试,M=15,N=150,P=4的解为70种,和之前的问题五的答案一致。当M=15,N=4,P=2的解出乎我的意料,为3328134种。不知其他人的答案是否和我的一致,欢迎交流。

下面详细分析每一步,并贴代码,用的是VB2005

 

函数

Public Function CacuInternSiteCount(ByVal Line As Integer, ByVal SitePerLine As Integer, ByVal InternPerLine As Integer) As Integer

Line表示行数

SitePerLine表示每一排的座位数

InternPerLine表示每一排的实习生数

返回方案总数

先是变量定义:

 

都是临时变量,后面再详细介绍。

 

预备步:

 

在后面的第二步计算中,要将每一个方案一拆二。而一拆二的依据就是利用组合原理,从2S中选出S的组合来,这个利用的组合函数,以及获得组合的方法在详细可以参见“遍历组合的实现——VB2005”和“遍历排列的实现——VB2005”这两篇文章。

 

第一步:先得到每一行P=2S的方案数以及每一个方案。这里得到的每一个方案也是调用组合函数。得到一个组合再判断这个组合是否符合题目的要求,用的是IsOk这个函数。

第二步:将每一个方案一拆二,分为S和S。这表示这两个方案使能够相邻的,将相邻的可能压入一个表,用来备用。

 

 

这里调用了IsOk函数,这是判断实习生的位置是否符合题目的要求,代码如下:

还有一个注意的地方,很多人以为VB2005是没有移位运算的,可其实是有的。这里的S1就是2S的一个组合,然后拆分为S2和S3的S的组合。

 

第三步:初始化第一行的每一种可能,每一种的可能都计数为1。从第二行开始,通过查表,得知上一行的每一个方案在这一行的相邻方案是什么,然后计数。随着行数的增多,每种方案在没一行出现的可能数都会发生变化。

 

最后一步统计:统计每一种情况出现的可能数,求总和,并返回。

 

 

最后将上述所有代码一起贴下来。也欢迎大家交流。

俄罗斯程序员节:9 月 13 日背后的技术文化 俄罗斯程序员节的设立,象征着对程序员这一职业的尊重,也彰显了数字世界的核心价值。通过庆祝256这一数字,程序员们在向技术的基础致敬的同时,也表达了对程序员文化的认同与自豪。这个节日让我们更加清晰地看到了程序员这一职业群体的创造性、团队精神与行业责任,同时也让更多人了解到了技术背后的文化价值。随着技术不断进步,程序员节不仅仅是一个行业节日,它已逐渐成为全球技术圈的一个重要文化符号。无论是俄罗斯还是其他国家的程序员,这一天都将成为他们表达对自己职业的热爱与对未来技术创新的期许的时刻。 阅读详情

相关推荐

Ubuntu22.04下RTX2080显卡驱动、CUDA、cuDNN保姆级避坑安装指南(实测有效)

本文提供Ubuntu22.04下RTX2080显卡驱动、CUDA和cuDNN的详细安装指南,涵盖前期准备、驱动安装、CUDA版本选择、cuDNN配置及常见问题解决。通过实测有效的步骤和优化建议,帮助用户快速搭建稳定的深度学习环境,避免常见陷阱。

weixin_42540248的博客 285

[UE C++] TMap

UE TMap容器

qq_52179126的博客 3048

AI 编程新范式:一文彻底搞懂 LLM、Agent、MCP、Skill 是怎么协作的

本文用通俗易懂的方式解析了AI编程新架构的核心概念。通过"三国演义"类比,文章将复杂的技术架构拆解为:Agent(军师/大脑)负责思考和决策,Skill(招式/手脚)执行具体操作,MCP(令箭/协议)作为通信标准,MCP Server(将军/身体)承载多个Skill。这套分工架构使AI从单纯聊天进化成能完成实际编程任务的全能助手,实现了关注点分离——Agent专注智能提升,Skill专注功能实现,MCP确保稳定连接。这正是Cursor、Claude等新一代AI开发工具采用的核心架构,标志

猫老板的豆 3080

【UE4】TMap的使用

TMap在 TArray 之后,虚幻引擎 4(UE4)中最常用的容器是 TMap。此容器是一个关联式容器,意味着每个键均拥有一个关联值,可通过键高效地查找值对象。存在两种映射类型:TMap 和 TMultiMap。TMap 的键为唯一。键已存在时插入一个新的键值对将导致现有的对被替代。TMultiMap 的键不为唯一,因此新添加的对不会替代现有的对。TMapTMap 主要由两个类型定义 - 键类型...

宁静致远 3万+

保姆级教程:在ROS Noetic下,手把手教你将自定义A*全局规划器打包成插件(附避坑指南)

本文提供了一份详细的ROS Noetic下自定义A*全局规划器插件开发指南,涵盖从环境准备、算法优化到插件配置与调试的全流程。通过实战案例和避坑技巧,帮助开发者高效实现机器人导航中的全局路径规划,特别适合需要优化ROS导航栈的开发者。

weixin_29168675的博客 285

分位数映射数据后处理-Quantile Mapping后处理 (R语言)

统计后处理器基本上是统计模型,将观察到的关注变量与从气象或水文模型的直接模型输出(DMO)导出的适当预测变量相关联。统计后处理的重要性早已在气象预报中得到认可。早期的工作包括完善的预测(perfect prognosis),模型输出统计(MOS)和模拟方法(analog method)等模型。 近年来,已经提出了许多其他后处理方法,包括秩直方图校准(rank histogram calibrati...

水滴石穿,绳锯木断 1万+

UE4-容器-数据结构-TMap

UE4-容器-数据结构-TArray Time: 2020年10月13日16:31:22 author: Yblackd UE4-容器-数据结构-TArray1. 创建TMap2. 增2.1 方法2.2 **特点注意**:2.3 方法案例3. 查-遍历3.1(C++ ranged-for)3.2 迭代器4. 查-获取元素数量5. 查-Key获取Value6. 查-判断key是否存在7. 查-Value获取Key8. 查-获取所有KV9. 删-移除10. 删-移除并返回其值11. 删-清空12. 参考.

weixin_44070137的博客 1779

BEVFormer详解

BEVFormer 是将Transformer架构的自注意机制与BEV视图中3D检测结合起来的一种纯视觉目标检测方案。对于纯视觉的BEV检测方案,其中的重中之重就是如何将2D的图像特征映射到3D空间的BEV栅格,既然是映射关系,那就有前行投影和反向查询两种机制。前向投影是基于深度估计的方法,参考基于深度估计的BEV视图转换方法,典型代表为LSS。反向查询方法思路为先将BEV栅格在Z方向上进行lift提升,然后再映射到图像特征图上进行特征查询。BEVFormer 就是基于这种机制进行2D图像特征到3D空间的B

MAX的专栏 4745

2009年9月刊《程序员》算法题之我见——思索之一

本系列文章目录2009年9月刊《程序员》算法题之我见——思索之一2009年9月刊《程序员》算法题之我见——思索之二2009年9月刊《程序员》算法题之我见——思索之三  2009年9月刊《程序员》算法题之我见——思索之一笔者业余时间喜欢研究一些算法,也经常的阅读各类计算机杂志并对其中的算法题研究考量一番翻阅了2009年9月刊《程序员》,

万仓一黍 1351

Qi标准无线充学习笔记

负载调制主要通过接收端向后散射调制计数使得功率信号改变,两者通过线圈的电压和电流的变化量来传输信号。下面是要求稳定电流的变化量不得超出8ma,判断稳定的时间至少要在150us稳定电压的变化量不得超出110mv,判断稳定的时间至少要在150us高低电流变化量至少需要15mA,判断稳定的时间至少要在100us,主线圈电流采样的时间是在半桥转换的1/4周期刻测量的高低电压变化量至少需要200mV,判断稳定的时间至少要在100us。

m0_73991989的博客 1010

直流母线电压采集与缓冲调理电路

本文介绍了一种直流母线电压采集与缓冲调理电路的设计与应用。该电路通过电阻分压网络将高压直流母线电压降至适合ADC采样的范围,并采用运放电压跟随器实现高输入阻抗和低输出阻抗的缓冲功能,有效提高采样精度和抗干扰能力。文章重点阐述了低输出阻抗对驱动负载、抗干扰和电压稳定的重要性,并列举了该电路在工业电源监测、电动汽车BMS、通信电源和储能系统等领域的典型应用场景。

qq_37999850的博客 319

2009年9月刊《程序员》算法题之我见——思索之二

 接上文“2009年9月刊《程序员》算法题之我见——思索之一” 问题六:M=15,N=2,P=S,求方案总数 按照上一篇文章的分析,相邻两排实习生安排如果符合要求的就一定能压缩到一排里。也就是说,不能压缩到一排里的就一定是不符合要求的安排。 每排S人,则两排一共是S+S人。因此,现计算出M=15,N=1,P=2S,的方案总数。对每一个安排来说,一拆二,S人作为第一排

万仓一黍 1049

2025电赛嵌入式:K210教程-如何刷固件 如何烧录代码 全网唯一

本文介绍了K210开发板的固件刷写和开发环境搭建方法。主要内容包括:1)从Sipeed官网下载合适的MaixPy固件,根据需求选择完整版或精简版;2)使用k-flash等工具烧录固件,注意区分亚博和Sipeed开发板的固件版本;3)介绍了擦除闪存的两种模式(部分擦除和完全擦除)及其应用场景;4)搭建CanMV开发环境,通过MaixPy IDE连接开发板并进行程序调试。文章还提供了常见问题的解决方法,如串口驱动安装、固件兼容性检查等,为K210开发提供了完整的入门指南。

FJN110的博客 547

鸿蒙 OS 的到来,能为我们改变什么?| 程序员大本营9月刊

作者 | 屠敏出品 | 优快云(ID:优快云news)「鸿蒙初辟原无姓,打破顽空需悟空」,在国产自研操作系统短缺的窘境之下,天惊一声雷,「鸿蒙」踏风来。回首上个月的技...

区块链大本营 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

9月13日:程序员节,一起来过节吧!

摘要:每年的第256天(2的8次幂)是程序员节,一个俄罗斯的官方节日。程序员在这一天会身着白色服装来庆祝,因为在24位红绿蓝(RGB)颜色空间里,最大值为十六进制0xFFFFFF,表示为白色。祝大家程序员节快乐! 亲爱的开发者们(Dear Hackers/Engineers/Programmers),距离上一次程序员节又是一年了, 这一年中我们辛苦的编写着代码,我们为无数死气沉沉

菜鸟专栏 839

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

程序员节

程序员节也叫“溢出节”

he2shao的博客 824

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php9跟09的区别,2009年9月语言排行榜:PHP超越C++

2009年9月语言排行榜:PHP超越C++TIOBE世界编程语言排行榜展现了编程语言的流行趋势。每个月,都有最新的数据被更新。这份排行榜的数据取样来源于互联网上富有经验的程序员、商 业应用、著名的搜索引擎(诸如谷歌、 MSN 、雅虎)的关键字排名、 Alexa 上的排名等。请注意这个排行榜只是反映了某个编程语言的热门程度 , 这并不代表它是一个最好的编程语言或是可以写出某些令人称赞的好程序。 TI...

weixin_39589557的博客 213

程序员的1024起源

2002年,俄罗斯程序员Valentin Balt收集签名,向俄罗斯联邦政府请愿将9月13日设定为程序员节。 2009年9月11日,俄罗斯总统梅德韦杰夫在节日安排方案上签了名,“程序员节”从此成为了俄罗斯的一个正式节日。除了俄罗斯之外,其他国家的一些程序员社区也会庆祝这个节日。为什么会选9月13日呢?因为它是每年的第256天(闰年就是9月12日)。256这个数字对程序员来说有着特别的意义,1个字...

nbl_yc的博客 652

程序员节的由来

程序员节的设立和庆祝,不仅是对程序员辛勤工作的认可,也是对他们在技术领域贡献的肯定。无论是在国际上还是在中国,程序员节都为程序员们提供了一个特殊的节日,让他们在这一天能够放松心情,享受属于自己的节日。

haoran2022的博客 655

做10年Windows程序员与做10年Linux程序员的区别

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大。我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC...

小白的逆袭 583

程序员节快乐:扔掉代码一起庆祝

今年的9月12日是属于程序员的节日——程序员节(俄语:День программиста),是一个俄罗斯官方节日,每年的第256天,也就是平年的9月13日和闰年的9月12日。今年为闰年,所以今年的程序员节为9月12日。 设立程序员节要归功于一名在并行技术网页设计公司工作的职工——Valentin Balt。2002年,他收集签名向俄罗斯联邦政府请愿,请求将这一天定为程序员节。2009年7月24日

artwebs 2046

做10年Windows程序员与做10年Linux程序员的区别_linux 开发

linux下的内核API, 全部算下来也才335,但是这些内核的API只有编写驱动的时候才能用到, 开发应用程序基本用不到内核的API,开发应用程序的API基本都是C的API,而 Linux所有的C的API个数是279个, 也就是说你只需要掌握不到300个的API, 就可以顺利的在linux下面开发应用程序了,相比学习windows下面的那一堆API来说, 你是不是可以省下很多时间来学习其他知识呢?上面这些API是windows下面对文件操作的API, 总共是8个,看看CreateFile的参数吧,

2501_90433508的博客 670

10.24程序员节的来历(原创)

程序员节不仅是对程序员个人技术成就的认可,更成为了全球程序员社群交流合作的平台。从俄罗斯的官方认定到中国的技术社区自发提议,程序员节的确立和普及体现了程序员在全球信息技术行业中不可或缺的作用。随着节日活动的国际化,程序员节进一步加深了全球程序员之间的联系,促进了技术知识的共享和行业最佳实践的传播。

2301_76841790的博客 1611
上一篇: 遍历排列的实现——VB2005
下一篇: 计算机中的颜色——颜色概述
grenet
博客等级 码龄17年 28粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值