菜鸡只写银牌以下的题 这场铜牌4题,银牌5~6题 K Co-prime Permutation 题意: 构造一个n长的1到n不重复序列p,其中 p i p_i pi和 i i i互质的个数有k个 思路: 已知: n n n和 n − 1 n-1 n−1互质,1和任何数互质,任何数和它本身不互质 k要是奇数,1不变,后面的 k − 1 2 \frac{k-1}{2} 2k−1对数,两两换
好久没写树形DP手生疏了。 题意: 每个点权值为 h p [ x ] + h p [ v ] hp[x]+hp[v] hp[x]+hp[v],其中 v v v是 x x x的儿子。你可以删掉 m m m个点,求对于 0 ≤ m ≤ n 0≤m≤n 0≤m≤n的每个 m m m能得到的最小权值和。 思路: 定义 d p [ i ] [ j ] [ 0 / 1 ] dp[i][j][0/1] dp
最后是队友过的,我写的相对复杂 题意: 给一个移动的序列(L,R,U,D代表左右上下), 重排其使得移动的过程不会经过 ( X , Y ) (X,Y) (X,Y)。 设终点为 ( e x , e y ) (ex,ey) (ex,ey) 思路: 首先特判掉特殊点为终点或者为原点的情况, 分为两种情况: 特殊点不在坐标轴上,此时如果 e x = X ex=X ex=X,那么先用 L , R L,
题意: 构造一个排列,使得 g c d ( i , p i ) = 1 gcd(i,p_i)=1 gcd(i,pi)=1的 p i p_i pi数目严格为 k k k。 思路: 因为 1 1 1的存在,所以 k k k一定不会是0。 因为 g c d ( x , x + 1 ) = 1 gcd(x,x+1)=1 gcd(x,x+1)=1,所以只需要交换相邻两个数就可以使得结果加2。 当 k
康复训练,水水代码证明我还活着。 思路: 可以发现斐波那契数列数列是奇奇偶、奇奇偶这样排列的。 所以3个数分为一组,假设为 k k k组。 偶数和后面的数组合的 g g g值都为1。 第一个偶数有 n − 3 n-3 n−3个组合 第二个有 n − 3 ∗ 2 n-3*2 n−3∗2个组合 第三个有 n − 3 ∗ 3 n-3*3 n−3∗3个组合 。。。 直到最后一个有 n − 3 ∗ k
题目: 题目链接: 题解: 莫比乌斯反演 推导过程如下 ∑ i = 1 n ∑ j = 1 i F [ j ] [ g c d ( i , j ) = 1 ] \sum_{i=1}^{n}\sum_{j=1}^{i} {F[j][gcd(i,j)=1]} ∑i=1n∑j=1iF[j][gcd(i,j)=1] 可以转化为 ∑ i = 1 n F [ i ] ∑ j = i n g
链接:https://ac.nowcoder.com/acm/contest/7501 来源:牛客网 D-Router Mesh 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld judge:牛客竞赛 In a Mesh networking system, there are n n
题目链接:https://ac.nowcoder.com/acm/contest/7501/D tarjan的割点算法可以参考博文:https://blog.csdn.net/csyifanZhang/article/details/105370924 分析 求一个图去掉第 i 个点后的连通块数量 分析 对于每个点,首先总共有 sum 个连通块,求出每个点所在的强连通分量的个数
题目链接:https://ac.nowcoder.com/acm/contest/9541/J 题目描述 Given a matrix M_{}M of size n\times mn×m and two integers a, b_{}a,b , determine weither it is possible to make all entrys of M_{}M zero by repea
题意: 有 n 座城市,m 条双向道路,一条道路要走一天,每条道路的费用是 items ^ days ( items 是所携带的物品数量, days 是第几天),现在查询q次,(1-1e5)然后给你一个出发城市 S ,目的地城市 T ,预算 B ,问最多能携带多少物品。 思路: Floyd预处理每个点之间的最短路,因为长度不大所以可以跑,n^3的复杂度,然后接下来二分枚举答案,输出最优解,求
2020ICPC银川(A E G J K) 2020ICPC银川 A. Best Player(模拟) 在某一维方向上无法区分的点显然另两维坐标相同 , 那么在当前维度上能区分的点个数就是本质不同的另两维坐标组成的点对的个数 , 用set维护一下即可。 #include<bits/stdc++.h>using namespace std;#define fi first#define