二模 (15)day1
第一题:
题目大意:
有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个。
解题过程:
1.这题是刘汝佳<<训练指南>>上的一道经典例题,考察了堆的运用.
如果把A,B序列都从小到大排序,那么有:
A1<=A2<=A3...<=An
B1<=B2<=B3...<=Bn
可以把这N2个和用N个递增队列表示出来:
A1+B1<=A1+B2<=A1+B3...<=A1+Bn
A2+B1<=A2+B2<=A2+B3...<=A2+Bn
...
An+B1<=An+B2<=An+B3...<=An+Bn
那么就可以用一个小根堆来维护了,一开始堆里的元素是A1+B1,A1+B2...A1+Bn
如果当前弹出的是Ax+By,那么把Ax+By+1 加入堆中。
初始得分100.
2.拓展:如果有N个队列,每个队列取一个数加起来(可以得到NN个和),求最小的N个和该如何做呢?
因为只要最小的N个,所以可以把队列两两合并。比如有3个队列A,B,C.可以在A,B中各拿一个数,得到最小的N个和,
形成一个新的队列,这样就变成上面2个队列的问题了。因此只要经过N-1次合并,最后的队列里的元素就是答案。
时间复杂度O(N2log2N)
第二题:
题目大意:
N个点,M条边,一开始人在S,每分钟后他都可能会到与当前城市直接相邻的城市.询问是否有某一个时刻这个人在所有城市都有可能出现。
解题过程:
1.首先自然想到如果图不是联通的,那么答案肯定是NO了,所以下面讨论的都是联通的情况。
2.正好jc的神模拟题里提到了二分图,就往二分图方面去想想,结果就发现如果这个图是二分图,那么答案也肯定是NO。因为任意时刻,人都是从二分图的一边走到另外一边。
3.二分图答案是NO,那么如果不是二分图,答案一定就是YES吗?画了下图,发现如果不是二分图,肯定是有奇环的,首先无论起点在哪里,肯定有一个时刻会走到环上,然后一定会有某个时刻环上的所有点都有可能。如果某个时刻环上的所有点都可能,那么之后的所有时刻环上的所有点都有可能。所以就有点类似flood-fill了,把环看成罪犯的老巢,然后罪犯的势力只会慢慢往外扩大,最终占据所有城市。
4.存无向边的数组又忘记开2倍大了,就悲剧了。。初始得分40分。另外数据有点猛,用递归的并查集判断联通会爆栈说。
第三题:
题目大意:
求从S到T的一条路,要求花费最小且线路总长度不超过C。 一条路线的花费为它经过的点中最大的权值。
(边权和不超过C的情况下最大点权最小)
解题过程:
1.典型的最大值最小问题,可以二分答案mid,删去权值大于mid的点,然后做最短路,看能否到达。就拿来练习堆优化的dijkstra了。 初始得分100.
二模 (15)day1的更多相关文章
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
- Maven学习系列二(1-5)
Maven学习系列二(1-5) 本文转自 QuantSeven 博客,讲解精炼易懂,适合入门,链接及截图如下 http://www.cnblogs.com/quanyongan/category/47 ...
- 二模 (15)day2
第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...
- 二模 (12) day1
第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...
- 二模 (7) day1
第一题: 题目大意: 给出数轴上N棵树的坐标和高度,如果两棵树之间的距离小于其中一颗树的高度,那么就有树会被挡住.因此要把一些树砍矮一点.求砍树的总高度最小值. N<=100000; 解题过程: ...
- 二模 (3) day1
第一题: 题目描述: 一个数列定义如下:f(1) = 1,f(2) = 1,f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给定 A,B 和 n 的值,要求计算 ...
- 二模 (13)day1
第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正 ...
随机推荐
- REST实战:SeverClient项目+RESTful理论
理解一个新的技术,无疑就是使用它了,下面我们就通过一个可执行的demo来展现REST的原理和使用. 一 Demo 1.1 服务器端 1 主程序MainServer.java负责启动一个REST服务组件 ...
- python核心编程学习记录之映射和集合类型
字典是python里唯一的映射类型
- js计时器方法 setInterval(),setTimeout()
window.setInterval() 周期性地调用一个函数(function)或者执行一段代码. var intervalID = window.setInterval(func, delay[, ...
- Tomcat 发布war包提示war包超出大小修改
error信息: java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$Size ...
- Robotlegs框架1.5简介
该框架的1.5版本位于https://github.com/robotlegs/robotlegs-framework/tree/version1,现在已经出了重新架构的2.0版本,所以我决定先研究已 ...
- 使用HttpClient发送数据 到WebApi
发送和JSON数据 /=============================webAPI接受POST的JOSN数据=============================/ POST api/& ...
- EF中使用linq进行关联查询
EF使用linq进行多表查询是完全可以的,最后ToList()调用的时候回产生一条分页的sql语句,所以并不是全部查询再分页的.所以不会影响查询的性能 public void TestLinq() { ...
- Python3基础 把一个列表中内容给另外一个列表,形成两个独立的列表
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- 十六、Swing高级组件
1.利用JTable类直接创建表格 (1)创建表格 构造方法:JTable(Object rowData,Object[] columnNames) (2)定制表格 编辑:isCellEditable ...
- URL的格式
URL RFC: http://www.ietf.org/rfc/rfc1738.txt URI RFC: http://www.ietf.org/rfc/rfc2396.txt 转自: http ...