
Nowcoder
ACgay_caoyue
菜鸡*CPCer
展开
-
【牛客小白月赛31 D.坐标计数】暴力观察法
题目链接看到题目,十分浓厚的数论色彩,在纸上画了画,发现没啥思路。于是看了题解,发现了一个精妙绝伦的操作:暴力观察#include <cstdio>#include <cstdlib>#include <algorithm>#include <string>#include <cmath>using namespace std;const int maxn = 1e5+7;int check(int x,int y,in原创 2021-02-27 16:07:32 · 168 阅读 · 0 评论 -
【题解】2018牛客国庆集训派对Day1 J-Princess Principal 括号匹配
题目在这里是一个多次询问的括号匹配问题。如果是平常的括号匹配,我们显然只需要放在栈里面模拟一下就行了。(如果不知道括号匹配怎么做,建议去网上学习一下)然而这题有多次询问,我们就不能每一次都放进栈里面模拟一下。那么这题应该怎么做呢?我们考虑一下,在一个序列中,如果有一段序列是合法的,那么我们就可以把这一段序列从整个序列中删除掉。所以我们只需要将原本序列从头到尾放进栈里面,将匹配的部分删掉,...原创 2019-02-28 08:50:16 · 214 阅读 · 0 评论 -
【题解】2018牛客国庆集训Day1 I-Steins;Gate命运之门 原根+FFT
题目链接在这里题意很简单,就是求有多少组<i,j>,满足 (a[i]*a[j]) mod p = a[k]怎么求呢?暴力求肯定是O(n2)的,所以就不要想啦。通过观察我们可以发现,题目中模数P比较小,那么我们就可以把序列控制在P之内。但是怎么控制呢?这就要引出一个东西,叫做原根详情请移步这里初步了解了原根之后,我们就求出P的原根g,然后我们就可以把原序列(a[i]...原创 2019-02-28 21:18:14 · 379 阅读 · 0 评论 -
【题解】2018wannafly summer camp Day2 | 2018牛客国庆集训Day1 D-Love Live! 01字典树+并查集+启发式合并
题目链接在这里题意比较简单,就不赘述了。我们直入主题:首先我们按边权从小到大排序,这样我们每次取的边权一定是最大的限制的那一个。然后我们需要在已经合并好的联通块(合并好的联通块里面的边权都是小于当前边权的,所以满足条件)里面找出异或和最大值。考虑使用01Trie树,我们在一颗Trie里面不断更新最大值,然后输出。并将树合并在一起。由于数据范围较大,我们考虑启发式合并,我们在较大的Trie...原创 2019-03-02 10:50:55 · 322 阅读 · 0 评论 -
【题解】牛客寒假基础算法训练营5 C 炫酷迷宫
题目链接在这里鉴于有的读者可能看不到题目,这里我就复述一下,具体就是如果构造一个n*m的矩阵,使得从某两个点之间的最短距离为k。障碍用’x’表示,路用’.'表示。怎么做呢,可以看出来,这又是一个构造的题目。在矩阵里面,我们可以感受一下,曲折的路线是最长的,所以我们就构造曲折的路径,然后在构造好的图上跑一下bfs求一下距离为k的点在哪,输出就好啦!至于为什么曲折的路线就是最长的, 还有没有...原创 2019-02-26 19:26:22 · 183 阅读 · 0 评论 -
【题解】牛客寒假基础算法训练营5 H 炫酷雪花
题目在这里这里就默认大家已经看过题目了(没看过题目谁会搜题解是吧)题目有两个约束条件(1.要求跳起来的次数最少。2.在跳起来最少的前提下,如果有多种方案,输出字典序最小)第一个很好求,我们贪心一下,将较大的减掉,直到a[i]的和小于等于k为止。我们就可以求出最小要跳几次。至于第二个,求字典序最小,然后数据只有5000,所以这个题目一看就很dp,至于怎么dp呢,马上就为大家解答。首先,由...原创 2019-02-27 09:09:30 · 245 阅读 · 0 评论