第一题:

题目大意:

N个发射站排成一排,求每个发射站左右第一个比它高的发射站。 N<=1000000

解题过程:

1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正好派上用场。。。虽然本题2s的时限RMQ+二分应该也不会超时,但是容易写错。而单调栈不仅O(N)的复杂度,写起来也简单。。

2.具体做法是:从左往右边扫一遍,维护一个单调递减的栈.如果当前元素的高度大于等于栈顶,就不断弹出栈中元素直到栈顶元素小于当前元素.那么对于弹出的元素,它右边的第一个比它高的就是当前元素。对于当前元素,最后栈顶的元素就是它左边第一个比它大的数。

初始得分100.


第二题:

题目大意:多重背包+无线背包+可以切割的背包。

解题过程:

1.直接分3种物品 分3次写背包就可以了。为了防止出错,没有用滚动数组,结果发现滚习惯了,不滚反而写不来了...调了好一会儿。。

初始得分100.


第三题:

题目大意:

N个点,M条边,求从1到N的最短路,在同一个强联通分量里的点相互到达不需要花费(1<=n<=200000,1<=m<=1000000)

时限2s.

解题过程:

1.这题就是POJ一道题的加强版,学强联通分量的时候做过了.Tarjan缩点+最短路即可.但是此题数据比较恶心,Tarjan缩点爆系统栈了说。按出题人的本意这题还要卡spfa,必须要dijkstra+heap.但是还是用spfa 1s+搞过去了..

2.非递归没怎么写过,把Tarjan 改成非递归的 整了一个下午. 大致思路说明下:对于自己模拟的栈中元素,需要保存它的节点编号 && 它的下一个需要dfs的儿子 && 它的上一个dfs的儿子(low[u]=min(low[u],low[v])的时候要用到). 还有好多小细节.

本来感冒就头晕,调得更是头昏脑涨...果然还是太弱了。

初始得分70分.

总结:

1.首先对怎样规模的数据dfs容易爆栈有了大致的估计。

2.非递归不好写,还是应该写个递归的版本,毕竟被卡掉的只是少数点,有时间再来改...还有切记不要把原来的递归版本删了,要留起来对拍... (今天就是非递归死都调不出来,递归版本手贱又删掉了,又懒得重新写一遍...)

二模 (13)day1的更多相关文章

  1. 二模 (16) day1&day2

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

  2. 二模13day1解题报告

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

  3. 二模 (8) day2

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

  4. 二模 (12) day1

    第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...

  5. 二模 (3) day1

    第一题: 题目描述: 一个数列定义如下:f(1) = 1,f(2) = 1,f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给定 A,B 和 n 的值,要求计算 ...

  6. 二模 (15)day1

    第一题: 题目大意: 有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个. 解题过程: 1.这题是刘汝佳<<训练指南>>上的一道经 ...

  7. 二模 (13)day2

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

  8. 二模 (11) day1

    第一题: 题目大意:用邻接矩阵给出一棵树(边权非负)上N个节点相互之间的最短路距离,求这棵树所有边权的和. 解题过程: 1.暂时还没想出来,待AC. 第二题: 题目大意:给出一些单词,然后建立Trie ...

  9. 二模 (9)day1

    第一题: 题目大意: 给出一个n位01串,要么不动它,要么把它删掉一个字符,要么插入一个字符(0或1),要么把一个1变成0,.使得有1的位置号的总和是n+1的倍数,或者是0. 解题过程: 1.直接枚举 ...

随机推荐

  1. linux2.6内核compat_ioctl函数

    一.内核原型(linux2.6.28-7) long (*compat_ioctl)(struct tty_struct *tty, struct file * file,               ...

  2. select实现输入模糊匹配与选择双重功能

    下载jqueryUI插件 引入 <link rel="stylesheet" type="text/css" href="/js/jquery/ ...

  3. JavaSE复习_11 IO流复习

    △FileReader是使用默认码表读取文件, 如果需要使用指定码表读取, 那么可以使用InputStreamReader(字节流,编码表)    FileWriter是使用默认码表写出文件, 如果需 ...

  4. 【Todo】Zookeeper学习

    首先,Zookeeper是基于Paxos来进行分布式选举管理的,Paxos的内容可以参考我另一篇文章:http://www.cnblogs.com/charlesblc/p/6037004.html ...

  5. 【Linux日志】系统日志及分析

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 / ...

  6. Perl 语法 - 基础

    perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用. 常用知识点总结: perl语法类似于C语言(perl源于Unix), ...

  7. Selenium Grid 运行报错 Exception thrown in Navigator.Start first time ->Error forwarding the new session Empty pool of VM for setup Capabilities

    Selenium Grid 运行报错 : Exception thrown in Navigator.Start first time ->Error forwarding the new se ...

  8. controller 监控Unix性能信息

    linux系统需要有RPC(Remote Procedure Call Protocol),远程过程调用协议,通过安装rpc.rstatd程序,启动其服务,就可以给远程机器提供信息,即Lr可以获取到该 ...

  9. Event 讲解

    应用场景:某件事发生时,需要采取多步的动作,此时就用到了 使用方法:创建event方法一,使用命令 make:event  生成事件在app/Events目录下,命令make:listener 生成监 ...

  10. 《javascript高级程序设计》 第25章 新兴的API

    25.1 requestAnimationFrame() 25.1.1 早期动画循环 25.1.2 循环间隔的问题 25.1.3 mozRequestAnimation-Frame.webkitReq ...