第一题:

题目描述:

在一个长方形框子里,最多有 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的更多相关文章

  1. 二模 (8) day2

    第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...

  2. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  3. 二模 (9) day2

    第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...

  4. 二模 (16) day1&day2

    第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000 解题过程: 1.递推式还 ...

  5. 二模 (15)day2

    第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...

  6. 二模 (13)day2

    第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...

  7. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  8. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  9. 二模 (12)day2

    第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...

  10. 二模 (11) day2

    第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...

随机推荐

  1. Android spinner控件

    spinner控件是Android中下拉控件,现在介绍它两种用法.第一种,从资源文件中获取下拉值:第二种,从代码中获取下拉值. 第一种,首先要在资源文件中把值写好: <?xml version= ...

  2. Could not initialize class sun.awt.X11GraphicsEnvironment

    报错:

  3. (一)S5PV210开发板常用易忘操作记录

    一.调试串口 2.SD卡槽 (三)启动方式选择 蜂鸣器下面的白色2针插座(图中红色线圈出来的那个)为选择USB/SD卡启动的开关.默认情况下为SD卡启动,如果需要USB启动则使用短路帽(若没有短路帽, ...

  4. 转载: C++ 转换构造函数 和 类型转换函数

    1.对于系统的预定义基本类型数据,C++提供了两种类型转换方式:隐式类型转换和显式类型转换. ,sum; double b=5.55; sum=a+b;//-------(1) std::cout&l ...

  5. java实现数据库连接池

    package com.kyo.connection; import java.sql.Connection; import java.sql.DatabaseMetaData; import jav ...

  6. date 笔记

    1 语法 # date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 1.1   ...

  7. 转!!!Mybatis实现数据的增删改查(CRUD)

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBat ...

  8. xmpp4-总览

    1注意点 创建的聊天室本地缓存,和服务器存储有时不同步,似乎聊过天就更稳定一点.

  9. ios 企业证书 ipa 重新签名发布

    提示:暂时不能用了,企业证书滥用 ios 企业证书 ipa 重新签名发布 1. 应用场景 当前有一个 未用企业证书签名的 ipa 文件,默认是不可以直接安装到设备上的:我们需要用企业版证书签名: 当前 ...

  10. js代码如何测试代码运行时间

    function add(){ //这里放要执行的代码 } //开始测试并输出 function test() { var start=new Date().getTime(); add(); var ...