
牛客
文章平均质量分 55
yezzz.
这个作者很懒,什么都没留下…
展开
-
SPFA判负环板题
SPFA判负环原创 2022-07-24 15:14:29 · 321 阅读 · 0 评论 -
E Falfa with Substring
FFT 容斥 板题原创 2022-07-24 15:03:42 · 504 阅读 · 2 评论 -
Hot Water Pipe
妙妙题原创 2022-07-03 10:01:00 · 150 阅读 · 0 评论 -
超市(优先队列,区间动态变化)
超市优先队列,区间 l,rl,rl,r 动态选择的一些小技巧本题,就是随时间增加,g[i]g[i]g[i] 入队#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;const int N=1e5+5;struct node { int x,r,w; bool operator < (node b) co原创 2022-03-11 20:31:41 · 239 阅读 · 0 评论 -
2022牛客寒假算法基础集训营1
2022牛客寒假算法基础集训营1A.九小时九个人九扇门分析:要先发现一个特点:对于多个数的合并,先求和再求根,与先分别求根 再求根的和 的根,效果是一样的,举个栗子:17+23+79=119=2,8+5+7=20=2因此,先分别将n个数求取根,就变成n个1~9的数了然后就是类似01背包的动态转移dp[i][change(x+j)]+=dp[i−1][j]dp[i][change(x+j)]+=dp[i-1][j]dp[i][change(x+j)]+=dp[i−1][j]转换原创 2022-01-25 20:28:09 · 160 阅读 · 0 评论 -
K. 冒险公社 (线性DP)
K. 冒险公社题意:根据预测情况,求前 n 个岛最多的绿岛数分析:没有思路的情况下,先想了一下暴力,O(3n)O(3^n)O(3n) 显然超时暴力枚举所有情况,每次都会考虑n个岛的具体颜色但实际上,对于每次预判我们只需要考虑当前岛和其前两个岛的颜色即可所以,考虑线性DP,枚举每三个岛的情况,记录状态,再状态转移即可dp[i][y][z]dp[i][y][z]dp[i][y][z] 表示前 i 个岛,第i个岛颜色为z,第i-1个岛颜色为y的情况下,最多绿岛数,那么状态转移方程为,原创 2022-01-25 15:38:04 · 505 阅读 · 0 评论 -
牛客练习赛90
牛客练习赛90 寒冬信使分析:从后往前消去 111 ,记操作次数次数为奇数时,先手胜次数为偶数时,后手胜#include <bits/stdc++.h>using namespace std;const int N=1e5+5;long long a[N];char s[N];int len,tot;void dfs(){ while(s[len]=='0' && len>=1) len--; if(len>=1) {原创 2021-10-29 22:26:10 · 258 阅读 · 0 评论 -
牛客多校10 War of Inazuma (Easy Version) (n维超立方,亦或取反,关系迭代继承,二进制)
Train Wreck题意:题目描述的十分诡异,什么 nnn 维超立方体,就没看懂换一种我能理解的说法就是:一个 nnn 位的二进制数能表示 0−−2n−10--2^n-10−−2n−1 ,对于这 2n2^n2n 个数来说,每个单独拎出来与之相邻的有 nnn 个(相邻的定义:Two vertices are adjacent if and only if there exists exactly one different bit in their nnn-bit binary represe.原创 2021-08-17 12:47:09 · 159 阅读 · 0 评论 -
牛客多校1 Hash Function (FFT板子,FFT做加减运算,加减法转换乘法,思维,巧妙转换)
2021牛客暑期多校训练营1H. Hash Function题意: 给 n 个不同的数,求满足 hash值 没有冲突的最小取模数分析: 考虑若ai 和 aj 的模余相等,则 abs(ai - aj) % mo == 0 , 这样,问题就转换成了求所有的 abs(ai - aj) ,然后枚举取模数并检验(取模数至少为 n ,hash 的基本概念) 若暴力枚举所有的差值,是 n2n^2n2 算法,会超时,考虑要优化到 nlogn ,对于这种两个序列做运算的,能想到 FFT 优化,FFT原创 2021-08-10 09:08:59 · 267 阅读 · 0 评论 -
牛客多校8 OR(或与运算, 巧妙转换,读假题)
2021牛客暑期多校训练营8D. OR题意: b[i] = a[i-1] or a[i] , c[i] = a[i-1] + a[i] (i >= 2) , 现在给你序列 b 和 c, 求满足条件的序列 a 的数量 (大无语事件:此题很短,读题的时候很开心,一下就抓住了关键所在 b[i] = a[i] 或 b[i] = a[i-1], 然后求 a 序列中满足条件的元素的个数 … 我可真是个小天才 … 而且我还把样例解释通了 … 然后比赛的时候还和队友讨论,虽然队友提出了要按位处理,我原创 2021-08-09 19:32:12 · 213 阅读 · 2 评论 -
牛客多校8 Yet Another Problem About Pi (模拟,分类讨论)
2021牛客暑期多校训练营8K. Yet Another Problem About Pi题意: 求长度为 π\piπ 的路线最多经过几个区域分析: 可以走短的直边(贡献值为2)或斜边(对角线,贡献值为3)最初先判断主要走什么边走直边:最后要判断去掉一条直边是否足够一条斜边走斜边:最后要判断剩余的是否足够一条斜边,再判断去掉一条斜边是否足够两条直边#include<bits/stdc++.h>using namespace std;typedef原创 2021-08-09 17:28:05 · 166 阅读 · 0 评论 -
2021牛客暑期多校训练营7 (签到题)
2021牛客暑期多校训练营7H. xay loves count题意: 多少组合(i, j, k)使得ai * aj = ak , n <= 1e6分析: 将 n2n^2n2 优化一下,n∗n1/2n*n^{1/2}n∗n1/2#include<bits/stdc++.h>#define int long longusing namespace std;int a[1000005];signed main(){ int n, x; cin>&原创 2021-08-07 14:41:53 · 196 阅读 · 0 评论 -
Boxes (数学期望)
2021牛客暑期多校训练营5B. Boxes题意: 求数学期望,n 个箱子,每个箱子里有一个白球或黑球,打开第 i 个箱子的代价为 wi ,可以花费 c 元知道剩余箱子中黑白球的个数,问确定每个箱子中的球,代价的数学期望最小值。分析:首先 C 最多只用花一次,且可以在最开始花,所以有两种策略:直接全部打开,代价:Σwi将 wi 升序排序。先花 C 的代价,剩下的就相当于一个随机 01 序列从前往后开,开到一个 后缀全是同色的为止。总共有 $ x^2 $Code:#in原创 2021-08-01 10:55:40 · 257 阅读 · 0 评论 -
Maximal submatrix (悬线,单调栈)
2021“MINIEYE杯”中国大学生算法设计超级联赛(1) Maximal submatrix方法1悬线:由于题目是每一列一段区间,不好看,先把矩阵倒置变换在进行 行间变换时,条件是两者同时足a[i] [j] <= a[i] [j+1] && a[i-1] [j] <= a[i-1] [j+1]#include <bits/stdc++.h>using namespace std;const int N=2003;int n,m,a[N][N],h原创 2021-07-28 09:20:30 · 147 阅读 · 0 评论 -
Just a joke (博弈, 图的组成,性质)
2021牛客暑期多校训练营4F. Just a joke题意: n个点,m条边的无向图,两个操作:1. 可以删一条边 2. 删一个没有环的连通分量,最后不能操作的失败分析: 一个无环连通分量,边数+点数 = 2*n -1,是奇数,若该图仅有一个无环连通分量那必然是先手胜,一个有一个环的连通分量,要先将其删边使其成为没有环的连通分量, 还是边数+点数为奇数时先手胜。所以,对于整个图,边数+点数为奇数时先首胜。 一个图由若干连通分量组成(有环,无环)Code:#include &l原创 2021-07-27 19:20:13 · 306 阅读 · 0 评论 -
LCS (模拟,定论)
2021牛客暑期多校训练营4C. LCS分析: 三个串,每两个串之间都有公共子串,最优解决方案让三个共有的尽量多,所以先找到最小的LCS(), 再依次根据三个 lcs 添加字符。Code:#include <bits/stdc++.h>using namespace std;const int N = 1005;char st[N], sr[N], ss[N];signed main(){ int a, b, c, n; cin>>a>&原创 2021-07-27 19:18:17 · 132 阅读 · 0 评论 -
G Out of Sorts(二分, 优化)
G.G Out of Sorts题意: 给一组序列,问用二分查找每一个数,有多少数能查询成功 (n <= 1e6)思路: n 才1e6, 暴力枚举也才 nlognCode:#include <bits/stdc++.h>#define int long longusing namespace std;const int N=1000005;int x[N], ans;signed main(){ int n,m,a,c; cin>&原创 2021-07-25 17:58:42 · 187 阅读 · 0 评论 -
2019 East Central North America
2019 East Central North AmericaA. A Retribution! 没什么东西,阅读理解题,枚举所有边,选取打标记 (nm + np)Code:#include <bits/stdc++.h>using namespace std;const int N = 1000 + 10;struct point{ double x, y; }judge[N], tar[N], store[N];double dist(double xa,double y原创 2021-07-25 17:51:27 · 231 阅读 · 0 评论 -
Counting Triangles(逆向思维)2021牛客暑期多校训练营3
J. Counting Triangles题意: (a, b, c) (a < b < c),(a, b), (b, c), (c, a) 三边同时为true or false 计数++复盘: a -> b -> c -> a , 形成了一个三角形,首先肯定能想到 n 三次暴力枚举,必然超时,想半天也没什么思路,经队友提醒,首先是无向图(一直拿有向图去写),然后三角形的三边情况就四种,全1,全0,两1,两0。三角形总个数为Cn取3,去算不计数的个数,不计数的个数为原创 2021-07-24 21:23:58 · 228 阅读 · 0 评论 -
Black and white(巧妙转换,思维,最小生成树)2021牛客暑期多校训练营3
2021牛客暑期多校训练营3B. Black and white题意: 给一个矩阵,根据游戏规则去涂色,让求最小权值和。复盘: 要求权值和最小,即使要涂色的格子数最小,根据规则较容易推出对于 n*m 的矩阵,需要 n+m-1 格子涂色,分别是每行对应一个格子,每列对应一个格子,减去重复的一个(例如:将第一列和第一行先涂色,n+m-1 个格子,那么剩下格子都会免费被涂色) 比赛时推出 n+m-1 这个结论就十分happy,直接去打了一个先遍历选出每一行的最小值(并打上标记),再在剩下的遍历去原创 2021-07-24 20:52:39 · 272 阅读 · 1 评论 -
UCF Local Programming Contest Round 1A
UCF Local Programming Contest Round 1AC. Unique Values思路: 从第i个开始向后查找,查找与第i个相同的元素停止,则第i个元素的贡献值即为 r-i ,再将 mp[a[i]] 清零,最外重遍历一遍即可。Code:#include<bits/stdc++.h>#define int long longusing namespace std;const int N=1e5+10;int a[N];map <int ,in原创 2021-07-23 21:26:14 · 140 阅读 · 0 评论