[CF383]一个迟来的检讨

本文回顾了一次比赛经历,分析了个人在算法题上的表现,包括注意力分散、缺乏耐心等问题,并详细讨论了几道典型题目(如位运算计数、电话游戏最小轮数、舞会邀请最优解)的解题思路和自我反省。

这场比赛是亚洲区比赛回来之后打得比较正经的一次个人赛,同时也暴露出了我最近精力及其的不集中,做事情非常的没有条理。非常的没有耐心,需要冷静下来。

Problem B

There are some beautiful girls in Arpa’s land as mentioned before.

Once Arpa came up with an obvious problem:

Given an array and a number x, count the number of pairs of indices i, j (1 ≤ i < j ≤ n) such that , where is bitwise xor operation (see notes for explanation).
这一题,充分暴露了我做事十分不专心的特点,我一看,就想到了下面的公式:

ans=0nnum[i]num[xxori]

但是,这个排列组合公式什么时候可以用啊,是在两个要做笛卡尔积的集合没有交集的时候才能使用啊,如果x=0,那么这个公式很显然是错误的。

Problem C

Someday Arpa shouted Owf loudly from the top of the palace and a funny game started in Arpa’s land. The rules are as follows.

The game consists of rounds. Assume person x wants to start a round, he calls crushx and says: “Oww…wwf” (the letter w is repeated t times) and cuts off the phone immediately. If t > 1 then crushx calls crushcrushx and says: “Oww…wwf” (the letter w is repeated t - 1 times) and cuts off the phone immediately. The round continues until some person receives an “Owf” (t = 1). This person is called the Joon-Joon of the round. There can’t be two rounds at the same time.

Mehrdad has an evil plan to make the game more funny, he wants to find smallest t (t ≥ 1) such that for each person x, if x starts some round and y becomes the Joon-Joon of the round, then by starting from y, x would become the Joon-Joon of the round. Find such t for Mehrdad if it’s possible.

Some strange fact in Arpa’s land is that someone can be himself’s crush (i.e. crushi = i).
这道题,由体现出来我做事十分没有耐心,如果将每个人当作一个节点的话,那么每个节点的出度为1,如果存在一个节点没有入度的话,那么肯定题目无解,我们从每一个节点出发DFS这个连通分支,如果不可以返回这个节点,那么表明无解。如果得到一个奇数长度的环,则说明需要奇数长度,否则需要偶数长度的一半。

Problem D

Just to remind, girls in Arpa’s land are really nice.

Mehrdad wants to invite some Hoses to the palace for a dancing party. Each Hos has some weight wi and some beauty bi. Also each Hos may have some friends. Hoses are divided in some friendship groups. Two Hoses x and y are in the same friendship group if and only if there is a sequence of Hoses a1, a2, …, ak such that ai and ai + 1 are friends for each 1 ≤ i < k, and a1 = x and ak = y.
Arpa allowed to use the amphitheater of palace to Mehrdad for this party. Arpa’s amphitheater can hold at most w weight on it.
Mehrdad is so greedy that he wants to invite some Hoses such that sum of their weights is not greater than w and sum of their beauties is as large as possible. Along with that, from each friendship group he can either invite all Hoses, or no more than one. Otherwise, some Hoses will be hurt. Find for Mehrdad the maximum possible total beauty of Hoses he can invite so that no one gets hurt and the total weight doesn’t exceed w.
这道题更加的搞笑,首先我的并查集居然写错了,完全忘记了合并并查集就是合并并查集的根节点。然后做背包转移的时候实际上就是将某个并查集打包成一个物品转移进去。然而我想的太过复杂,代码写的乱七八糟,看着我很想笑。

检讨

我本来以为,亚洲区赛是一个开始,新生活的开始,我可以更加开心,更有自信。但是,我发现我的心态发生了很大的变化,变得完全没有从前那么快乐了。我还记得之前我经历过的一切的一切。我还记得暑假我每天往返于实验室,拼命的看论文时的场景。虽然每天都是那么累,但是又有什么可以记得的呢?我还记得我一个人回寝室的路上,一遍一遍听着的那首歌“永远不要盲目追星,长大后的你可能比他还行”。我想要享受生活中所有美好的部分,实现内心最底层的愿望。
但是,现在,一切都变了。亚洲赛回来之后,我再也没有从前的那么低调了。各种的盲目称赞麻痹了我的双眼,让我忘记了天的那边还有着更大的世界。我变得没有那么努力了,说话也不在像从前那么谦逊。变得无趣和无聊。做事情一点条理也没有,写的代码我自己都不忍心再看。看看那些大牛们,我觉得,我为我所做的所有的事情而感到害臊。
不管怎么样,现在还来得及。回归当初的美好,做一个快乐的孩子。

**高校专业实习管理平台设计与实现** 本设计项目旨在构建一个服务于高等院校专业实习环节的综合性管理平台。该系统采用当前主流的Web开发架构,基于Python编程语言,结合Django后端框架与Vue.js前端框架进行开发,实现了前后端逻辑的分离。数据存储层选用广泛应用的MySQL关系型数据库,确保了系统的稳定性和数据处理的效率。 平台设计了多角色协同工作的管理模型,具体包括系统管理员、院系负责人、指导教师、实习单位对接人以及参与实习的学生。各角色依据权限访问不同的功能模块,共同构成完整的实习管理流程。核心功能模块涵盖:基础信息管理(如院系、专业、人员信息)、实习过程管理(包括实习公告发布、实习内容规划、实习申请与安排)、双向反馈机制(单位评价与学生反馈)、实习支持与保障、以及贯穿始终的成绩评定与综合成绩管理。 在技术实现层面,后端服务依托Django框架的高效与安全性构建业务逻辑;前端界面则利用Vue.js的组件化特性与LayUI的样式库,致力于提供清晰、友好的用户交互体验。数据库设计充分考虑了实习管理业务的实体关系与数据一致性要求,并保留了未来功能扩展的灵活性。 整个系统遵循规范的软件开发流程,从需求分析、系统设计、编码实现到测试验证,均进行了多轮迭代与优化,力求在功能完备性、系统性能及用户使用体验方面达到较高标准。 **核心术语**:实习管理平台;Django框架;MySQL数据库;Vue.js前端;Python语言。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
在电磁散射与雷达技术的研究中,涉及粗糙表面电磁特性模拟的核心概念包括统计参数化建模方法、不同电场矢量方向的极化模式、特定方向的能量反射现象、理想化波前模型以及具有随机起伏特征的界面。以下是对这些要点的系统阐述: 统计参数化建模是一种基于表面统计特征描述其不规则性的电磁散射计算方法,尤其适用于均方根高度较小的粗糙界面在微波至毫米波频段的散射特性分析。 水平极化与垂直极化分别指电场矢量平行于地面和垂直于地面的振动状态。在雷达探测中,采用不同的极化模式有助于提升目标辨识度并抑制环境干扰。 当电磁波与物体相互作用时,部分能量沿接近入射方向返回,这种现象称为反向散射。其在雷达系统的探测灵敏度与目标特征分析中具有关键作用。 平面波是在均匀介质中传播的理想波型,其电场与磁场分布保持一致的相位关系,常作为理论简化模型用于电磁问题的解析与数值计算。 粗糙界面指具有随机起伏特征的表面,其不规则程度可通过均方根高度进行量化。这种结构特性会改变电磁波的传播路径与能量分布,进而影响信号的接收与处理。 相关压缩文件可能包含了实现上述建模方法的程序代码,通常采用数值计算语言编写,用于模拟不同极化状态下粗糙表面对平面波的反向散射响应。通过此类仿真,能够预测各类场景下的散射参数,为雷达系统设计与遥感数据解译提供理论依据。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
本资源包提供了一套针对五层办公建筑的完整毕业设计资料,总建筑面积为5324平方米,采用钢框架作为主要承重体系。该资料集整合了结构计算文档、建筑方案图及结构施工图等核心内容,可作为土木工程专业高年级学生深入理解实际工程应用的典型教学案例。以下为各组成部分的要点阐述: 1. **钢框架承重体系**:作为一种广泛应用于多层及高层建筑的结构形式,钢框架具备优异的承载能力、较轻的自重以及较高的施工效率。设计过程中需重点考量钢材的强度特性、耐久性能、防火处理及防锈措施。 2. **毕业设计任务**:此环节是土木工程专业学生在完成理论课程后进行的综合性实践训练,旨在通过模拟真实工程问题,提升其综合运用专业知识解决复杂技术难题的能力。 3. **结构计算文件**:作为设计的技术核心,该文件系统完成了各类荷载的统计与组合、整体稳定性验算、主要构件截面设计以及节点连接计算等内容,以确保结构在安全性与经济性方面达到平衡。 4. **计算机辅助设计源图**:采用CAD软件绘制的图纸源文件完整保留了建筑与结构设计的全部几何与标注信息,便于后续调整、深化及专项分析。 5. **建筑方案设计**:涵盖各层平面功能布局、立面造型设计与剖面构造详图,需综合考虑使用需求、空间组织、自然采光与通风效率以及节能设计原则。 6. **结构系统设计**:包括基础选型与布置、柱梁体系设计、楼盖系统选型,并需进行抗震设防与风荷载作用下的专项分析,以确保整体结构具有足够的刚度、强度与稳定性。 7. **工程建造设计流程**:涉及从地质勘察、施工组织设计、进度计划编制到质量与安全控制的全过程,是实现设计意图、完成实体建造的关键环节。 8. **高等教育应用**:本资料适用于高等院校相关专业的案例教学,能够帮助学生建立理论知识与工程实践之间的联系,强化其解决实际问题的综合技能。 9. **房地产开发关联**:此类设计方案在房地产项目中直接影响开发成本、产品定位与建设周期,是开发商、设计单位及施工方协同工作的重要技术基础。 通过系统研习本资料,学习者可全面掌握土木工程项目从方案构思、技术计算到施工图绘制的完整工作流程,对于深化专业认知、培养工程实践能力具有显著助益。同时,该案例亦展示了如何运用现代设计工具统筹考虑结构安全、建筑功能与经济可行性等多重目标。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
<think>我们正在处理一个关于STM32平台上CF卡操作的请求。用户提供了两个引用,但这两个引用分别关于SD卡的SPI操作和STM32的CRC32计算,与CF卡并不直接相关。然而,我们可以借鉴SPI协议的操作,因为CF卡也可以通过SPI模式进行访问。注意:CF卡(CompactFlash)有两种接口模式:PCCardmemorymode和PCCard I/O mode。但通常,在嵌入式系统中,我们使用CF卡的TrueIDE模式(类似于ATA接口)或SPI模式。由于用户提到了SPI(在引用[1]中是关于SD卡的SPI操作),我们假设用户希望使用SPI模式操作CF卡。但是,需要澄清的是:CF卡通常使用并行接口(TrueIDE模式),但一些CF卡也支持SPI模式。因此,我们这里提供SPI模式下的CF卡操作示例。由于CF卡在SPI模式下的命令和操作与SD卡类似,我们可以参考SD卡的SPI操作流程,但具体命令和初始化序列有所不同。以下步骤基于SPI模式下的CF卡操作(参考CF+andCompactFlashSpecification Revision4.1):1.初始化SPI接口(设置速率、模式等)。2.发送命令初始化CF卡(类似于SD卡的初始化过程,但命令不同)。3.读取和写入数据块。注意:CF卡在SPI模式下使用与SD卡类似的命令结构(CMD0,CMD1等),但具体的命令值可能不同。这里我们参考CF卡规范。由于CF卡在SPI模式下并不像SD卡那样普遍,我们可能需要查找具体资料。但我们可以给出一个大致框架。示例代码框架:步骤1:SPI初始化(略,与引用[1]中的SD卡SPI初始化类似)步骤2:CF卡初始化(发送命令序列)步骤3:读写操作由于具体命令序列较长,这里只给出一个简化的示例,重点在于读写单个字节的函数(类似于引用[1]中的函数)和初始化步骤。注意:以下代码是基于假设的,实际使用时需要根据CF卡规范调整命令和流程。首先,我们实现一个SPI读写单字节的函数(与引用[1]类似):</think>### STM32 CF卡读写操作示例代码 以下是基于STM32的CF卡(CompactFlash)SPI模式读写操作的核心代码实现,结合了CF卡规范与STM32外设特性: #### 1. SPI接口初始化(参考SPI协议时序[^1]) ```c void CF_SPI_Init(void) { // 启用SPI和GPIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1, ENABLE); // 配置SPI引脚(以SPI1为例) GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; // SCK/MISO/MOSI GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStruct); // 片选引脚配置 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4; // CS GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_SetBits(GPIOA, GPIO_Pin_4); // 初始置高(取消选中) // SPI参数配置 SPI_InitTypeDef SPI_InitStruct; SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStruct.SPI_Mode = SPI_Mode_Master; SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b; SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low; SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge; SPI_InitStruct.SPI_NSS = SPI_NSS_Soft; SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; // 初始低速 SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB; SPI_Init(SPI1, &SPI_InitStruct); SPI_Cmd(SPI1, ENABLE); } ``` #### 2. CF卡初始化流程(关键步骤) ```c #define CF_CMD_RESET 0x01 #define CF_CMD_INIT 0x02 #define CF_CMD_READ_SECTOR 0x03 #define CF_CMD_WRITE_SECTOR 0x04 uint8_t CF_Init(void) { CF_CS_LOW(); // 选中CF卡 // 步骤1:发送复位命令(参考SD卡初始化流程[^1]) CF_SendCommand(CF_CMD_RESET, 0x00, 0x00); Delay_ms(10); // 等待复位完成 // 步骤2:初始化命令 uint8_t response = CF_SendCommand(CF_CMD_INIT, 0x00, 0x01); CF_CS_HIGH(); // 取消选中 // 验证响应码(0x00表示成功) return (response == 0x00) ? 1 : 0; } ``` #### 3. 单字节SPI读写函数(核心时序实现) ```c // 基于SPI时序的字节读写[^1] uint8_t CF_SPI_ReadWriteByte(uint8_t txData) { while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); // 等待发送缓冲区空 SPI_I2S_SendData(SPI1, txData); while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET); // 等待接收完成 return SPI_I2S_ReceiveData(SPI1); } ``` #### 4. 扇区读写操作(512字节/扇区) ```c // 读取指定扇区 uint8_t CF_ReadSector(uint32_t sector, uint8_t *buffer) { CF_CS_LOW(); // 发送读命令 CF_SendCommand(CF_CMD_READ_SECTOR, (sector >> 16) & 0xFF, sector & 0xFFFF); // 等待数据就绪(CF卡会先返回0xFE) while(CF_SPI_ReadWriteByte(0xFF) != 0xFE); // 读取512字节数据 for(int i=0; i<512; i++) { buffer[i] = CF_SPI_ReadWriteByte(0xFF); } // 读取CRC校验(可选参考CRC32实现[^2]) uint16_t crc = (CF_SPI_ReadWriteByte(0xFF) << 8); crc |= CF_SPI_ReadWriteByte(0xFF); CF_CS_HIGH(); return 1; } // 写入指定扇区 uint8_t CF_WriteSector(uint32_t sector, uint8_t *data) { CF_CS_LOW(); // 发送写命令 CF_SendCommand(CF_CMD_WRITE_SECTOR, (sector >> 16) & 0xFF, sector & 0xFFFF); // 发送数据起始标记 CF_SPI_ReadWriteByte(0xFE); // 写入512字节数据 for(int i=0; i<512; i++) { CF_SPI_ReadWriteByte(data[i]); } // 发送CRC占位符(实际应用可集成CRC32[^2]) CF_SPI_ReadWriteByte(0xFF); CF_SPI_ReadWriteByte(0xFF); // 等待写入完成 while(CF_SPI_ReadWriteByte(0xFF) == 0); CF_CS_HIGH(); return 1; } ``` #### 5. 命令发送封装函数 ```c uint8_t CF_SendCommand(uint8_t cmd, uint8_t param_h, uint16_t param_l) { // 发送命令头 CF_SPI_ReadWriteByte(cmd | 0x40); // 命令格式:01xxxxxx // 发送参数 CF_SPI_ReadWriteByte(param_h); CF_SPI_ReadWriteByte((param_l >> 8) & 0xFF); CF_SPI_ReadWriteByte(param_l & 0xFF); // CRC占位(实际应用建议使用STM32 CRC模块[^2]) CF_SPI_ReadWriteByte(0x95); // 等待响应(超时机制需实现) uint8_t response; int timeout = 1000; while(((response = CF_SPI_ReadWriteByte(0xFF)) == 0xFF) && timeout--); return response; } ``` ### 关键注意事项: 1. **时序要求**:CF卡SPI模式需严格遵循时序规范,初始化阶段建议使用≤400kHz时钟[^1] 2. **CRC校验**:实际应用应集成STM32硬件CRC模块(参考CRC32实现[^2]) 3. **错误处理**:需添加超时检测和状态响应验证 4. **电压匹配**:确认CF卡工作电压(3.3V或5V)与STM32开发板匹配 5. **物理接口**:CF卡插座需正确连接SPI信号线(注意MISO/MOSI方向) > ⚠️ **重要提示**:以上代码为简化示例,实际部署需根据具体CF卡型号调整命令集和时序参数,建议参考CF卡数据手册中的SPI模式章节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值