记录一些简单的暴力破解法带来的思考,基于刘佳汝的书籍例题7.1~7.5
2016-03-08 19:56
459 查看
例题7-1:
输入正整数n,按从小到大的顺序输出所有形如abcde / fghij = n 的表达式,其中a~j恰好为0~9的一个全排列(可以有前导0),2 <= n <= 79。
思考:
设M / N = n
这道题在做的时候的一个细节没有走最优化的路线导致我的算法较为卡顿,原因是没有反向思考问题。我一直想的是遍历M,再根据M求的N的组成数字,再来便利N的所有可能取值,而最优化的方式却是:便利N(N的范围较小),再根据N和n求的这种情况下的M,再把(M,N)带入一个函数检查其是否用完了0~9.
如果直接求的某种个值麻烦的时候想一想有没有简单的方式来做。
例题7-2:
找出一个n个元素组成的序列S的乘积最大的连续子序列,如果全部是负数则输出0。(1 <= n <= 18, -10 <= S <= 10)
思考:
很简单的遍历,i为起点,j为终点,i从0到n-1,j从i到n-1.唯一要小心的是数值的范围可能超过int(int:2.1 * 10^9,long:9.2*10^18)。
例题7-3:
分数拆分
先简化问题,优化思路再开始编写。
例题7-4
素数环
记得cur的重要意义。
例题7-5
一步一步拆解问题
输入正整数n,按从小到大的顺序输出所有形如abcde / fghij = n 的表达式,其中a~j恰好为0~9的一个全排列(可以有前导0),2 <= n <= 79。
思考:
设M / N = n
这道题在做的时候的一个细节没有走最优化的路线导致我的算法较为卡顿,原因是没有反向思考问题。我一直想的是遍历M,再根据M求的N的组成数字,再来便利N的所有可能取值,而最优化的方式却是:便利N(N的范围较小),再根据N和n求的这种情况下的M,再把(M,N)带入一个函数检查其是否用完了0~9.
如果直接求的某种个值麻烦的时候想一想有没有简单的方式来做。
例题7-2:
找出一个n个元素组成的序列S的乘积最大的连续子序列,如果全部是负数则输出0。(1 <= n <= 18, -10 <= S <= 10)
思考:
很简单的遍历,i为起点,j为终点,i从0到n-1,j从i到n-1.唯一要小心的是数值的范围可能超过int(int:2.1 * 10^9,long:9.2*10^18)。
例题7-3:
分数拆分
先简化问题,优化思路再开始编写。
例题7-4
素数环
记得cur的重要意义。
例题7-5
一步一步拆解问题
相关文章推荐
- ZOJ 3331 Process the Tasks
- 试读《分布式服务框架原理与实践》
- sizeof 计算原则
- 1到m所有奇数的和
- 代理商变操盘手:在线旅游到底玩啥花样
- 做一个合格的程序猿之浅析Spring IoC源码(二)BeanFactory初始化
- 欢迎使用CSDN-markdown编辑器
- Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
- hdu 2058 The sum problem 枚举区间长度 + 等差公式
- win10 系统下获取系统版本号一直为6.2的问题
- USB驱动分析
- eclipse插件开发
- cp命令详解
- Codeforces Round #345 (Div. 2) C. Watchmen
- onEnterTransitionDidFinish()的用途
- 第1次上机实验/1
- linux USB 编程
- 尝试开始写博客
- codeforces 650D D. Image Preview (暴力+二分+dp)
- 【kAri OJ604】圣哲的树