随笔分类 -  牛客练习

摘要:传送门 题目描述 输入描述: 一行两个整数 n,d 接下来一行 n 个整数 ai 输出描述: 输出 n 行每行一个整数,第 i 行的整数表示 k=i 时的答案 输入 5 23 4 7 9 8 输出 1996488718984199188984199181996488711 说明 思路: 题目大意是给 阅读全文
posted @ 2020-09-13 17:33 mohari 阅读(201) 评论(0) 推荐(1)
摘要:传送门 题目描述 输入描述: 第一行两个正整数 n,m 接下来 m 行,每一行三个正整数 u,v,w 表示 u,v 之间有一条长度为 w 的边 输出描述: 示例1 输入 2 1 1 2 3 输出 3 说明 很显然,1,2 或者 2,1 都是合法的 备注: 题解: 题目要求构造一个连通图,使得其中的特 阅读全文
posted @ 2020-09-11 23:05 mohari 阅读(217) 评论(1) 推荐(1)
摘要:题目描述 输入描述: 输出描述: 样例 思路 题目求解区间内未出现的最小的自然数,观察到此序列为全排列ai互不相同,则可以维护一个前缀最小值和后缀最小值, 当查询某一区间时,根据除去该区间的其余左右区间的较小值即为答案。 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-08-29 14:07 mohari 阅读(368) 评论(0) 推荐(0)
摘要:题目描述 输入描述: 第一行一个正整数 T表示询问次数。 接下来 T 行 每行一个正整数 n含义如上所述 输出描述 T行非负整数 代表答案。 样例输入 512345 样例输出 114105073001100955 备注: 思路 昨晚写的时候思路有些混乱,现在来整理一下。先写出n=2和n=3的情况观察 阅读全文
posted @ 2020-08-29 13:55 mohari 阅读(560) 评论(0) 推荐(0)
摘要:题目描述 时钟指向0点,又是新的一天。今天是七夕节,看着朋友圈牛云、牛郭、牛陈、牛余、牛lan等脱单牛准点发送的虐牛图,牛牛心理丝毫没有波动,因为他在协助科研人员制作新牛病毒的疫苗! 手机突然传来消息提醒: 七夕节有空出来一起吃饭吗?好久没见你了,想见你!——牛妹(清楚姐姐扮演) 疫苗的研发已经剩下 阅读全文
posted @ 2020-08-28 16:57 mohari 阅读(143) 评论(0) 推荐(0)
摘要:题目描述 七夕节到了,牛牛要去找牛妹约会了。 牛牛知道自己如果空手去约会,绝对会遭到牛妹的无情殴打。所以他决定打电话找跑腿,让跑腿去买花送到牛妹家楼下,牛牛要在牛妹下楼前到牛妹家楼下并且拿到花才不会遭到牛妹的无情殴打。 现在把整个城市看作一棵n个结点的树,牛妹在点1,牛牛家在点a,花店在点b,跑腿的 阅读全文
posted @ 2020-08-28 16:48 mohari 阅读(181) 评论(0) 推荐(0)
摘要:题目描述 音乐是带给大家快乐的存在,而你的目标就是组建若干支乐队,让世界听到你们的演奏! 你目前有n位乐手,每位乐手只能进入一个乐队,但并不是每位乐手都能担大任,因此需要团队合作。第ii位乐手的能力值为a[i]a[i],表示该位乐手所在乐队的人数必须大于等于a[i]。在保证每位乐手都被分进一个乐队的 阅读全文
posted @ 2020-08-23 17:07 mohari 阅读(197) 评论(0) 推荐(0)
摘要:题目描述 世界第一名侦探牛牛与拥有死亡笔记的牛能互为对方的知音与最强的对手,在某次对决中,牛能给出a[1],a[2],…,a[n]这n个数字,而他会对牛牛进行q次询问,每次询问的类型如下: 1:将a[x]的值改为y。 2:询问[l,r]区间是否可以形成一段连续的数字。若对[l,r]区间的数字从小到大 阅读全文
posted @ 2020-08-23 16:34 mohari 阅读(230) 评论(0) 推荐(0)
摘要:传送门 A.兔子的名字 大意:给一些串,问输入的串中存在几个给定的子串。 #include<bits/stdc++.h> using namespace std; int judge(string a,string b){ int s=0; for(int i=0;i<a.size();i++){ 阅读全文
posted @ 2020-08-18 23:04 mohari 阅读(149) 评论(0) 推荐(0)
摘要:传送门 A.牛牛爱字符串 大意:提取字符串里面的数字,不含前导零,字符串里面有空格 思路:直接使用getline/cin,加上一些判断就好了 #include<bits/stdc++.h> using namespace std; int main(){ string str; while(getl 阅读全文
posted @ 2020-08-15 17:15 mohari 阅读(184) 评论(0) 推荐(0)
摘要:题目描述 求关于x 的同余方程ax ≡ 1 (mod b)的最小正整数解。 输入描述: 输入只有一行,包含两个正整数a,b,用一个空格隔开。 输出描述: 输出只有一行,包含一个正整数x0,即最小正整数解。输入数据保证一定有解。 示例1 输入 3 10 输出 7 备注: 对于40%的数据,2≤b≤1, 阅读全文
posted @ 2020-08-01 19:46 mohari 阅读(175) 评论(0) 推荐(0)
摘要:传送门 题解: 核心就是满足条件,i<j and a[i]!=a[j] and b[i]<b[j] ; 另外有个附加属性,有一些发功的时间 i 第i秒会给在第i秒及以前出现的b[i]+1, 用一个sum[i]数组表示在此时间受到发功影响的次数的总和。那么问题就是变为 在i<j的条件下,b[i]+su 阅读全文
posted @ 2020-05-29 00:11 mohari 阅读(94) 评论(0) 推荐(0)
摘要:传送门 给定范围,给一些区间,这些区间树被清理掉,问最后剩多少种树。 方法一,预处理标记该点已不存在树。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5; int vis[maxn]; int main(){ int l 阅读全文
posted @ 2020-05-28 22:21 mohari 阅读(173) 评论(0) 推荐(0)
摘要:传送门 和二分没有半毛钱关系,题目大意有点不好描述。 题解:数的范围在int范围,而且有负数,不能用数组,用map存储,前缀和代表有多少个最多有多少种满足描述,取最大的前缀和。 找重叠区间最多的个数。输出.时,a点加一。输出-时,负无穷到a-1加一。输出+时,a+1到正无穷加一。 #include< 阅读全文
posted @ 2020-05-28 21:43 mohari 阅读(176) 评论(0) 推荐(0)
摘要:比较x^y和y^x的大小,范围1e9。 可以用两边分别取对数,lnx^y=y*lnx,lny^x=x*lny; 用系统带的log函数即可。 #include<bits/stdc++.h> using namespace std; int main(){ long long int x,y,a,b; 阅读全文
posted @ 2020-05-28 17:16 mohari 阅读(323) 评论(0) 推荐(0)
摘要:传送门 题目大意:几个小朋友围成圈,给i-1个到i小朋友的距离,求离得两个小朋友最远的距离。 题解:直接枚举,o(n^2)范围是1e5超时,考虑尺取或者三分。 分析可知,第i个小朋友到第j个小朋友距离大于j+1个小朋友时,第i+1个小朋友的最远距离要大于到第j个小朋友,由此缩小规模。 #includ 阅读全文
posted @ 2020-05-27 00:04 mohari 阅读(172) 评论(0) 推荐(0)
摘要:传送门 题目大意:每次有两种选择,第一种是得到金钱,消耗魔法值。第二种是得到魔法值,消耗金钱。金钱和魔法值不够消耗时也可以消耗,该值置为0。求金钱*魔法值的最大值。 题解:范围很小,直接dfs爆搜即可。 #include<bits/stdc++.h> using namespace std; con 阅读全文
posted @ 2020-05-26 22:10 mohari 阅读(238) 评论(0) 推荐(0)
摘要:传送门 题目大意:一张彩票3元,每次买都会中奖,金额为1、2、3、4元,概率相等,求买n次彩票时,至少不亏的概率。 题解:统计所有不亏的方案/所有方案,所有方案可以知道是4的n次方,问题主要在求不亏的方案,不亏即中奖的 金额在3n到4n的方案统计。用dp统计方案,dp[i][j]表示第i次购买,中奖 阅读全文
posted @ 2020-05-26 22:06 mohari 阅读(212) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/5773/B 给一些点的横纵坐标,问最多有多少不平行的直线,其实就是问有多少种斜率。 可以用map,也可以用set map #include<bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2020-05-25 22:36 mohari 阅读(201) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/5773/E 求使序列有序的最小交换次数。 找循环节的个数,最小交换次数等于元素个数减掉循环节的个数。 关于算法这里有个比较好的分析https://blog.csdn.net/lfb637/article/details/866 阅读全文
posted @ 2020-05-25 21:44 mohari 阅读(987) 评论(0) 推荐(0)