[小结]HDU ACM Steps

本文总结了一系列编程练习题,包括基础输入输出、简单模拟、贪心排序、数学问题、递归、高精度计算、简单递推及动态规划等,适合初学者进行实践训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

花了点时间做完了前11章, 小小的总结一下. 注意那个前几章的题每个人都有差异.

 

1.1 基础的输入输出练习

1089 1090 1091 1092 1093 1094 1095 1096

 

1.2 简单题 很多简单模拟下就可以

1008 1064 2719 2393 1170 3361 1219 3079

 

1.3 涉及到基础的贪心和排序

1052 经典的田忌赛马 两排马排序过后 每次贪心 若最弱的马的实力不等于齐王 那一定有最弱的对最弱的 否则就在田忌最好的马不敌齐王时用最弱的马去碰 没了

1234 1084 2673 2109 1051 1718 1040

 

2.1 简单的数学 一些经典问题用线性筛法可以轻松解决

1286 计算与n互素的数的个数 可以直接用容斥原理 也可以利用欧拉公式做 因为欧拉公式是积性函数 所以筛素数时可以预处理出来 因为线性筛法每次筛出某个数最小的素因子

1717 经典问题 小数化分数 小学奥数貌似讲过 用极限好像也可以推?

1108 2138 1713 2136 1215 1271

 

2.2 还是数学题 有一些考察递归的 像汉诺塔

1568 算Fibonacci的前四位 考虑只求首位数那么显然是[f(n) / (10 ^ (x - 1))] x是f(n)的位数 对这个式子取对数 可以算出答案后反求回去 注意Fib通项最后有个常数1消不掉 其实对很大的n简单忽略它就好

2674 这题搞笑的 其实算N!除了for一遍没更好的算法

1443 1997 1222 1249 1023 1018

 

2.3 高精度 Catalan数 想当年不会java 敲了多少高精度啊

1002 1063 1250 1130 1133 1131 1134 2067

 

3.1 简单的递推 没什么好说的

2044 2018 2050 2501 2563 2045 1297 2604

 

3.2 简单的DP 数塔啊掉馅饼啊都有

1003 最大子段和 经典啊

1159 最长公共子序列 经典啊

1069 先某种排序后再DP

1087 1058 2084 1176 2571

 

3.3 DP 好像是各种背包问题 网上的背包问题9讲是很不错的资料

1114 1171 1059 3033 2191 2546 1203 3466

 

(未完待续)

转载于:https://www.cnblogs.com/zcwwzdjn/archive/2012/04/21/2460981.html

CH341A编程器是一款广泛应用的通用编程设备,尤其在电子工程和嵌入式系统开发领域中,它被用来烧录各种类型的微控制器、存储器和其他IC芯片。这款编程器的最新版本为1.3,它的一个显著特点是增加了对25Q256等32M芯片的支持。 25Q256是一种串行EEPROM(电可擦可编程只读存储器)芯片,通常用于存储程序代码、配置数据或其他非易失性信息。32M在这里指的是存储容量,即该芯片可以存储32兆位(Mbit)的数据,换算成字节数就是4MB。这种大容量的存储器在许多嵌入式系统中都有应用,例如汽车电子、工业控制、消费电子设备等。 CH341A编程器的1.3版更新,意味着它可以与更多的芯片型号兼容,特别是针对32M容量的芯片进行了优化,提高了编程效率和稳定性。26系列芯片通常指的是Microchip公司的25系列SPI(串行外围接口)EEPROM产品线,这些芯片广泛应用于各种需要小体积、低功耗和非易失性存储的应用场景。 全功能版的CH341A编程器不仅支持25Q256,还支持其他大容量芯片,这意味着它具有广泛的兼容性,能够满足不同项目的需求。这包括但不限于微控制器、EPROM、EEPROM、闪存、逻辑门电路等多种类型芯片的编程。 使用CH341A编程器进行编程操作时,首先需要将设备通过USB连接到计算机,然后安装相应的驱动程序和编程软件。在本例中,压缩包中的"CH341A_1.30"很可能是编程软件的安装程序。安装后,用户可以通过软件界面选择需要编程的芯片类型,加载待烧录的固件或数据,然后执行编程操作。编程过程中需要注意的是,确保正确设置芯片的电压、时钟频率等参数,以防止损坏芯片。 CH341A编程器1.3版是面向电子爱好者和专业工程师的一款实用工具,其强大的兼容性和易用性使其在众多编程器中脱颖而出。对于需要处理25Q256等32M芯片的项目,或者26系列芯片的编程工作,CH341A编程器是理想的选择。通过持续的软件更新和升级,它保持了与现代电子技术同步,确保用户能方便地对各种芯片进行编程和调试。
内存分区情况的分析是嵌入式系统开发中的一个重要环节,特别是在资源有限的MCU(微控制器)环境中。标题提到的工具是一款专为分析Linux环境下的`gcc-map`文件设计的工具,这类文件在编译过程结束后生成,包含了程序在目标设备内存中的布局信息。这个工具可以帮助开发者理解程序在RAM、ROM以及FLASH等存储区域的占用情况,从而进行优化。 `gcc-map`文件通常包含以下关键信息: 1. **符号表**:列出所有定义的全局和静态变量、函数以及其他符号,包括它们的地址和大小。 2. **节区分配**:显示每个代码和数据节区在内存中的位置,比如.text(代码)、.data(已初始化数据)、.bss(未初始化数据)等。 3. **内存汇总**:总览所有节区的大小,有助于评估程序的整体内存需求。 4. **重定位信息**:显示了代码和数据如何在目标地址空间中定位。 该分析工具可能提供以下功能: 1. **可视化展示**:将内存分配以图形化方式呈现,便于直观理解。 2. **详细报告**:生成详细的分析报告,列出每个符号的大小和位置。 3. **比较功能**:对比不同编译版本或配置的`map`文件,查看内存使用的变化。 4. **统计分析**:计算各种内存区域的使用率,帮助识别潜在的优化点。 5. **自定义过滤**:允许用户根据需要筛选和关注特定的符号或节区。 虽然在MCU环境中,Keil IDE自带的工具可能更方便,因为它们通常针对特定的MCU型号进行了优化,提供更加细致的硬件相关分析。然而,对于通用的Linux系统或跨平台项目,这款基于`gcc-map`的分析工具提供了更广泛的适用性。 在实际使用过程中,开发者可以利用这款工具来: - **优化内存使用**:通过分析哪些函数或数据占用过多的内存,进行代码重构或调整链接器脚本以减小体积。 - **排查内存泄漏**:结合其他工具,比如动态内存检测工具,查找可能导致内存泄漏的部分。 - **性能调优**:了解代码执行时的内存分布,有助于提高运行效率。 - **满足资源限制**:在嵌入式系统中,确保程序能在有限的内存空间内运行。 总结来说,`gcc-amap`这样的工具对于深入理解程序的内存布局和资源消耗至关重要,它能帮助开发者做出更明智的决策,优化代码以适应不同的硬件环境。在处理`map`文件时,开发者不仅能获取到程序的内存占用情况,还能进一步挖掘出可能的优化空间,从而提升系统的整体性能和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值