2020牛客算法竞赛入门课
moyangxian
总会过去的
展开
-
华尔兹(BFS)
链接:https://ac.nowcoder.com/acm/problem/15204来源:牛客网题目描述有一个 n x m 大小的网格,其中有些格点比较特殊,当玩家站在上面的时候会自动移动到相邻四个方向之一,另外一些格点暂时还并不特殊,因为它们的移动方向还未知,如下图:上图中,第一列和最后一行格点的移动方向未知,其他点的移动方向已经确定了,已经在图中用箭头指出其方向。现在给定一个起点(上图中的绿色方块)和一个终点(上图中的红色方块),你需要给其中一些移动方向未知的格点确定一个方向,使得玩家能从原创 2020-06-09 21:11:26 · 277 阅读 · 0 评论 -
食物链(并查集)
链接:https://ac.nowcoder.com/acm/problem/16884来源:牛客网题目描述动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是“1 X Y”,表示X和Y是同类。第二种说法是“2 X Y”,表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话原创 2020-06-06 18:18:53 · 211 阅读 · 0 评论 -
任意点(并查集)
链接:https://ac.nowcoder.com/acm/problem/15808来源:牛客网题目描述平面上有若干个点,从每个点出发,你可以往东南西北任意方向走,直到碰到另一个点,然后才可以改变方向。请问至少需要加多少个点,使得点对之间互相可以到达。输入描述:第一行一个整数n表示点数( 1 <= n <= 100)。第二行n行,每行两个整数xi, yi表示坐标( 1 <= xi, yi <= 1000)。y轴正方向为北,x轴正方形为东。输出描述:输出一个整数原创 2020-06-04 16:00:56 · 486 阅读 · 1 评论 -
Operating System(贪心)
链接:https://ac.nowcoder.com/acm/problem/15688来源:牛客网题目描述在学习Operating System的过程中,Glory遇到了这样一个问题,现在有一个大小为可以容纳N个页面的内存,硬盘内的内容被分成M个页面,用1~M来标识,一开始内存里没有任何页面,接下来用户会请求Q个页面,你需要设计一个置换算法,使得缺页发生的次数最少。缺页是指用户请求某个编号的页面,但这个页面没有在内存中的情况。发生缺页之后,你必须要把硬盘内对应的页面调入内存中,如果内存已满,你需要置原创 2020-06-04 15:17:34 · 435 阅读 · 0 评论 -
加边的无向图(并查集)
链接:https://ac.nowcoder.com/acm/problem/14685来源:牛客网题目描述给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~输入描述:第一行两个正整数 n 和 m 。接下来的m行中,每行两个正整数 i 、 j ,表示点i与点j之间有一条无向道路。输出描述:输出一个整数,表示答案示例1输入复制4 21 23 4输出复制1备注:对于100%的数据,有n,m<=100000。题意:略。题记原创 2020-06-04 14:14:12 · 226 阅读 · 0 评论 -
经商(并查集+01背包)
链接:https://ac.nowcoder.com/acm/problem/14545来源:牛客网题目描述小d是一个搞房地产的土豪。每个人经商都有每个人经商的手段,当然人际关系是需要放在首位的。小d每一个月都需要列出来一个人际关系表,表示他们搞房地产的人的一个人际关系网,但是他的精力有限,对应他只能和能够接触到的人交际。比如1认识2,2认识3,那么1就可以接触3进行交际,当然1和2也可以交际。小d还很精明,他知道他和谁交际的深获得的利益大,接下来他根据自己的想法又列出来一个利益表,表示他和这些人原创 2020-06-04 12:26:40 · 134 阅读 · 0 评论 -
装备合成(三分)
链接:https://ac.nowcoder.com/acm/problem/200211来源:牛客网题目描述牛牛有{x}x件材料{a}a和{y}y件材料{b}b,用{2}2件材料{a}a和{3}3件材料{b}b可以合成一件装备,用{4}4件材料{a}a和{1}1件材料{b}b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。输入描述:输入包含{t}t组数据第一行一个整数{t}t接下来{t}t行每行两个整数{x,y}x,y输出描述:每组数据输出一行一个整数表示答案。原创 2020-06-03 17:50:04 · 281 阅读 · 0 评论 -
POJ3273 MonthlyExpense(二分)
链接:https://ac.nowcoder.com/acm/problem/107870来源:牛客网题目描述Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000) that原创 2020-06-03 17:15:57 · 150 阅读 · 0 评论 -
POJ 3104 Drying(二分)
链接:https://ac.nowcoder.com/acm/problem/107701来源:牛客网题目描述It is very hard to wash and especially to dry clothes in winter. But Jane is a very smart girl. She is not afraid of this boring process. Jane has decided to use a radiator to make drying faster. Bu原创 2020-06-03 16:37:45 · 150 阅读 · 0 评论 -
POJ 2785 4 Values whose Sum is 0(二分)
链接:https://ac.nowcoder.com/acm/problem/107382来源:牛客网题目描述The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In the follow原创 2020-06-03 15:47:40 · 130 阅读 · 0 评论 -
Music Notes(二分)
链接:https://ac.nowcoder.com/acm/problem/24866来源:牛客网题目描述FJ is going to teach his cows how to play a song. The song consists of N (1 <= N <= 50,000) notes, and the i-th note lasts for Bi (1 <= Bi <= 10,000) beats (thus no song is longer than 50原创 2020-06-03 15:13:28 · 247 阅读 · 0 评论 -
Chocolate Eating(二分)
链接:https://ac.nowcoder.com/acm/problem/24724来源:牛客网题目描述Bessie has received N (1 <= N <= 50,000) chocolates from the bulls, but doesn’t want to eat them too quickly, so she wants to plan out her chocolate eating schedule for the next D (1 <= D &l原创 2020-06-03 14:40:03 · 354 阅读 · 1 评论 -
华华给月月准备礼物(二分)
链接:https://ac.nowcoder.com/acm/problem/23049来源:牛客网题目描述二月中旬虐狗节前夕,华华决定给月月准备一份礼物。为了搭建礼物的底座,华华需要若干根同样长的木棍。华华手头上有一些长度参差不齐的木棍,他想将每根都裁剪成若干段自己想要的长度,并丢掉多余的部分。因为华华的手很巧,所以他的裁剪过程不会有任何的失误。也就是说,对于一根长度为N的木棍,华华可以精准的将它们裁剪为若干段木棍,使它们的长度之和为N。华华不知道裁剪成多长比较好,所以干脆越长越好。不过由于华华有原创 2020-06-03 12:07:04 · 179 阅读 · 0 评论 -
[SCOI2010]传送带(三分)
链接:https://ac.nowcoder.com/acm/problem/20276来源:牛客网题目描述在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间输入描述:输入数据第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By第二行是4个整数,表示C和D的坐标,分别为Cx,Cy,Dx,Dy第三原创 2020-05-30 21:06:18 · 214 阅读 · 0 评论 -
扑克牌(二分)
链接:https://ac.nowcoder.com/acm/problem/19916来源:牛客网题目描述你有n种牌,第i种牌的数目为ci。另外有一种特殊的牌:joker,它的数目是m。你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1套牌。比如,当n=3时,一共有4种合法的套牌:{1,2,3}, {J,2,3}, {1,J,3}, {1,2,J}。 给出n, m和ci,你的任务是组成尽量多的套牌。每张牌最多只能用在一副套牌里(可以有牌不使用)。输入描述原创 2020-05-30 17:02:10 · 318 阅读 · 0 评论 -
聪明的质监员(二分+前缀和)
链接:https://ac.nowcoder.com/acm/problem/16597题意:略。题记:二分出W的值,然后找到与s相差最近的值。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+10;ll w[N],v[N];ll sum[N],cnt[N];ll l[N],r[N];int n,m;ll s;ll check(int x){ ll k=原创 2020-05-30 15:49:12 · 87 阅读 · 0 评论 -
wyh的物品(01分数规划)
链接:https://ac.nowcoder.com/acm/problem/15446来源:牛客网题目描述wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个,问你在所有可能选取的方案中,最大的单位价值为多少(单位价值为选取的k个物品的总价值和总重量的比值)输入描述:输入第一行一个整数T(1<=T<=10)接下来有T组测试数据,对于每组测试数据,第一行输入两个数n和k(1<=k<=n<=100000)接下来有n行,每行两个是a和原创 2020-05-29 22:29:30 · 204 阅读 · 0 评论 -
完全平方数(二分)
链接:https://ac.nowcoder.com/acm/problem/14733来源:牛客网题目描述多次查询[l,r]范围内的完全平方数个数定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x输入描述:第一行一个数n表示查询次数之后n行每行两个数l,r输出描述:对于每个查询,输出一个数表示答案示例1输入复制51 31 42 44 41 1000000000输出复制121131622备注:n <= 1000000<= l <原创 2020-05-29 22:14:26 · 409 阅读 · 0 评论 -
栗酱的不等式(二分)
链接:https://ac.nowcoder.com/acm/problem/14696来源:牛客网题目描述有不等式y⋅x3≤ n,已知y为正整数,x为大于1的正整数,问当x和y的解数量刚好为m的时候n的最小值,如果不存在输出 -1。输入描述:多组数据读入。每组数据一个数字m,如题所示。输出描述:每组数据输出一行,输出答案。示例1输入复制1输出复制8说明当方案恰好只有一种的时候,n的最小值为8,此时y=1,x=2。备注:1 ≤ m ≤ 1016题意:略。题记:二分找原创 2020-05-29 21:57:41 · 111 阅读 · 0 评论 -
小咪(01分数规划)
链接:https://ac.nowcoder.com/acm/problem/14662来源:牛客网小咪是一个土豪手办狂魔,这次他去了一家店,发现了好多好多(n个)手办,但他是一个很怪的人,每次只想买k个手办,而且他要让他花的每一分钱都物超所值,即:买下来的东西的总价值/总花费=max。请你来看看,他会买哪些东西吧。输入描述:多组数据。第一行一个整数T,为数据组数。接下来有T组数据。对于每组数据,第一行两个正整数n,k,如题。接下来n行,每行有两个正整数ci,vi。分别为手办的花费和它对于小原创 2020-05-29 21:26:58 · 172 阅读 · 0 评论 -
位数差(二分)
https://ac.nowcoder.com/acm/problem/14380题意:略。题记:略。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+10;ll a[N];ll h(int x){ if(x==0)return 1; ll cnt=0; while(x){ cnt++; x/=10; }原创 2020-05-29 18:43:10 · 290 阅读 · 0 评论 -
Raid(最近点对)
链接:https://ac.nowcoder.com/acm/problem/108310来源:牛客网题目描述After successive failures in the battles against the Union, the Empire retreated to its last stronghold. Depending on its powerful defense system, the Empire repelled the six waves of Union’s attack原创 2020-05-26 16:01:07 · 148 阅读 · 0 评论 -
Sliding Window(单调队列)
链接:https://ac.nowcoder.com/acm/problem/51001来源:牛客网题目描述An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each tim原创 2020-05-26 14:31:59 · 158 阅读 · 0 评论 -
表达式计算4(栈)
链接:https://ac.nowcoder.com/acm/problem/50999来源:牛客网题目描述给出一个表达式,其中运算符仅包含+,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值数据可能会出现括号情况,还有可能出现多余括号情况数据保证不会出现\geq 2^{31}的答案数据保证不会出现≥231的答案数据可能会出现负数情况输入描述:仅一行,即为表达式输出描述:仅一行,既为表达式算出的结果示例1输入复制(2+2)^(1+1)输出复制16备注:原创 2020-05-26 12:03:45 · 561 阅读 · 0 评论 -
华华教月月做数学(快速幂)
链接:https://ac.nowcoder.com/acm/problem/23046来源:牛客网题目描述找到了心仪的小姐姐月月后,华华很高兴的和她聊着天。然而月月的作业很多,不能继续陪华华聊天了。华华为了尽快和月月继续聊天,就提出帮她做一部分作业。月月的其中一项作业是:给定正整数A、B、P,求A^B\mod PABmodP的值。华华觉得这实在是毫无意义,所以决定写一个程序来做。但是华华并不会写程序,所以这个任务就交给你了。因为月月的作业很多,所以有T组询问。输入描述:第一行一个正整数T原创 2020-05-25 19:06:51 · 405 阅读 · 0 评论 -
兔子的逆序对
链接:https://ac.nowcoder.com/acm/problem/20861来源:牛客网题目描述兔子最近喜欢上了逆序对。一个逆序对(i,j) 需要满足 i < j 且 ai > aj兔子觉得只是求一个序列的逆序对个数太没有意思了。于是兔子想到了一个更有趣的问题!兔子可以把区间[L,R] 反转,例如序列{1,2,3,4} 反转区间[1,3] 后是{3,2,1,4}。兔子有m次反转操作,现在兔子想知道每次反转后逆序对个数是奇数还是偶数,兔子喜欢偶数,而讨厌奇数。请注意,原创 2020-05-25 18:04:05 · 227 阅读 · 0 评论 -
区区区间间间(单调栈)
题目链接:https://ac.nowcoder.com/acm/problem/20806来源:牛客网 题意:求所有区间的最大值减最小值的和。题记:由题意分析可分解成先求出所有区间的最大值的和,再减去所有区间最小值的和。那么用单调栈取维护以a[i]为区间的最大值往左右两边找比a[i]小的值。l[i]表示可以向左扩展到这个点,r[i]同理。那么以a[i]为最大值的区间有两种情况1、以a[i]为区间的端点:可以在r[i到l[i]中任意选一点为另一个端点。2、a[i]为区间中的一点,可以在l[i原创 2020-05-25 16:55:18 · 315 阅读 · 0 评论 -
FBI树(二叉树的遍历)
链接:https://ac.nowcoder.com/acm/problem/16660来源:牛客网题目描述我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树[1],它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:T的根结点为R,其类型与串S的类型相同;若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由原创 2020-05-22 16:19:32 · 234 阅读 · 0 评论 -
分数线划定(排序)
链接:https://ac.nowcoder.com/acm/problem/16625来源:牛客网题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名原创 2020-05-22 15:12:01 · 222 阅读 · 0 评论 -
The Biggest Water Problem(水题)
链接:https://ac.nowcoder.com/acm/problem/15173来源:牛客网题目描述给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。如果这个数字是个位数的话,那么他就满足条件。输入描述:给一个整数数字n(1<=n<=1e9)。输出描述:输出由n经过操作满足条件的数示例1输入12输出原创 2020-05-21 16:30:15 · 618 阅读 · 0 评论 -
逆序数(归并排序)
链接:https://ac.nowcoder.com/acm/problem/15163来源:牛客网题目描述在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个序列为4 5 1 3 2, 那么这个序列的逆序数为7,逆序对分别为(4, 1), (4, 3), (4, 2), (5, 1), (5, 3), (5, 2),(3, 2)。输入描述:第一行有一个整数n(1 <= n <= 1000原创 2020-05-21 16:29:06 · 350 阅读 · 0 评论 -
老子的全排列呢(递归)
链接:https://ac.nowcoder.com/acm/problem/15128来源:牛客网题目描述老李见和尚赢了自己的酒,但是自己还舍不得,所以就耍起了赖皮,对和尚说,光武不行,再来点文的,你给我说出来1-8的全排序,我就让你喝,这次绝不耍你,你能帮帮和尚么?输入描述:无输出描述:1~8的全排列,按照全排列的顺序输出,每行结尾无空格。示例1输入No_Input输出Full arrangement of 1~8备注:1~3的全排列 :1 2 31 3 22 1 3原创 2020-05-21 15:35:21 · 622 阅读 · 0 评论 -
竞赛技巧(简单排序)
链接:https://ac.nowcoder.com/acm/problem/15056来源:牛客网题目描述在ACM竞赛中,当遇到有两个队伍(人) 解出相同的题目数量的时候,我们需要通过他们解决问题的总时间进行排序。一共有 N(1<=N<=5,000)条时间被以时(0<=Hours<=99), 分(0<=Minutes<=59),秒(0<=Seconds<=59)的形式记录。你必须要把他们按时,分,秒排序为 升序,最少的时间最先。 考虑到如下的样例,原创 2020-05-21 11:44:46 · 1154 阅读 · 0 评论 -
栈和排序(模拟)
链接:https://ac.nowcoder.com/acm/problem/14893来源:牛客网题目描述给你一个1->n的排列和一个栈,入栈顺序给定你要在不打乱入栈顺序的情况下,对数组进行从大到小排序当无法完全排序时,请输出字典序最大的出栈序列输入描述:第一行一个数n第二行n个数,表示入栈的顺序,用空格隔开,结尾无空格输出描述:输出一行n个数表示答案,用空格隔开,结尾无空格示例1输入52 1 5 3 4输出5 4 3 1 2说明2入栈;1入栈;5入栈;5出栈;3原创 2020-05-21 11:26:23 · 440 阅读 · 1 评论 -
简单的数据结构(模拟)
链接:https://ac.nowcoder.com/acm/problem/14661来源:牛客网题目描述栗酱有一天在网上冲浪的时候发现了一道很有意思的数据结构题。该数据结构形如长条形。一开始该容器为空,有以下七种操作。1 a从前面插入元素a2 从前面删除一个元素3 a从后面插入一个元素4 从后面删除一个元素5 将整个容器头尾翻转6 输出个数和所有元素7 对所有元素进行从小到大排序输入描述:只有一组数据,第一行n≤50000,m≤200000, a≤100000 代表最大数据数原创 2020-05-21 11:00:40 · 226 阅读 · 0 评论 -
大吉大利,今晚吃鸡(思维)
链接:https://ac.nowcoder.com/acm/problem/14585来源:牛客网题目描述糖和抖m在玩个游戏,规定谁输了就要请谁吃顿大餐:抖m给糖a b c三个驻, 并在a柱上放置了数量为n的圆盘,圆盘的大小从上到下依次增大,现在要做的事就是把a柱的圆盘全部移到c柱,移动的过程中保持小盘在上,大盘在下,且限定圆盘只能够移动到相邻的柱子,即a柱子上的圆盘只能够移动到b,b柱子上的圆盘只能够移动到a或者c,c同理。现在请你设计一个程序,计算所需移动的最小步数, 帮助糖赢得大餐!输入描述原创 2020-05-21 10:37:57 · 619 阅读 · 0 评论 -
Laptop(水题)
链接:https://ac.nowcoder.com/acm/problem/14266来源:牛客网题目描述FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”。输入描述:原创 2020-05-20 19:19:50 · 212 阅读 · 0 评论 -
Subsequence(尺取法)
链接:https://ac.nowcoder.com/acm/problem/107658来源:牛客网题目描述A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length原创 2020-05-20 15:05:59 · 61 阅读 · 0 评论 -
[土]巨石滚滚(贪心)
链接:https://ac.nowcoder.com/acm/problem/53681来源:牛客网题目描述帕秋莉掌握了一种土属性魔法她使用这种魔法建造了一个大型的土球,并让其一路向下去冲撞障碍土球有一个稳定性x,如果x < 0,它会立刻散架每冲撞一个障碍,土球会丧失ai的稳定性,冲撞之后,又会从障碍身上回馈bi的稳定性帕秋莉想知道,如果合理的安排障碍的顺序,在保证土球不散架的情况下,是否可以将障碍全部撞毁呢?输入描述:输入一个整数T,代表T组数据,每组数据中:前一行两个整数n ,原创 2020-05-19 22:25:20 · 151 阅读 · 0 评论 -
切长条(贪心)
链接:https://ac.nowcoder.com/acm/problem/25136来源:牛客网题目描述给定如图所示的若干个长条。你可以在某一行的任意两个数之间作一条竖线,从而把这个长条切开,并可能切开其他长条。问至少要切几刀才能把每一根长条都切开。样例如图需要切两刀。注意:输入文件每行的第一个数表示开始的位置,而第二个数表示长度。输入描述:Line 1: A single integer, N(2 <= N <= 32000)Lines 2…N+1: Each line co原创 2020-05-19 21:45:47 · 136 阅读 · 0 评论