第一题:

题目描述:

在一个长方形框子里,最多有 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. mysql 逻辑架构

    1.mysql是基于网络的客户端/服务器架构,服务器上层是连接线程,解析器,查询缓存,下层是存储引擎. 2.每个客户端连接,服务器都有一个对应的线程,这个线程只为这个连接查询服务,高版本的mysql支 ...

  2. Python学习笔记3—字符串

    原始字符串 使用\转义或者r,这种方法在网站设置网站目录结构的时候非常管用. >>> dos="c:\news" >>> print dos c ...

  3. Mybatis 级联查询 (一对多 )

    后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试 ...

  4. Winform_播放声音文件

    1.调用非托管的dll using System.Runtime.InteropServices;  //DllImport命名空间的引用 class test  //提示音 { [DllImport ...

  5. hiho_1052_基因工程

    题目大意 给出一个字符串(长度<=1000),字符串中的字符均为ATCG中的某一个.给出一个数字K,通过更改字符串中的某些字符,可以使得字符串的前K个字符形成的子串和最后K个字符形成的子串相同, ...

  6. listToString

    http://www.oschina.net/code/snippet_109648_2229

  7. matlab灰度变彩色+白平衡算法实现

    % matlab彩色图像分离通道并合并成处理后的彩色图像(彩色变灰度再变彩色) % 白平衡算法(灰度世界法)消除RGB受光照影响 clear all; close all; %读入原始图像 srcIm ...

  8. Android LayoutParams

    LayoutParams继承于Android.View.ViewGroup.LayoutParams,就是布局. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置.高 ...

  9. Leetcode--Add two number

    地址:https://leetcode.com/problems/add-two-numbers/ 代码: class Solution { public: ListNode* addTwoNumbe ...

  10. Qt之QPauseAnimation

    简述 QPauseAnimation类为QSequentialAnimationGroup提供了一个暂停. 如果你想为QSequentialAnimationGroup动画之间添加延迟,可以插入一个Q ...