2017.8.5
来源:互联网 发布:淘宝户外用品店推荐 编辑:程序博客网 时间:2024/06/05 15:03
总结1·题目大意是让你用3的某某次方去组成数,求第k小的数,数据范围很大,暴力只有五十分,这时候就需要去找规律了,我们发现1 3 4 9 10 12 13···中,一后面0个数,3后面1一个数,9后面三个数,算上他们自己就是1 2 4···,所以可以用递归去求,每一次都去分解,然后返回值,也可以用一个非常厉害的方法,就是把k转成二进制,然后从后往前有1就加3的n-i次方 假设是1 0 1 1 1 81 27 9 3 1,是1才加,原理同上。 2·题目大意是要排队,有一些人想要排到另一些人的前面,所以求在不违反k对排队愿望的情况下排队得方案数,暴力三十,正解状压dp,但未对。。。 3·给了你基本程序,然后考虑分治,就是把这个区间用递归(l,r)去分解,求个mid,然后b【i】,c【i】数组表示从mid+1到i的最小/大值,接着我们做三个前缀和,一个是b的,一个是c的,一个是b*c的,为后面算答案铺垫,求得之后我们画个图 ------\------ \是mid 在这一段区间中,我们考虑先算左边的,(左边直接记录答案)然后如果左边这个时候的max,min的在右边能找到可替换的就会出现如下情况 ------\--min1---max1 ------\--max1--min1 ------\------max1-- ------\------min1-- ------\------------ max1,min1表示右边的比左边的min小或比左边的max大的数,然后一二种情况可以归类成一种,分三段去计算右边的 ------\-- max,min与左边不变 ------\--min1--- max与左边不变,min有前面算的前缀和。 ------\--min1---max1-- min,max都变了,也有前缀和,算b*c的
如果是max1在min1前面的话就倒过来。
其余情况都很好算了。
阅读全文
0 0
- 2017.8.5
- 2017.8.5
- 日常学习2017.8.5
- 日常学习2017.8.5
- 2017.8
- 2017.8.5 One-Dimensional 思考记录
- 2017.8.5暑假集训第六天
- (2017.8.5周赛2) A
- 2017.8.5离线赛总结&题解BY WAonce
- (10)2017.8.9-面向对象(5)
- 2017.8.14--2017.8.25
- (5)2017.8.4-java基础语法和控制流程(下)
- [随心译]2017.8.5-你家毛茸茸的宠物的荤粮正在加速气候变化
- [随心译]2017.8.5-这个假期,在迪士尼步入虚拟的星战场景
- python3.5 caffe(2017.8) cuda8.0 cudnn5.1 VS2015(windows)
- 2017.8.1
- 2017.8.2
- 2017.8.7
- Codeforces Bear and Big Brother
- ios-NSCache简单介绍
- Mac下检测ios应用内是否有私有API
- 1048. 数字加密(20)
- 2017百度之星
- 2017.8.5
- 看 mips 跑
- hdu6108(数学思维+因子)
- HDU
- 算法之堆排序
- struts2方法拦截器
- JS递推方法
- 关于MySQL的commit非规律性失败案例的深入分析
- Leetcode-3: Longest Substring Without Repeating Characters