
牛客
Sankkl1
这个作者很懒,什么都没留下…
展开
-
2021牛客暑期多校训练营9 E.Eyjafjalla(树状数组/主席树)
题目链接:https://ac.nowcoder.com/acm/contest/11260/E分析先跑一边dfs处理出每个点的dfs序就能得到以每个点为根节点的子树所拥有的点的dfs序的区间,如图由于是dfs序,每个点的子树所包含的所有点的dfs序是连续的。我们先根据每个查询的lll和rrr,向上找到距离开始点最远的在区间内的点,答案就是以该点为根的子树大小减去该点的dfs序区间内温度小于等于x−1x-1x−1的点的数量。由于查询次数较多,我们可以记录每次要查询的dfs序区间以及x−1x-1x原创 2021-08-15 15:16:29 · 154 阅读 · 0 评论 -
2021牛客暑期多校训练营7 F.xay loves trees(线段树+滑窗)
题目链接:https://ac.nowcoder.com/acm/contest/11258/F分析在第二棵树上跑一边dfs,得到了dfs序,每个点就有一个区间[l,r][l, r][l,r],如下图所示不难发现如果取的两个点的区间是有交集的,那么他们就是在同一条链上的(就不符合要求)。我们就可以维护一棵线段树,加入一个点就将其区间全部加1,如果总区间内的最大值大于1就说明现在的点集的区间是有交集的。所以线段树只需要维护区间最大值。如果加入一个点之后还是符合要求的,那么滑块长度就增长1,否则滑块原创 2021-08-08 00:10:39 · 299 阅读 · 0 评论 -
2021牛客暑期多校训练营6 H.Hopping Rabbit(扫描线)
题目链接:https://ac.nowcoder.com/acm/contest/11257/H分析每一行的全部扫描线都加入后,判断线段树总点的sum是否是小于d的,如果是则答案就在这一行中,递归去找答案即可。代码#include<bits/stdc++.h>using namespace std;//#define debug 1const int N=1e6+10;typedef long long LL;int lazy[N];struct node1{ i原创 2021-08-03 22:42:37 · 602 阅读 · 0 评论 -
兰州大学第一届『飞马杯』糖果魔法阵(扩展欧拉定理+光速幂+打表找规律)
题目链接:https://ac.nowcoder.com/acm/contest/16520/G分析看了pdf题解,感觉上面推的公式太难了太过复杂,可以通过打表的方式找出规律。对于这个更新糖果数的公式,我们写出它的前几项:915057325313715344828907141687199838216660350397265547160661331500004396611259045215093627135512626780185122846930913202258417原创 2021-05-31 20:32:34 · 290 阅读 · 0 评论 -
邮票收集问题整理
问题描述有n种类型的邮票,问将所有的类型的邮票全部收集起来所要的收集次数期望是多少。分析我们可以设dp[i]为已经收集了i种类型的票,还要收集n-i种的次数的期望。那么显然dp[n]=0;递推式子有:dp[i]=dp[i+1]∗(n−i)/n+dp[i]∗i/n+1dp[i]=dp[i+1]∗(n−i)/n+dp[i]∗i/n+1化简可得dp[i]=dp[i+1]+n/(n−i)dp[i]=dp[i+1]+n/(n−i)再化简,公式就很显然了。dp[0]=n(1/n+1/(n−1)+…+1原创 2021-04-08 15:41:42 · 912 阅读 · 0 评论 -
(2021 ICPC)亚洲区域赛(昆明)J.Parallel Sort(思维)
题目链接:https://ac.nowcoder.com/acm/contest/12548/J分析数字所要去的位置会形成一个循环关系,如 2 3 4 1 ,会形成如下的循环关系:2 要到 3 的位置,3 要到 4 的位置 4 要到 1 的位置:我们如果将其进行对称交换,会发现下一轮只要再换一次就可以有序。所以最多只要进行两轮交换。代码#include<bits/stdc++.h>using namespace std;int n,cnt;int a[100005];v原创 2021-04-05 11:31:15 · 1738 阅读 · 0 评论 -
(2021 ICPC)亚洲区域赛(昆明)I.Mr. Main and Windmills
题目链接:https://ac.nowcoder.com/acm/contest/12548/I分析直线用 y = kx + b 来存,直接算交点看是否在线段上,然后根据交点和起点的距离排序即可。注意计算公式,比赛中因为公式抄错就没过,后来检查了半天才发现代码#include<bits/stdc++.h>using namespace std;typedef long double ld;int n,q;const ld eps = 1e-6;const ld INF =原创 2021-04-04 18:53:23 · 3138 阅读 · 2 评论 -
2021牛客寒假算法基础集训营5 D.石子游戏(差分)
题目链接:https://ac.nowcoder.com/acm/contest/9985/D分析通过原数据处理出差分数组,从左往右,如果其中一个不为零,则说明需要进行增加操作:如果小于零:则该位置向右 k 个要进行加操作,如果右边不足 k 个,则不符合要求;如果大于零:则前面所有的都要进行加操作,如果前面的不能被 k 整除,或不足 k 个,则不符合要求。代码#include<bits/stdc++.h>using namespace std;typedef long lon原创 2021-02-22 23:09:08 · 343 阅读 · 0 评论 -
2021牛客寒假算法基础集训营4 B.武辰延的字符串(二分+哈希)
题目连接:https://ac.nowcoder.com/acm/contest/9984/B分析如果 s 串和 t 串从第一位到第 x 位是相同的,那么再看 t 串从 x + 1 位开始和 s 串的前缀最多有多少相同长度,那么 ans 就可以加上多少。比较字符串我们可以用哈希值来做,查找最长的相同长度可以用二分法。代码#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned原创 2021-02-20 14:18:37 · 146 阅读 · 0 评论 -
2021牛客寒假算法基础集训营3 E.买礼物(线段树)
题目连接:https://ac.nowcoder.com/acm/contest/9983/E分析我们用线段树维护一个数组 chushi[i] 表示 i 位置上的数在 i 位置以前第一个出现的位置。判断 L 和 R 区间内是否出现重复的数,我们只要看 chushi 数组在该区间内的最大值 x ,若 x >= L,则说明有重复的数。注意,我们拿走一个位置上的数后,还要修改和这个位置上的数相等的下一个数的 chushi 数组的值。代码#include<bits/stdc++.h>原创 2021-02-05 18:39:06 · 178 阅读 · 0 评论 -
2021牛客寒假算法基础集训营1 A.串(组合)
题目链接:https://ac.nowcoder.com/acm/contest/9981/A分析经过推演,我们可以得出:n = 2, ans = 1n = 3, ans = 26 * 1 + 25 * 2n = 4, ans = 26 * 26 * 1 + 25 * 26 * 2 + 25 * 25 * 3n = 5, ans = 26 * 26 * 26 * 1 + 25 * 26 * 26 * 2 + 25 * 25 * 26 * 3 + 25 * 25 * 25 * 4…所以我们原创 2021-02-02 21:02:11 · 224 阅读 · 0 评论 -
牛客2020跨年场 D.衔尾蛇(枚举 字符串全排列)
题目链接:https://ac.nowcoder.com/acm/contest/9854/D题目描述光、对立和小红三个人在玩捉蛇游戏。已知蛇有三种:红蛇、蓝蛇和绿蛇。蛇可以咬住自己的尾巴,形成衔尾蛇。每条蛇可以咬住自己的尾巴,也可以咬住别的蛇的尾巴。一共有 a 条红蛇, b 条蓝蛇, c 条绿蛇。她们想知道一共可以形成多少种不同的衔尾蛇的环?注:蛇可以不用全部用完。输入描述:一行三个非负整数: a 、 b 和 c输出描述:一个整数,为方案的数量。输入1 1 1输出8分析原创 2021-01-18 18:00:44 · 299 阅读 · 0 评论 -
2020牛客国庆集训派对day2 B.CHEAP DELIVERIES(状态压缩dp + dijkstra)
题目链接:https://ac.nowcoder.com/acm/contest/7818/B示例输入5 5 3 1 2 1 2 3 2 3 4 3 4 5 4 5 2 4 2 3 1 2 5 3 输出12分析题目可以简化为有 k 条路,每条都要按规定走过。我们可以想到,每条路要走到别的路肯定是从该路的结束点到其他路的开始点, k 最大18,那么我们可以给每条路按照这样的规则连边,然后用状态压缩来得到答案。代码#include<bits/stdc++.h>原创 2020-12-23 23:14:10 · 363 阅读 · 0 评论 -
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)F.Fireworks(概率+三分)
分析这题是一道几何分布的问题,百度对于几何分布的解释:做一个完美烟花的概率为 p ,我们可以算出 x 个烟花中含有完美的烟花的概率为 (1 - (1 - p)x) ,则做出烟花个数的期望就为 1 / (1 - (1 - p)x),那么做出完美烟花的花费的期望就是 (x * n + m) / (1 - (1 - p)x) ,这是一个凹函数,可以用三分找到答案。代码#include<bits/stdc++.h>using namespace std;int n,m,p;dou...原创 2020-12-22 22:15:42 · 478 阅读 · 1 评论 -
2020牛客国庆集训派对day1 E.Zeldain Garden(数论)
题目链接:https://ac.nowcoder.com/acm/contest/7817/E题目描述Boris is the chief executive officer of Rock Anywhere Transport (RAT) company which specializes in supporting music industry. In particular, they provide discount transport for many popular rock bands. T原创 2020-12-10 20:07:07 · 268 阅读 · 0 评论 -
2020牛客国庆集训派对day1 A.ABB (Manacher马拉车算法)
题目链接:https://ac.nowcoder.com/acm/contest/7817/A题目描述Fernando was hired by the University of Waterloo to finish a development project the university started some time ago. Outside the campus, the university wanted to build its representative bungalow stree原创 2020-12-10 19:46:27 · 600 阅读 · 0 评论 -
2020年广东工业大学第十届文远知行杯新生程序设计竞赛 A.肥猪的钢琴床(dp动态规划)
题目链接:https://ac.nowcoder.com/acm/contest/9692/A题目描述肥猪很喜欢睡懒觉,与此同时肥猪十分喜欢买各种各样神奇的床。今天肥猪买了一张很宽很宽的钢琴床,肥猪就在上面滚来滚去。这张钢琴床十分的有趣,因为它被分为n个部分,每一个部分是凸起来或者凹下去的,可是肥猪十分不喜欢相邻两个位置高低不同,因为他会滚不过去。肥猪从小就很喜欢这样的一句谚语:猪往高处走,水往低处流,所以肥猪很喜欢凸起来的部分而不喜欢凹下去的部分。现在肥猪可以把床中的某一些部分拿走,以让剩余部原创 2020-12-07 09:41:57 · 525 阅读 · 1 评论 -
“强智杯“2020年湖南省大学生计算机程序设计竞赛 H-矩形并
题目链接:https://ac.nowcoder.com/acm/contest/9699/H题目描述Bobo 有一个矩形A。举行的左下角坐标是 (x1, y1),右上角坐标是 (x2, y2)。设 R(i, j) 是左下角坐标是 (0, 0),右上角坐标是 (i, j) 的矩形,Area(i, j) 是矩形 A 和矩形 R(i, j) 的并的面积。给出 a 和 b,求\sum_{i=1}{a}\sum_{j=1}{b}Area(i,j)∑ i=1a ∑ j=1b Area(i,j)除以 (109原创 2020-12-03 21:06:15 · 692 阅读 · 0 评论