牛客的两道dfs】的更多相关文章

1.传送门:牛客13594-选择困难症 题意:给你k类物品,每类物品有a[i]个每个物品都有一个value,每类物品最多选一个,要求有多少种选法使得总value>m(没要求每类物品都必须选) 题解:很明显是一道dfs的题,但是要剪枝优化,假设我们当前所有物品的总vaule>m,那么我们只要算这件物品之后的组合总数就行了(特别注意每类物品可以不选,即num[0]=0,dfs每类物品的个数要从位置0开始而不是1),用一个mul数组来记录每类的方案数. 代码: 1 #include <iost…
链接:https://www.nowcoder.com/acm/contest/136/C 来源:牛客网 桃花 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 桃花一簇开无主,可爱深红映浅红.                                         ——<题百叶桃花> 桃花长在桃树上,树的每个节点有一个桃花,调皮的HtBest想摘尽可能多的桃花.HtBest有一…
链接:https://www.nowcoder.com/acm/contest/84/C 来源:牛客网 题目描述 平面上有若干个点,从每个点出发,你可以往东南西北任意方向走,直到碰到另一个点,然后才可以改变方向. 请问至少需要加多少个点,使得点对之间互相可以到达. 输入描述: 第一行一个整数n表示点数( 1 <= n <= 100). 第二行n行,每行两个整数xi, yi表示坐标( 1 <= xi, yi <= 1000). y轴正方向为北,x轴正方形为东. 输出描述: 输出一个整…
B.幸运数字Ⅱ 链接:https://www.nowcoder.com/acm/contest/70/B来源:牛客网     这个题就是找出来数据范围内的所有的幸运数,然后直接区间累加起来就可以了. 两个版本,一个数组找的所有的幸运数,一个dfs找的所有的幸运数.   代码1(数组): 1 //B-数组版 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath>…
链接:https://www.nowcoder.com/acm/contest/134/C来源:牛客网 题目描述 铁子和顺溜上生物课的时候不小心将几滴超级病菌滴到了培养皿上,这可急坏了他们. 培养皿可以被看成一个n*n的方格,最初病菌滴在了这n*n的格子中的某些格子,病菌的传染方式是这样的,如果一个方格与两个或多个被感染的方格相邻(两个方格相邻当且仅当它们只有一条公共边), 那么它就会被感染.现在铁子和顺溜想知道,最终所有的方格会不会都被感染. 输入描述: 第一行两个整数n,m.n表示方格的规格…
链接:https://www.nowcoder.com/acm/contest/136/C来源:牛客网 题目描述 桃花一簇开无主,可爱深红映浅红.                                         ——<题百叶桃花> 桃花长在桃树上,树的每个节点有一个桃花,调皮的HtBest想摘尽可能多的桃花.HtBest有一个魔法棒,摘到树上任意一条链上的所有桃花,由于HtBest法力有限,只能使用一次魔法棒,请求出Htbest最多可以摘到多少个桃花. 输入描述: 第一行有一个…
链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 华华看书了解到,一起玩养成类的游戏有助于两人培养感情.所以他决定和月月一起种一棵树.因为华华现在也是信息学高手了,所以他们种的树是信息学意义下的. 华华和月月一起维护了一棵动态有根树,每个点有一个权值.刚开存档的时候,树上只有 0 号节点…
链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁先挤奶的顺序.她们甚至也不能通过仍硬币的方式. 所以她们通过"round number"竞赛的方式.第一头牛选取一个整数,小于20亿.…
传送门 来源:牛客网题目描述:小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走多少路输入描述:第一行两个整数 n,x,代表点数,和小w所处的位置第二到第n行,每行三个整数 u,v,w,表示u和v之间有一条长为w的道路输出描述:一个数表示答案示例1输入3 11 2 12 3 1输出2备注:1 ≤ n ≤ 50000 , 1 ≤ w ≤ 2147483647…
链接:https://ac.nowcoder.com/acm/problem/15294来源:牛客网 题目描述 有一只乌龟,初始在0的位置向右跑. 这只乌龟会依次接到一串指令,指令T表示向后转,指令F表示向前移动一个单位.乌龟不能忽视任何指令. 现在我们要修改其中正好n个指令(一个指令可以被改多次,一次修改定义为把某一个T变成F或把某一个F变成T). 求这只乌龟在结束的时候离起点的最远距离.(假设乌龟最后的位置为x,我们想要abs(x)最大,输出最大的abs(x)) 输入描述: 第一行一个字符串…
不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set).集合框架中的Map集合 接口java.util.Map,包括3个实现类:HashMap.Hashtable.TreeMap.当然还有LinkedHashMap.ConcurrentHashMap .WeakHashMap. Map是用来存储键值对的数据结构,键值对在数组中通过数组下标来对其内容索引的…
链接:https://www.nowcoder.com/acm/contest/118/F来源:牛客网 题目描述 <扫雷>是一款大众类的益智小游戏,于1992年发行.游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输.当某个位置为数字的时,代表它周围的八连通区域中有对应数量的雷. kirai获取了简化版扫雷(没有标记雷的小旗)的后台数据(后台数据包括所有数字和雷的位置),转换为一个n*m(1≤n, m≤500)的矩阵并对格子类型做了如下标记: 雷…
目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 string) 求若干个串的公共子串个数相关变形题 牛客这题题意大概是求一个长度为\(2e5\)的字符串有多少个不同子串,若\(s==t\)或\(s==rev(t)\)则认为子串\(s,t\)相同.我们知道回文串肯定和他的反串相同. 链接:传送门. 做法1: \(yx\)大佬秒出思路%%,对\(s…
牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树) 链接:https://ac.nowcoder.com/acm/problem/15706 现在需要您来帮忙维护这个名册,支持下列 4 种操作: 插入新人名 si,声望为 a 给定名字前缀 pi 的所有人的声望值变化 di 查询名字为 sj 村民们的声望值的和(因为会有重名的) 查询名字前缀为 pj 的声望值的和 题解:一个非常明显的线段树操作,前缀可以看作是区间更新,区间查询,给定名字就是单点更新,单点查询,字典树上…
两个栈实现队列 牛客网 剑指Offer 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. class Solution: def __init__(self): self.stk1 = [] self.stk2 = [] def push(self, node): self.stk1.append(node) def pop(self): if self.stk2 == []: while self.stk1: item = self.stk1.po…
确定两串乱序同构 牛客网 程序员面试金典 C++ Python 题目描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串.这里规定大小写为不同字符,且考虑字符串中的空格. 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同.保证两串的长度都小于等于5000. 测试样例: "This is nowcoder","is This nowcoder" 返回:true…
两个栈实现队列 牛客网 程序员面试金典 C++ Python 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. C++ //run:5ms memeory:612k class Solution { public: void push(int node) { stack1.push(node); } int pop() { if (stack2.empty()) while(!stack1.empty()){ stack2.push(stack1.t…
示例1: 输入: 4 21 23 13 42 4 输出:2 说明: They can meet at place 1 or 3. 题意:从K个点到达不联通图某个点需要的最短时间,这个最短时间是这K个人最后到达的人所需的时间. 思路:(我觉得官方给的题解挺好理解的就直接复制过来了) 一句话题解:考虑距离最远的两个关键点,设它们的距离为d,d/2上取整即为答案. 必要性:这两个人要碰面,必然要走至少d/2步. 充分性:我们取两人路径中和一头距离为d/2上取整的一个点,让所有人在这相聚.如 果有一个人…
牛客的这场比赛感觉真心不错!! 打得还是很过瘾的.水平也比较适合. T1:中位数: 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l,r]表示,代表A[l], A[l + 1], ..., A[r]这段数.对于一个序列B[1], B[2], ..., B[k],定义B的中位数如下: 1. 先对B排序.得到新的序列C. 2. 假如k是奇数,那么中位数为.假如k为偶数,中位数为. 对于A的所有的子区间,小N可以知道它们对应的中位数.…
作者:./a.out链接:https://www.nowcoder.com/discuss/14022来源:牛客网 话说在牛客网上混迹了半年,也没啥拿的出手的贡献.现在基本上自己的校招生涯要告一段落,就把自己的经验总结拿出来分享下吧. 原文记录在个人的博客http://foocoder.github.io 欢迎来访- 校招准备之知识储备 讲到校招的知识储备,当然不同岗位是需求不不一样的,个人偏C++后台方向( 话说自己除了这个啥都不会 ),所以有相同方向的可以参考一下. 一般而言,面试的方向无非…
目录 题意: 分析: @(2019牛客暑期多校训练营(第八场)E_Explorer) 题意: 链接 题目类似:CF366D,Gym101652T 本题给你\(n(100000)\)个点\(m(10000)\)条边,每无向边允许通过编号在\([Li,Ri](1\le Li\le Ri\le 1e9)\)内的人,问从\(1\)到\(n\)能通过多少个人. 分析: 赛中艹了30多发暴力无济于事... 因为以前做过一道数据范围1000的原题,当时做法好像是离散化后枚举区间暴力跑\(dfs\)查询或者带着…
大佬博客 ps:在牛客上做到这题不会,学会之后补了两道相关题.顺便记录一下. 牛客-DongDong数颜色 sol:dfs序+莫队,先把树上的点标上dfs序,因为子树的dfs序是连续的,所以子树可以表示为id[x]到id[x] + size[x] + 1,然后就是序列上莫队了(引用自官方题解) dfs序 + 莫队 #include "bits/stdc++.h" using namespace std; typedef pair<int, int> PII; ; int c…
牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\) 个雷的期望用时,那么我们要求的答案就是 \(f_n\). 我们不难写出一个递推式: \[ f_{i +1} = \left((f_i +1) \cdot \dfrac{a_i}{b_i}\right) + \left(2(f_i + 1) \cdot \dfrac{b_i - a_i}{b_i}…
链接:https://ac.nowcoder.com/acm/contest/634/C来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模板题.所以小k不屑于去写. 所以出题人只好yy了另一道题. 定义k生互质数为满足y + k与y - k互质的数. 现在给出区间[L,R],你需要输出区间内k生互质数有多少对 我们说一对k生互质数在区间[L,R]内,当且仅当y+k∈[L,R]y+k∈[L,R]且y−k∈[L,R]y−k∈[L,R] 输入…
链接:https://ac.nowcoder.com/acm/contest/549/F来源:牛客网 题目描述 小A这次来到一个景区去旅游,景区里面有N个景点,景点之间有N-1条路径.小A从当前的一个景点移动到下一个景点需要消耗一点的体力值.但是景区里面有两个景点比较特殊,它们之间是可以直接坐观光缆车通过,不需要消耗体力值.而小A不想走太多的路,所以他希望你能够告诉它,从当前的位置出发到他想要去的那个地方,他最少要消耗的体力值是多少. 输入描述: 第一行一个整数N代表景区的个数.接下来N-1行每…
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! 处女座其实也挺喜欢6这个数字的,实际上他做手环的时候选取的k=6.所以他对于包含数码6的数字极其敏感.每次看到像4567这样的数字的时候他的心就像触电了…
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-G.html 题目传送门 - 2018牛客多校赛第三场 G 题意 给定一个 $n$ 个节点的树,有 $k$ 种颜色. 现在让你给每一个节点都染上一种颜色,总共有 $k^n$ 种方法. 现在问,在所有染色方案中,使得相同颜色点对之间的最短距离为 $D$ 的有多少种方案. 答案对于 $10^9+7$ 取模. $n,k,d\leq 5000$ 题解 首先我们来算…
Preface 终于知道YKH他们为什么那么喜欢打牛客网了原来可以抽衣服 那天晚上有空就也去玩了下,刷了一波水TM的YKH就抽到了,我当然是没有了 题目偏水,好像都是1A的.才打了一个半小时,回家就直接睡觉了 A 托米的赌球 送分题,考虑贪心的思想,由于要总数量最小,因此面额大的应该能选就选. 所以一路贪心下来即可. CODE #include<cstdio> #include<cctype> using namespace std; const int A[7]={100,50,…
求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简单路径).再从找到的点出发,找到据该点的最远点,那么这两点就确定了树的一条直径,两点间距即为所求距离. 无意中看到一道水题,也就是POJ 1383题目中给出了一个无环的迷宫,求出其中最长的一条路我们知道无环图本质上可以认为就是树,所以此题完全可以使用树的最长链算法 即:随便从某个节点C开始DFS或B…
小D的剑阵 题意链接: https://ac.nowcoder.com/acm/contest/369/F 来源:牛客网 现在你有 \(n\) 把灵剑,其中选择第i把灵剑会得到的 \(w_i\) 攻击力. 于此同时,还有 \(q\) 个约束,每个约束形如:x y v_0 v_1 v_2 \(x\) 和 \(y\) 表示两个物品的编号,如果同时选中可以获得额外 \(v_0\) 的攻击力, 同时不选可以获得额外 \(v_1\) 点攻击力,只选择一个则会扣除 \(v_2\) 的攻击力. 小D想知道剑阵…