USACO 2.2 分析
来源:互联网 发布:nginx配置ssl模块 编辑:程序博客网 时间:2024/04/30 12:01
题目一:Preface Numbering
题目大意:求1——N之间的十进制数用罗马数字表示时给个字母要用几次(IVXLCDM)
算法:枚举
基本思想是枚举每一个数字分别转换成罗马形式统计再统计,但这种方法很多东西重复了,更简单的方法是统计各个数字在各位上的出现情况,然后做一张表。因为不同数字在不同位的情况很少只有9*Length种,具体实现的细节在代码中有解释
题目二:Subset Sums
题目大意:把1——N分成两组,每组的和要相等,这样的分法有多少种
算法:Dynamic Programming--背包
容易想到和背包有很多类似的地方,所以可以借鉴背包的思想,s[i]表示当前无论以哪个数字结尾的和为i的排列的种数,难点在于不重复。
但是也容易发现,只要把最后的N固定住就可以了;或者是最终的答案分为两类,以N结尾的刚好一半,以下是前一种解法
题目三:Runround Numbers
题目大意:给定一个数,找到最小大于此数的符合规则的数。
算法:枚举
依次增大判断的数,先去判断数字有否重复,再去判断是否符合规则,由于次数给定,所以能够一次性确定下一个判断的数位
题目四:Party Lamps
题目大意:开始时N盏灯都是亮着的,有四种操作可以转变灯的亮暗情况,给定N,C(操作的总次数),以及最后某些灯的亮暗情况,求出所有符合的最终的灯的情况
算法:DFS
注意到一个操作两次等于不操作,所以四种操作最终产生2^4 = 16种情况,至于操作次数,只要有用的不大于实际的,并且相差2的倍数就行,最后把得到的字符串排序
优化:还有一个很大的优化就是重复性,每6个一个重复,发现了这个,尽管大胆干吧。
- USACO 2.2 分析
- USACO 1.4 clocks 分析
- USACO 2.1 分析
- USACO 2.3 分析
- USACO 3.1 分析
- USACO 3.2 分析
- USACO 4.1分析
- USACO 4.2 分析
- USACO 4.3 分析
- USACO 4.4 分析
- USACO 2.2
- USACO 1.1 broken necklace 分析
- USACO 2.2 Subset Sums
- USACO 2.2 Party Lamps
- [usaco]2.2 Subset Sums
- USACO 2.2 Preface Numbering
- USACO--2.2Runaround Numbers
- USACO 2.2 Subset Numbers
- 医院
- 杂题一些(更新中)
- 个人觉得搞笑的笑话,更新中....
- 遇到一个诡异的regedit.exe程序问题
- 训练Opencv分类器
- USACO 2.2 分析
- MIPS的VEIC(转)
- 学生成绩储存及查询系统二
- Android IPC 通讯机制源码分析 一
- POJ 1118 Lining Up && POJ 2606 Rabbit hunt 找出一条直线上的点的最大个数
- Android IPC 通讯机制源码分析 二
- 刚到来
- 路由Session实验
- Windows 7下的DEP解析