A-meeting
题目链接:https://ac.nowcoder.com/acm/contest/884/A
题目大意:n个点的树。k个人分别在点Xk,求出所有人都到一个点的最短花费时间。
思路:将所有多余的树枝都砍掉,两次DFS。剩下的都是有用的。求剩下的这棵树的直径,因为直径上的两端点必定是最长的时间花费,因此两次DFS求出直径后,直接计算直径即可。
ACCode:
#include
#include
#include
#include
#include
// srand(unsigned)time(NULL));rand();
#include
B-xor
题目链接:https://ac.nowcoder.com/acm/contest/884/B
数论队友线性基:https://ac.nowcoder.com/acm/contest/884/B
C-sequence
题目链接:https://ac.nowcoder.com/acm/contest/884/C
题目大意:给出两个序列a,b,找出找出最大的值:1≤l≤r≤n max{min(al…r)×sum(bl…r)}
思路:有点类似上半年南昌邀请网络赛https://blog.csdn.net/qq_40482358/article/details/89422999
枚举最小的a[i],确定a[i]的最小区间范围。找到范围内的最大的前缀和和最小的前缀和即可。
a[i]的最小的范围可以用单调栈来维护,从前到后和从后到前分别维护单增的栈。
ACCode:
#include
#include
#include
#include
#include
// srand(unsigned)time(NULL));rand();
#include
D-triples I
题目链接:https://ac.nowcoder.com/acm/contest/884/D
数论队友:https://blog.csdn.net/henucm/article/details/97758303
E-triples II
题目链接:https://ac.nowcoder.com/acm/contest/884/E
数论队友:https://blog.csdn.net/henucm/article/details/102639665
J-free
题目链接:https://ac.nowcoder.com/acm/contest/884/J
题目大意:一个图,可以走k次近道。稳到达终点的最小花费。
思路:分层最短路板子题
ACCode:
#include
#include
#include
#include
#include
// srand(unsigned)time(NULL));rand();
#include
K-number
题目链接:https://ac.nowcoder.com/acm/contest/884/K
题目大意:给出一串数字,判断有多少个字符串是300的倍数。
思路:求出前缀之和%3的余数。求出对应的个数。从后向前遍历字符串,cnt表示连续0的个数。
当出现一个不为0的数时,判断该位前面有多少个相同的数(相同的数表示中间相差的有3的倍数)加上后面0的个数组成数量。
ACCode:
#include
#include
#include
#include
#include
// srand(unsigned)time(NULL));rand();
#include