二模13day1解题报告

T1.发射站(station)

N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到。现在求收到信号最强的发射站。

我用了时间复杂度比较高(nlogn)的算法。首先按h排序(从高到低),作为算法的一个“输入”序列(记为A)(标记原来位置)。

在保存这个序列的基础上,记录rank=1~n,然后按pos排序。排完记为B序列。这时会生成一个关于pos对应h的rank序列,对应B中的每个元素在A中的位置。

用next[i]保存A[i]在B中第一个比它大的pos对应的A中的序号,用pre[i]保存比它小的序号。

然后对A从尾到头解决,因为保证高的在前,所以对一个A[i],对应的pre[i]和next[i]在原序列中的位置就是收到信号的信号塔位置。处理完后更新pre[next[i]]=pre[i];next[pre[i]]=next[i].最后找到最大值即可。【参考了noip2016提高组初赛完善程序1的算法】

T2.物品选取(pack)

给出n个物品和m的体积,做一个多重背包。

甲类物品:每个物品有参数A,B,分配体积不定,价值随体积变化,A*V^2+B*V。

乙类物品:每个物品价值A体积B有C个。

丙类物品:每个物品价值A体积B无限个。

求最大价值。

显然,乙丙很水,下面直接说甲类。

把每个体积的甲分成不同的物品,01背包能过。

That’s all.

T3.正则表达式(regexp)

N个点m条有向带权边(可能有环),规定同一强连通分量内距离均为0,求1到n的最短路。

首先tarjan缩点(这算法还得练啊),然后SPFA,爆栈。

主要是tarjan爆栈了(不然呢???),所以肯定要改成非递归,手打栈(手动泪奔~~o(>_<)o ~~)。不管怎样还是过了,时间也没多少。

二模13day1解题报告的更多相关文章

  1. 二模14day1解题报告

    注:Index数☞由4,7组成的十进制数. T1.全排列(permutation) 求n个数的第k个排列中,有多少个Index位置上是Index数. 由于k的范围比较小,n的范围比较大(都是109), ...

  2. 二模12day2解题报告

    T1.笨笨玩糖果(sugar) 有n颗糖,两个人轮流取质数颗糖,先取不了的(0或1)为输,求先手能否必胜,能,输出最少几步肯定能赢:不能,输出-1. 一开始天真的写了一个dp,f[i]表示i颗糖最少取 ...

  3. 二模01day1解题报告

    T1.音量调节(changingsounds) 有n个物品的背包(有点不一样,每个物品必须取),给出初始价值,物品价值可正可负(就是两种选择嘛),求可能的最大价值,不可能(<0或>maxs ...

  4. 二模15day1解题报告

    T1.合并序列(minval) 给出长为 n的AB两个序列求两两相加中最小的n个. 据说有证明(在蓝书上,优先队列部分)先把A[1~n]+b[1]入队,然后每取一个a[x]+b[y]就把a[x]+b[ ...

  5. 二模14day2解题报告

    T1.砍树(cuttree) 给出n棵树,要锯下m米木材,现在有一个高度h,h以上所有木头都砍下来,求满足m米的最小h 很简单的二分答案判断可行性. T2.快速求和(quicksum) 给出数字串s, ...

  6. 二模12day1解题报告

    T1.笨笨与电影票(ticket) 有n个1和m个0,求每个数前1的个数都大于等于0的个数的排列数. 非常坑的一道题,推导过程很烦.首先求出所有排列数是 C(n+m,m),然后算不合法的个数. 假设存 ...

  7. 二模02day1解题报告

    T1.淘汰赛制 比赛时的淘汰赛制,给出每两个球队比赛的胜率,求出最终胜率最高的队伍. 这题的概率真的很难算啊感觉...一开始打的代码打下来就是用f[i][j]表示i场比赛后第j人还在场的概率.不难看出 ...

  8. 二模07day1解题报告

    T1.种树(tree) 有n棵树,各有高度,要求每棵树的高度都小于它到其他树的距离(可能种一起).求砍掉的总高度是多少. Ok,那么可以想到,只要满足每棵树和最近的树满足条件就可以保证和其他树满足了. ...

  9. 二模07day2解题报告

    T1.采药(medic) 有n个草药,要在m的时间内获得最大价值. 乍一看像是01背包,然而数据只能过50分. 考虑数据范围,t<=10,w<=10,所以只有121种草药.考虑多重背包的二 ...

随机推荐

  1. NOIP2016日记

    今天下午2:30~4:30考NOIP2016..我4:00前久出来了,没仔细检查.. 错了两道基础题..(T_T)  >_< 至少能过..就这样吧..努力复赛!!

  2. js中substr,substring,indexOf,lastIndexOf,split 的用法

    1.substr substr(start,length)表示从start位置开始,截取length长度的字符串. var src="images/off_1.png";alert ...

  3. [llvm] Call the LLVM Jit from c program

    stackoverflow: http://stackoverflow.com/questions/1838304/call-the-llvm-jit-from-c-program Another t ...

  4. floyd算法

    求两个顶点间的最短距离,直觉是这样的问题可以用尝试和枚举的办法来求解,这显然可行,但是我们可以换个方式来看待这个问题,比如, 可以这样描述,“在给定的点集(编号为1~k,k=图中所有的顶点数量)中,i ...

  5. JSBinding+Bridge.NET限制

    限制: 框架代码不可以访问逻辑代码.这是最基本的. 框架里的函数 f 带数组参数时,逻辑代码调用 f 的话,数组只能做为输入,也就是说,如果在框架函数 f 里修改了数组的内容,那么逻辑代码是无法取得新 ...

  6. weex环境搭建

    1. 安装weex-toolkit sudo npm install -g weex-toolkit 装完之后就可以使用weex命令了.输入weex命令可以看到: weex test.we --qr ...

  7. Nginx-解读内置非默认模块 ngx_http_stub_status_module

    1.Background ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的 ...

  8. js实现页面局部弹窗打印

    原文出自:http://www.haorooms.com/post/css3media 在网页中经常看到有打印功能,点击之后,只针对特定区域进行的打印.网上看了一下,大体上有2中实现方法,一种是用cs ...

  9. eclipse安装反编译工具

    身为一名程序员来说,日常最常做的就是编写代码和查看别人写好的源代码了,有时候打开别人写的class文件发现根本不是自己想要的,所以给大家介绍一种eclipse中反编译class文件的工具. 第一步:下 ...

  10. 轻量级Lua IDE ZeroBrane Studio 的使用技巧和汉化

    快捷键 : alt + shift +鼠标 ,可以块选中文本. F12 折叠/展开 所有 F5 调试运行 点击第二次 将跳转到第一个断点处 F10 单步执行 shift +F10 单步执行,不进入函数 ...