02 2018 档案
摘要:- 题目大意 给你一个有向图,问你定义一个环的平均值为这个环上所有边的平均值,问你最小的环的平均值是多少。 - 解题思路 先利用spfa来判断负环,然后用二分去判断若当前的二分值是mid,让所有的边都减去这个值,如果此时图中出现负环,则说明有环的平均值比这个更小。 - 代码
阅读全文
摘要:- 题目大意 一个人,他只会沿着如下条件的道路(A,B)走:存在一条从B出发回家的路径,比所有从A出发回家的路径都要短。我们的任务是要找出一共有有多少条不同的回家路径。 - 解题思路 先用dijkstra预处理出终点到每个点的最短路,然后将满足行走条件的A、B(除行走条件外,还要满足一个前提,即A、
阅读全文
摘要:- 题目大意 如题所示获得一个物品有两种方式: 1. 直接购买该物品,第i件物品花费的钱为ci 2. 用两件其他物品合成所需的物品,一共有m种合成方式。 问获得1号物品的最少花费。 - 解题思路 把每种合成方式当成路径(注意是有向图把每种方式弄成两条边)枚举物品,以第i个物品为起点做spfa,做n次
阅读全文
摘要:- 题目大意 个人要穿越到未来,但是之后还要回去,并且回去的时间要在他穿越之前。 - 解题思路 我们可以把在虫洞中的时间看做是负边权,然后利用bellman-ford算法来判断有没有负环即可。 - 代码
阅读全文
摘要:- 题目大意 给你一个图,求一条起点(入度为0)到终点(出度为0)的路。满足全部点的val之和最大。 - 解题思路 先用数组记录入度为0和出度为0的点,然后利用记忆化搜索来解决。 - 代码
阅读全文
摘要:- 题目大意 就如题目所说给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 - 解题思路 简单的最短路径问题,直接用dijkstra,注意重边的情况就行了。 - 代码
阅读全文
摘要:- 题目大意 有N个物品,每个物品都有自己的价格,但同时某些物品也可以由其他的(可能不止一个)替代品,这些替代品的价格比较“优惠”,问怎么样选取可以让你的花费最少来购买到物品1。 - 解题思路 我们就可以把N个物品看作是N个点,从其他点到他的关系视做边,又因为最后总是要找到物品1,所以可以看作是从起
阅读全文
摘要:- 题目大意 中文题,就是寻找最短的从商店到赛场的路线(题目中题意很清楚)。 - 解题思路 最短路径的入门题,用dijkstral方法即可。 - 代码
阅读全文
摘要:- 题目大意 有一个V个结点M条边的带边权无向平面图,有一个人在一个区域,要拆一些墙使得他可以到达任意一个区域,问最小花费。 - 解题思路 先开始想不通,看了别人突然恍然大悟,根据欧拉公式我们可以知道对于一个有k个连通分量的平面图的区域数r=E−V+k+1。那么那么对偶图生成树的边数为r−1=E−V
阅读全文
摘要:- 题目大意 给你一个r * c的格子,每个格子有一个 ‘ \ ’ 或者 ‘/’ 的墙,以及打掉墙的费用,问使得所有块联通的最小费用。(自己可以配合图来看好理解一点) - 解题思路 我们可以将其转化成联通块的问题,就是把每个格子看成两部分,左侧和右侧。以一行来看,假设两个格子A,B。那么B格子的右侧
阅读全文
摘要:- 题目大意 给出N个点,M条边,求出一棵包含N个点的树,且树的最大权值-最小权值达到最小。 - 解题思路 我们可以先把边排序,枚举最小的,然后利用kruskal加边,当图第一次连通的时候当前的边就是尽可能小的最大边,更新答案即可。 - 代码
阅读全文
摘要:- 题目大意 初始有N个集合,分别为 1 ,2 ,3 .....n。一共有三种操件:1、 p q 合并元素p和q的集合2 、p q 把p元素移到q集合中3 、p 输出p元素集合的个数及全部元素的和。 - 解题思路 并查集操作。1、3步比较容易实现,只要建立一个sum[],cnt[],记录每个结点相应
阅读全文
摘要:- 题目大意 有一系列的事件,它每Period秒钟就会产生编号为qNum的事件,你的任务是模拟出前k个事件,如果多个事件同时发生,先处理qNum小的事件 - 解题思路 很多相同的数值在同一时刻内,数值小的先输出,那么就是求若干个中最小的,那么就可以用优先队列进行维护。 - 代码
阅读全文
摘要:- 题目大意 某地发洪水,导致某些城市被淹而消失,现在想把剩下的零散的城市通过修路连接起来,已知现在有部分城市是连通的。可选择修的路有m条,城市总共有n个,给出了m条路的起点终点和修路花费,问最少可花多少钱能保证所有的城市连通。 - 解题思路 可以用kruskal。把边权排序然后并查集添加边即可。
阅读全文
摘要:- 题目大意 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。因此求出最少的成本为多少? - 解题思路 最小生成树的问题,用kruskal算法,kruskal
阅读全文
摘要:- 题目大意 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? - 解题思路 运用并查集的知识可以很容易做出。初始化时每
阅读全文
摘要:- 题目大意 有若干个由两种元素组成的简单化合物,现在把它们装进车里,如果车上有恰好有k种简单化合物并且恰好有k种元素的话,那么就会引发爆炸,所以车上的化合物必须避免满足这个条件。 - 解题思路 如果元素表示点,那么化合物就表示边,要爆炸的条件就是形成环,即为k个点k条边,那么就肯定存在环。直接用并
阅读全文
摘要:- 题目大意 有n个精灵在一维坐标轴上,并且每个精灵都有一个权值,每个精灵从一个点到达一个点要花费:S3*W(s代表距离),问所有的精灵要聚在一起,最小花费是多少。 - 解题思路 设最终要求的点的位置是x,则花费为:∑fabs(x[i]-x)^3*w[i]。又因为次函数为凸函数(求二次导就知道了),
阅读全文
摘要:- 题目大意 农夫约翰搭了一间有n间牛舍的小屋。牛舍排在一条线上第i号牛舍在xi的位置。但是他的m头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其他牛尽可能远的牛舍。 - 解题思路 很明显是一个最大值最小化的问题,因此我们可以假设C(d)为满足所有牛之间的
阅读全文
摘要:- 题目大意 给你n个牛的自身价值,让你找出连续的且数量大于等于F的一段区间,使这段区间内的牛的平均价值最大。 - 解题思路 这道题可以用二分法也可以结合前缀数组来求和来做,我就是用前缀数组求和和二分答案法来做的。 - 代码
阅读全文
摘要:- 题目大意 某个公司只有一个电梯, 现在有n 个人从1楼, 他们有各自想要到达的楼层, 然后电梯每上一楼需要4 秒, 每在一个楼层开门需要10 秒, 然后然爬楼梯的话需要20一楼。问, 如何用最短的时间让所有人都到达各自想要到的楼层。 - 解题思路 因为人可以爬楼梯, 所以可以在某个楼层下楼之后走
阅读全文
摘要:- 题目大意 有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少。相同的四个点,不同顺序构成的正方形视为同一正方形。 - 解题思路 先枚举两个相邻的点,通过数学公式得到另外2个点,使得这四个点能够成正方形。然后检查散点集中是否存在计算出来的那两个点,若存在,说明有一个正方形。但由于在计
阅读全文
摘要:- 题目大意 给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。 - 解题思路 利用归并排序来求逆序数(特别注意数组的大小,太大的话再开个数组分开装)。 - 代码
阅读全文
摘要:- 题目大意 有m本书,k个人来抄,每本书有一个书本页数;求使得k个人抄完的最大页数最小,并且每个人都至少要抄一本,然后输出抄书的方案 。 - 解题思路 这是个最大值中的最小值问题,先用二分+贪心算出一个最大页数的最小值(在二分的过程中,我们对于当前考虑的值 x 划分人数的贪心过程中,我们就有fla
阅读全文
摘要:- 题目大意 给出一串数字,问能是它为顺序排列的最小交换数字方式。 - 解答思路 利用归并排序来求逆序数(注意数组的大小就行了)。 - 代码
阅读全文
摘要:- 题目大意 有n条绳子,分成k段相等的,问能使得最长为多长。 - 解题思路 采用二分法一直逼近求极限状态(注意精度!!!)。 - 代码
阅读全文
摘要:- 题目大意 求在n棵树上摘不超过m颗豆子的方案,结果对p取模。 - 解题思路 利用插板法,再套用Lucas定理的模板解决即可。 - 代码
阅读全文
摘要:- 题目大意 中文题,寻找从起点(0,0)走到终点(n,n)且不穿过对角线的最短路径数。 - 解题思路 利用卡特兰数,地图上的点满足num[i] += num[j] * num[i - j - 1],最后卡特兰数乘2就是答案了。 - 代码
阅读全文
摘要:- 题目大意 求n个数的排列,前m个中有k个在自己的位置上的方法数。 - 解题思路 前m个取k个就是C(m, k)个方案。然后就是类似错排的思想,设dp[i]为i个数在初始位置各不相同。其中的组合数用逆元算出。ans = dp[m - k] * C(n - m, 0) + dp[m - k + 1]
阅读全文
摘要:- 题目大意 本题大致意思是讲:给定一个广场,把它分为M行N列的正方形小框。现在给定有K个拉拉队员,每一个拉拉队员需要站在小框内进行表演。但是表演过程中有如下要求: (1)每一个小框只能站立一个拉拉队员; (2)广场的第一行,最后一行,第一列,最后一列都至少站有一个拉拉队员; (3)站在广场的四个角
阅读全文
摘要:- 题目大意 求n有顺序的划分为k个数的方案数。 - 解题思路 很显然是一个组合数,用隔板法, 再用费马小定理求逆元,再利用快速幂即可求出。 - 代码
阅读全文
摘要:- 题目大意 如题目中所说一样,求计算a1^a2^a3^a4......^an模m的值。 - 解题思路 利用欧拉降幂公式,和欧拉函数即可解决。 - 代码
阅读全文
摘要:- 题目大意 给出一个n,求从1~n中任意两个数互质的对数为多少,(a,b)和(b,a)算两对。 - 解题思路 构造一个欧拉函数的方法,然后用一个数组去存储下标,因为(a,b)和(b,a)算两对,所以每一个都加两倍,但(1,1)很特殊,所以最后减一就行了。 - 代码
阅读全文
摘要:- 题目大意 给出数字,求解(A1B1+A2B2+ ... +AHBH)mod M. - 解题思路 简单的快速幂问题,套模板就行了。 - 代码
阅读全文
摘要:- 题目大意 在一个区间中去寻找素数的个数。 - 解题思路 由于a,b的取值范围比较大,无法把这个区间内的所以素数全部筛选出来,但是b-a这个区间比较小,所以可以用区间素数筛选的办法解决这个题目。 - 代码
阅读全文
摘要:- 题目大意 给定的矩形,每次裁剪最大的正方形,直到最后剩下正方形,总共有多少个正方形。 - 解题思路 显然,每次裁剪后,原来的宽和(长-宽)变成了现在的长和宽,直到长等于宽。 - 代码
阅读全文
摘要:- 题目大意 将每个产地的水果种类和数量按照字典序输出。 - 解题思路 利用一个二维的map容器将它的产地,品种,数目记录即可。(注意第一维以产地为键,水果为值,第二维以水果类型为键,水果数量为值,就可以自动按照字典序排序了。)。 - 代码
阅读全文
摘要:- 题目大意 给出一段文章,然后将其中不重复的单词拿出来(全为小写并且由a-z的顺序)。 - 解题思路 我在网上看到的一个stringstream函数,它除了进行字符串和数字转换之外的另一个用途:分割单词。将字符串中所有非单词字符全部转换为空格,然后再用代码中的方法分割出单词。有这种方法就好做多了。
阅读全文
摘要:- 题目大意 先理解给出的四个移动方式: move a over b:把a上的木块放回各自的原位,再把a发到含b的堆上; pile a onto b:把b上的木块放回各自的原位,再把a连同a上的木块移到b上; pile a over b:把a连同a上木块移到含b的堆上。 然后根据条件来移动即可。 -
阅读全文
摘要:- 题目大意 题目中给出一个n个数的序列和q次查询,每次询问查询值是否在序列内,如果在,输出序列升序排列后的位置(从1开始)。 - 解题思路 先使用sort()函数进行升序排列,然后枚举出其中与查找的值相同的数,符合条件就输出。 - 代码
阅读全文
摘要:- 题目大意 给出一个四则运算计算式,然后来求值。 - 解题思路 根据符号来利用栈将数变换成对应的形式,比如如果是’+’的话,便将后面的那个数字压入栈中,’-‘号的话,将后面的数字取反压入栈中,而如果遇到乘法或除法,则将栈顶取出与符号后面的数字计算后压入栈中,这样最后在栈中的数字全部相加即是表达式的
阅读全文
摘要:- 题目大意 给出两个字符()【】,然后根据给的条件来判断。 - 解题思路 根据给的三个条件,然后利用栈来处理,对于暂时没有后括号匹配的前括号压入栈,遇到后括号时看栈顶的前括号与其是否匹配,如果匹配则弹出该前括号。还要判断下最后栈里面是不是有剩下的没有匹配的前括号。(注意空字符也行) - 代码
阅读全文
摘要:- 题目大意 给出了先进先出和先进后出的两种结构,分别对应队列和栈,并且每种均给出In和Out两类操作,如果是In,push进后面的数,如果是Out,输出栈顶(队首)。 - 解题思路 对于给的命令判断,然后来决定是用队列还是栈。 - 代码
阅读全文
摘要:- 题目大意 给出几个数,判断这些数能构成几个三角形。 - 解题思路 用两边之和大于第三边去判断(注意别用三重循环,时间复杂度太高会超时的,用lower_bound去找)。 - 代码
阅读全文
摘要:- 题目大意 就是求和‘@‘相连的‘.’有多少个(包括@,还有#是无法通过的)。 - 解题思路 用DFS即可解出 - 代码
阅读全文
摘要:- 题目大意 就是大数取余的题。 - 解题思路 利用同余定理(虽然刚开始我也不知道是什么,网上可以搜一下学习一下),最主要的关键式还是num = (num * 10 + s[i] - '0') % b,(注意i是从0开始)记住这个就行。 - 代码
阅读全文
摘要:- 题目大意 给一个半径为R的大圆,里面有n个小圆,把这些小圆放置成和大圆均内切且相邻两个小圆相切的形式,问每个小圆的半径是多少。 - 解题思路 纯粹的几何题,找出小圆个数与半径的几何关系即可,即r/(R-r)=sin(360°/n/2)(注意保留的小数位数)。 - 代码
阅读全文
摘要:- 题目大意 输入几个单词,让你判断不同的单词有几个(不必区分大小写)。 - 解题思路 因为不区分大小写,所以现将单词换位统一格式,然后只需用set容器即可(因为set中不会有重复的元素出现)。 - 代码
阅读全文
摘要:- 题目大意 计算分子式质量不过元素只有C,H,O,N,而且结果要保留3个小数喔。 - 题解 建立字母到数值的映射数组。 原子后面跟的可能为个数可能为多位数,注意让i直接向后跳一步。碰到字母直接加原子量;碰到数字用(数字-1)乘以last atom的原子量即可。 - 代码
阅读全文
摘要:- 题目大意 正如题目一样,就是将一个正偶数拆分成素数(记录拆分的素数个数就行,不用写出是那些素数)。 - 解题思路 去枚举每个数是否能被输入的数字整除,如果能就不行,反之记录即可。 - 代码
阅读全文
摘要:- 题目大意 把每个分数段都规定一个等级,让你输入一个分数,然后输出其相应的等级。 - 解题思路 用switch或者if语句来规定各个分数段的等级。(注意格式除了规定的空格不要有多余的空格) - 代码
阅读全文
摘要:- 题目大意 给出三个数判断能否构成一个直角三角形。 - 解题思路 直接用勾股定理判断即可。(注意输出格式!!!) - 代码
阅读全文

浙公网安备 33010602011771号