传送门:All with Pairs 题意:给你n个字符串,求出,f(si,sj)的意思是字符串 si 的前缀和字符串 sj 后缀最长相等部分. 题解:先对所有的字符串后缀hash,用map记录每个hash值(后缀)有多少个一样的.这个地方后缀的 hash 值可以将字符串倒过来求,每次乘以base^ i ,这和字符串正着求每次 t=t *base + s 是一样的,可以想象一下,前后缀相同位置乘base的次数是一样的.然后遍历所有的前缀的hash,在map里找当前 hash 值出现的次数的记录下…
传送门:Fake Maxpooling 题意:给出矩阵的行数n和列数m,矩阵 Aij = lcm( i , j ) ,求每个大小为k*k的子矩阵的最大值的和. 题解:如果暴力求解肯定会t,所以要智取.前几天刷蓝书的时候看到这种求区间最值的可以用单调队列,这个题就是用单调队列求解.先横着算一下每个长度为k的区间的最大值记录下来,然后再把记录下来的数组竖着同样算一下,最后求和.求最小公倍数的时候,不能用__gcd(),会 t 的.这个题的矩阵不会超long long ,所以用 int 就好了,不然…
传送门:Kabaleo Lite 题意 有n道菜,1≤n≤105,a[i]是每道菜可以赚的钱,−109≤ ai ≤109,b[i]是这道菜的个数,1≤bi≤105,你每次只能选从1开始连续的菜,然后问最多有多少顾客,并且顾客最多的前提下赚的钱最多是多少. 题解 这个题的重点在于会用__int128,我都没见过,好菜呜呜. 从数据可以看出,爆long long了,一开始没发现,和队友疯狂wa,然后还是不会负数的大数,赛后发现可以用__int128,__int128的用法见:https://blog…
BCFH B. Basic God Problem 题意 给出c和n,求fc(n). 题解 递归到最后 fc 函数肯定等于1,那么就变成了求c被乘了几次,只要找到 x 最多能被分解成多少个数相乘就好了.预处理用线性筛求出每个数最多能被分解成多少个数相乘,快速幂求出解. 代码 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define pb push_back 4 #define ft first 5 #define sd second…
传送门:Game SET 题意 一套牌有四种属性,每种属性都有三种特征,shapes (one, two, or three), shape (diamond, squiggle, or oval), shading (solid, striped, or open), color (red, green, or purple),如果是*,可以选任意一种.给出n套牌,每套牌给出[<number>][<shape>][<shading>][<color>],…
传送门 J-Counting Triangles_2021牛客暑期多校训练营3 (nowcoder.com) 题目 Goodeat finds an undirected complete graph with n vertices. Each edge of the graph is painted black or white. He wants you to help him find the number of triangles (a, b, c) (a < b < c), such…
链接:https://ac.nowcoder.com/acm/contest/882/F来源:牛客网 Given 2N people, you need to assign each of them into either red team or white team such that each team consists of exactly N people and the total competitive value is maximized. Total competitive va…
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 Two arrays u and v each with m distinct elements are called equivalent if and only if RMQ(u,l,r)=RMQ(v,l,r)RMQ(u,l,r)=RMQ(v,l,r) for all 1≤l≤r≤m1≤l≤r≤m where RMQ(w,l,r)RMQ(w,l,r) denotes the index of…