二模 (2) day2
第一题:
题目描述:
在一个长方形框子里,最多有 N(0≤N≤6)个相异的点。在其中任何~个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这 N 个点上放置油滴,才能使放置完毕后所有油滴占据的总
面积最大呢?(不同的油滴不会相互融合)
注:圆的面积公式 V=pi*r*r,其中 r 为圆的半径
解题过程:
1.考虑到最多只有6个点,那么直接dfs实现枚举即可。
2.注意题目要求的是剩余面积。。。还有如果一个点还没放油滴,那么其他油滴是可以碰到它并继续扩大的。(黑书上是气球和钉子,气球当然不能碰到钉子)初始得分100;
第二题:
题目大意:给出N个数,N<=1000,要求擦掉一些数,使得在正确位置上的数尽可能多。 即数x排在第x位的 这种情况尽可能多。
解题过程:
1.一开始感觉是贪心,但是贪心策略感觉有些风险,看数据范围,八成是动归了。然后看到给出的是一列数,那么估计就是LIS的变形了。
2.F[i]表示 只考虑前i个数 且 第i个数在正确位置上时的答案。那么F[i]肯定是F[j] + 1 (j<i)转移过来。 既然要把 A[i] 放在 A[j] 后面,且 它们两个都是在正确位置上,那么
A[j]<A[i],而且 i和j之间需要有一些“无用”的数来让i的位置正确。 所以还要是 i-j>=A[i]-A[j];
3.初始得分80,因为没有把F[i]初始化成-inf,而是默认为0.
ps:2个月前的文章了,现在看看其实这题可以优化到nlogn,i-j>=A[i]-A[j] -> A[j]-j>=A[i]-i -> 把A[x]-=x,就变成求最长不升子序列了。
第三题:
题目大意:插入N个数,M次动态求第k大。 N,M<=200000;(第i次查询,查询的是第i小的值)
解题过程:
1.记得紫书上介绍了一种用两个堆来实现的方法。但是感觉写起来超级麻烦,而且程序会很长,就换成线段树了。
2.在常州学到一种线段树的空间优化方法。有些节点是永远用不到的,所以一开始不必直接建一棵满二叉树,而是用到一个节点再给它分配空间。。但是具体要多少空间不是很好估计,最坏最坏的情况差不多就是每次插入都独立,也就是每次插入都加入了log Max_Range 个点。所以最坏情况 空间复杂度比 O( N*log Max_Range)要好。一开始傻逼了,只开了4*N的空间,结果RE了。只有40分。。
3.复习了一下treap,对着以前的程序自己写了一遍,感觉没有以前那么可怕了。。
4.讲一下紫书上的方法吧,其实用priority_queue 代替自己写堆,代码不超过40行。。。 (还是不大喜欢用STL啊。)
一个最大堆存放的目前已经经过k步ADD的到的序列中前i-1大的值,而最小堆存放的是从第i大道第k大的值。
其实我们只要在最小堆中找到一个最小的值,就一定是第i大的值,因为最大堆中的任何一个数都要比最小堆中的元素都要小
现在知道这两个堆的作用了吧。。。。。。。。。。。
当然我们找到第i大的值后要将其并到最大堆中,而且在想最小堆中加入数据时要比较其值是否比最大堆中所有的值都要大,如果不是大于的话,
则要将其与最大堆中最大的元素交换。否则得到的最大堆不会比最小堆中任何的元素小了。
二模 (2) day2的更多相关文章
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- 二模 (9) day2
第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 二模 (15)day2
第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...
- 二模 (13)day2
第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...
- 又是一个二模02,不过day2
话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...
- 二模Day2题解
小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...
- 二模 (12)day2
第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...
- 二模 (11) day2
第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...
随机推荐
- JdbcTemplate操作数据库
1.JdbcTemplate操作数据库 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中.同时,为了支 ...
- mac中openfire启动失败的解决方式
不知为何,几次出现这个问题了 解决方法:使用终端命令 1:sudo chmod -R 777 /usr/local/openfire/bin 2:cd /usr/local/openfire/bin ...
- Lua 栈中元素的位置
Lua与C.C#等的交互是通过栈来实现的,每次插入元素都是放在栈顶(top),至于元素的index,可以使用正数和负数两种方式, 如取栈底开始至第index个元素 -index = gettop - ...
- 多重比对multiple alignment
之前只接触过双序列比对,现在需要开始用多序列比对了. 基本概念:多序列比对 - 百科 常用的 multiple alignment 软件: Muscle ClustalW T-coffee 软件之间的 ...
- Nginx + Tomcat 配置
Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...
- GoF--单例设计模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点
- selenium+python笔记1
#!/usr/bin/env python # -*- coding: utf-8 -*- """@desc: 讲讲web项目中常用的方法属性 webdriver 提供了 ...
- robotframework笔记21
创建输出 当执行测试,创建多个输出文件和所有的 都以某种方式相关测试结果. 本节讨论什么 输出创建.如何配置创建,以及如何 调整他们的内容. 不同的输出文件 本节解释了不同可以创建和输出文件 如何配置 ...
- Ubuntu 14.04 分区方案
我磁盘大概还有70多G的空间吧,我全部拿来使用的.真实的双系统哦. 一般来讲,linux系统分区最少要包括/和/swap两个.这样据说会影响性能,没有这样安装过,就无从考证啦.其实就是重装系统的时候, ...
- 8个实用的页面布局和用户界面jQuery插件
网页设计师和网页开发人员在做项目的时候可能会有一些页面的布局或者对于UI有一些特定的要求.可能一些需求不能单独使用CSS就能实现的.于是很多时候开发人员都会消耗大量的时间和精力去写一些JS来协助实现. ...