关于读题的一些技巧
来源:互联网 发布:为什么python国内不火 编辑:程序博客网 时间:2024/05/19 16:27
在算法竞赛中,很多时候,题目的数据范围是非常有力的解题线索(其实不光光是数据范围,只要是一些有特点的限制或宽松都可以为你提供线索)。
举几个例子:
ZOJ 3777Problem Arrangement
数学题,求期望,难点在计数,经验丰富基本能够想到计数dp。如果经验不够丰富该怎么办呢?
其实本题的数据范围给了我们非常多的线索。
首先1<=N<=12,这个数据范围很多时候都代表了位压缩。毕竟阶乘承受不了,立方又太水。指数级别的复杂度就差不多,指数级别的算法基本就是位压缩了。
其次1<=M<=500,这个数据范围不是很大,无论是对空间还是时间都很友好。为dp状态定义所需要的空间以及对dp状态转移需要的时间都可以承受。
类似的还有很多,比如2017-GDCPC-B 1<=N<=16 ,状压DP。
FZU 2105 Digits Count
RMQ,区间位运算,询问区间和,难点在维护。特点是维护的值的范围是[0,16)。从这个特点下手,16是2^4,a[i]<16,可以考虑把一个数拆成4个二进制位,分别维护。
ZOJ 3779 Chessboard and Flowers
组合数学,需要用到一些简单的排列组合知识,但有些基本量不好计算,在数据范围很小的情况下,采用了暴力枚举的方法来计算。
FZU 2141 Sub-Bipartite Graph
给你一个简单图,由n个点,m条边。求它的一个二分子图,使得这个二分子图的边至少是m/2。
特点是,只需输出二分子图的两个点集,边至少是m/2。
值得思考的地方是:
1、为什么不要求求出具体的图,而只要求求出两个点集呢?
2、为什么边至少是m/2,而不是m/3或者其他值,也不是要求边数最多呢?
这两个地方就是突破口。
- 关于读题的一些技巧
- 关于Firefox的一些技巧
- 关于css的一些技巧
- 关于CheckBox的一些技巧
- 关于ATL的一些技巧
- 关于JS的一些技巧
- 关于session的一些技巧
- 关于Popup的一些技巧
- 关于软件测试的一些技巧
- 关于位操作的一些技巧小结
- 关于j2se的一些知识和技巧
- 关于WORD的一些常用使用技巧
- 关于DataList的一些使用技巧
- 关于Solaris的一些小技巧
- 关于数据绑定的一些小技巧
- 关于string.xml的一些技巧
- 关于j2se的一些知识和技巧
- 关于Solaris的一些小技巧 .
- 分布式架构学习之:026--Dubbo服务只注册
- 【Java】多文件压缩下载(调用浏览器下载)
- 【小练习05】HTML+CSS--淘宝商铺小页面
- 论文阅读:3D exemplar-based random walks for tooth segmentation from cone-beam computed tomography images
- 设计模式之模板方法
- 关于读题的一些技巧
- CentOs 6.5安装telnet和xinetd一句话介绍
- Problem C: 让动物们叫起来吧!
- mysql数据库数据类型
- 程序员必须知道的10大基础实用算法
- HashMap、HashTable和ConcurrentHashMap的区别
- 关于order by 在子查询中能否使用
- 04-python学习笔记:函数-参数传递
- Problem D: 来开个书店吧