题意 问题转化成, 有 \(N\) 堆石子, 博弈双方每次可以选择不超过 \(M\) 堆, 每堆取不超过 \(X\) 个, 总的取石子数至少为一. 问胜利方. 题解 对于单堆来说是一个巴什博弈, \(SG\) 值为石子数模 \(X+1\). 我们回忆 \(M=1\) 时的 \(Nim\) 博弈, 它 ...
分类:
其他好文 时间:
2020-10-05 21:47:14
阅读次数:
26
题意: 链接:https://ac.nowcoder.com/acm/contest/5158/I 思路:树状数组主要针对的是区间(而且是一条线段的)求和问题,所以需要利用dfs序和数组 in [ ], out [ ] (前缀和原理),利用dfs进行搜索,每个点依次被访问的顺序就是每个点的dfs序, ...
分类:
编程语言 时间:
2020-10-05 21:24:06
阅读次数:
36
题目链接 题意:给你n和m,令x为前m个素数,一共使用n个的乘积,例如n=3,m=2,则x=2*2*3或x=2*3*3,求所有Φ(x)的和。 思路:用到了欧拉函数的性质,首先对于x为素数,Φ(x)=x-1,然后若n*m=x,则Φ(n)*Φ(n)=Φ(x)。所以我们可以求出前500个素数,然后对其进行 ...
分类:
其他好文 时间:
2020-09-24 20:50:23
阅读次数:
36
E ZOJ - 4104 题意: 一个数列,每次操作可以将任意一个数提至数列最前端,问至少操作几次可以将数列变为非降数列? 题解: 可以观察到,任何数列,都可以通过最多n-1次操作变成非降数列,我们在建一个与原来数组一样的数组,从后往前考虑,如果这个数的位置正确,则跳过,如果不正确,那么这个数肯定要 ...
分类:
其他好文 时间:
2020-09-23 22:59:17
阅读次数:
88
根据题意,寻找子串出现的第k次的开头。寻找第k大,一般可以想到用主席树来维护。 但是这题还需要更多的转化,首先想到我们如果想知道子串匹配,一个可以考虑kmp,但是因为询问过多,不太科学。 一般还有两种,一种是哈希算法,一种是后缀数组求lcp。考虑哈希算法,感觉可做性不是很大,因为他要多次匹配。考虑后 ...
分类:
编程语言 时间:
2020-09-18 02:17:50
阅读次数:
44
Cotree 题意: 由N个点构成两棵树,问在两颗树之间连接一条边之后,各点之间距离和的最小值为多少 题解: 进行两次DFS找到两颗树的重心,将两个重心连接起来,再进行一次DFS求出距离和即可 #include <iostream> #include <map> #include <vector> ...
分类:
其他好文 时间:
2020-09-18 01:35:09
阅读次数:
30
比赛链接:https://atcoder.jp/contests/abc178/tasks A - not 题意 给出一个整数 $0 \le x \le 1$,如果 $x$ 是 $0$ 就输出 $1$,如果 $x$ 是 $1$ 就输出 $0$ 。 题解 输出 $x \oplus 1$ 或 $!x$ ...
分类:
其他好文 时间:
2020-09-18 01:08:34
阅读次数:
29
克隆图 LeetCode-133 使用一个map来存储已经遍历的结点,这个存起来的结点必须是新new的才符合题意 /* // Definition for a Node. class Node { public int val; public List<Node> neighbors; public ...
分类:
其他好文 时间:
2020-09-17 23:15:52
阅读次数:
29
题目链接:https://vjudge.net/problem/POJ-2182 题意:n头牛,身高为1到n的一个排列。已知每头牛前面比它矮的个数,求每头牛的身高 这题和习题里的poj2828基本一样。倒着考虑,如果最后一头牛前面有k1个比它矮,那么它的身高就是k1+1。倒数第二头如果有k2个比它矮 ...
分类:
其他好文 时间:
2020-09-17 23:12:01
阅读次数:
30
题意:给定n个数构建完全二叉树,输出完全二叉树的层序遍历 思路:二叉树的中序遍历建树即为输出 #include<cstdio> #include<queue> #include<vector> #include<algorithm> using namespace std; const int N ...
分类:
其他好文 时间:
2020-09-17 23:04:06
阅读次数:
30