51nod 80分算法题
1537:见前几篇。
1627:题意:给定n,m的网格(10^5),初始状态为(1,1),你每次可以瞬移到右下方(不可以同行同列逗留)任何一个方格里,求移动到n,m的方案数。
一句话题解:首先很容易想到n^2的DP,不过实际上没必要,我们枚举走了几步,然后插板法看n和m分别分解为i个数的方案数,乘起来就好,也就是求这个式子(默认n小于m)
$ \sum\limits_{i = 1}^n {\left( \begin{array}{l}n - 1\\i - 1\end{array} \right)} \left( \begin{array}{l}m - 1\\i - 1\end{array} \right) $
1678:题意:给定一个序列(10^5),给定两个操作:单点修改和查询。查询时给定一个i,求出所有与i互质的下标对应的值的总和。
题解:正难则反,我们可以考虑求出不互质的总和,然后取补集,把每个数的值统计到自己的因子上,修改的时候改就可以了,查询的时候容斥一下,考虑到最多只有6 个不同的质因子,2^6完全可以接受。
1711:题意:给定序列(10^5),求出所有区间平均数中第k大的平均数。
题解:二分答案,然后统计有多少个区间满足,统计方法是:我们知道一个区间的平均数可以表示为 $ \frac{{sum[i] - sum[j]}}{{i - j}} $
我们要统计多少个i,j(j<i)满足 $ \frac{{sum[i] - sum[j]}}{{i - j}} \ge mid $
变形一下 $ sum[i] - mid * i \ge sum[j] - mid * j $
也就是每个位置都有一个值sum[i]-i*mid,把这个东西离散化之后我们实际上要求的就是逆序对个数,这个可以树状数组。
总复杂度O(nlognlogn)
1836:题意:m天n个东西,每天等概率选一个东西,求m天后个数期望。
题解:不知道说什么了。。简单dp
1766:传送门
1616:题意:给定n个数,他们属于一个集合,集合的性质为:若X,Y属于集合,那么gcd(X,Y)也属于这个集合。求集合最小个数。值域范围1e6
题解:对于每一个数我们求出对应的fi,fi定义为有多少个该数的倍数存在于集合当中。那么对于一个数,如果它的倍数中没有fi与自己的fi相等,说明这个数一定存在于集合中。统计出来即可。复杂度O(nln n)。
1476:题意:给定一个括号序列,其中有“?“”作为通配符,但是重定位会付出相应的代价,求最小代价使得序列合法。
题解:首先n^2dp很好想。但是可以更优。先强行把所有通配符定位成右括弧,然后左括弧为+1,右括弧为-1,算前缀和记为S,当前缀和为负数时,我们在前面的通配符中找一个代价最小的变为左括弧,同时S+=2。找最小可以用优先队列来实现。复杂度O(nlogn)。
1586:题意:有3个数组,a,b,c,a给定,b由a计算,c由b计算,计算规则为:某个下标的值为所有下标为其因数的数相加。有修改操作和查询操作,修改随机。范围1e5。
题解:既然是数据随机那么完全就可以乱搞了。。不赘述了
1463:题意:给定两个长度为n的数列A 、B,一个有m个元素的集合K,询问Q次,每次询问[l,r],输出区间内满足|Bi-Bj|∈K 的最大Ai+Aj
51nod 80分算法题的更多相关文章
- 51nod 40分算法题
1737:见前2篇随笔. 1677:题意:给定一个n节点树,一个整数k,n个节点任意选k个出来,对于每一种选择方案,ans累加上使这k个点联通的最小边数,输出ans%1e9+7. 一句话题解:考虑每一 ...
- 51nod图论题解(4级,5级算法题)
51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...
- 根据考试成绩输出对应的礼物,90分以上爸爸给买电脑,80分以上爸爸给买手机, 60分以上爸爸请吃一顿大餐,60分以下爸爸给买学习资料。 要求:该题使用多重if完成
package com.Summer_0417.cn; import java.util.Scanner; /** * @author Summer * 根据考试成绩输出对应的礼物, * 90分以上爸 ...
- 51nod 1105 二分好题
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1105 1105 第K大的数 基准时间限制:1 秒 空间限制:131072 ...
- 解决一道leetcode算法题的曲折过程及引发的思考
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
- 经典算法题每日演练——第十七题 Dijkstra算法
原文:经典算法题每日演练--第十七题 Dijkstra算法 或许在生活中,经常会碰到针对某一个问题,在众多的限制条件下,如何去寻找一个最优解?可能大家想到了很多诸如“线性规划”,“动态规划” 这些经典 ...
- 经典算法题每日演练——第十六题 Kruskal算法
原文:经典算法题每日演练--第十六题 Kruskal算法 这篇我们看看第二种生成树的Kruskal算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的. 一:思想 若存在M={0, ...
- 经典算法题每日演练——第十四题 Prim算法
原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...
- 算法题C#
几个大公司(IBM.MicroSoft and so on)面试经典数据结构与算法题C#解答 1.链表反转 我想到了两种比较简单的方法 第一种是需要开一个新的链表,将原链表的元素从后到前的插入到新链表 ...
随机推荐
- 【AngularJS】Yeoman安装
看不到PPT的请自行解决DNS污染问题.
- 通用礼品卡接口文档(KFC、必胜客、GAP等)
通用礼品卡接口文档,集于各商家(KFC.必胜客.GAP等)实体卡和会员卡的API虚拟卡,可用于线上/下消费.移动支付. 1.API 1.1商品列表 接口地址:http://v.juhe.cn/gift ...
- Oracle中Hint深入理解(原创)
http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明 ...
- ORA-02050故障诊断一例
http://czmmiao.iteye.com/blog/1474678昨天客户反映说在下午某时间段有几个事务失败了,让我查下当时数据库系统的负载是否正常,看了下CPU的历史负载,很正常,于是看了下 ...
- Flex版的2048游戏
近期2048游戏好像挺火.在公交,吃饭,甚至在路上走路都有人拿着手机在玩,之前我看同事玩,认为非常幼稚,移来移去太无聊了吧 到后面自己也下了.发现确实挺无聊的,也就是在无聊的时候打发无聊的时间,后来就 ...
- win10 1709正式版iso镜像下载|windows10 1709秋季创意者更新官方下载地址
win10 1709正式版iso镜像下载|windows10 1709秋季创意者更新官方下载地址 发布时间:2017-10-18 14:27发布者:系统城-xtcjh浏览数:74458 win10 1 ...
- 看完这篇还不会自定义 View ,我跪搓衣板
自定义 View 在实际使用的过程中,我们经常会接到这样一些需求,比如环形计步器,柱状图表,圆形头像等等,这时我们通常的思路是去Google 一下,看看 github 上是否有我们需要的这些控件,但是 ...
- Spring MVC学习纲要
感慨一下 之前用过Spring MVC, MyBatis,但是很久不用之后发现很多知识点都荒废了,毕竟工作就是重复,重复再重复.没有啥新东西.所以还是找个时间把忘了的东西捡起来.万一搞了个大bug,然 ...
- vsftpd 虚拟用户限定在虚拟用户目录
1.安装vsftpd yum -y install pam pam-devel db4 db4-tcl vsftpd 2.更名默认配置文件,以便恢复 cp /etc/vsftpd/vsftpd.con ...
- 一个用消息队列 的人,不知道为啥用 MQ,这就有点尴尬
消息队列 为什么写这篇文章? 博主有两位朋友分别是小A和小B: 小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑.再不然就是和运营聊聊天,写几个SQL, ...