![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客
文章平均质量分 55
farer_yyh
ACM蒟蒻,苦逼大学生一只
展开
-
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)-J. Mr. Main and Windmills【计算几何初步】
题目链接(牛客重现赛)题意:给定一段路程(线段,起点S,终点T),在其一侧nnn个点,对其中任意两个点来说,在从S到T的过程中对二者进行观测,有可能会发生左右位置的互换(一开始pip_ipi在pjp_jpj左侧,后来pip_ipi在pjp_jpj右侧),现在给你mmm个询问:对于点hih_ihi,与其它点第kik_iki次发生观测位置互换时,其坐标如何,如果不存在,输出"-1"。(1≤n≤1000,1≤m≤1041\le n\le1000,1\le m\le10^41≤n≤1000,1≤m≤1原创 2021-04-08 11:41:28 · 220 阅读 · 0 评论 -
牛客练习赛67-C、牛牛爱博弈
题意:给定一堆石头,Frame和Alan轮流取石头,每次可以取1,2,22,23,...,2k1,2,2^2,2^3,...,2^k1,2,22,23,...,2k个,不能取的人输,问谁必胜。思路:打表,得到的表如下(0代表Frame,1代表Alan):nnnansansans11213041(可以转化为3 必败态给对手)51(可以转化为3 必败态给对手)6071(可以转化为6 必败态给对手)81(可以转化为6 必败态给对原创 2020-08-15 12:49:16 · 160 阅读 · 0 评论 -
牛客练习赛67-D、牛牛爱数列
题意:给定一01序列和两种操作:1.将单个字符翻转 2.将前x个字符翻转。问将序列全部变为0至少需要多少次操作 。思路:分别考虑将前i个字符全部变为1和全部变为0的最少操作次数dp[i][0]和dp[i][1],则状态转移方程如下:if (a[i]) { dp[i][0] = min(dp[i - 1][0], dp[i - 1][1]) + 1; dp[i][1] = min(dp[i - 1][1], dp[i - 1][0] + 1); } else {原创 2020-08-15 12:34:43 · 169 阅读 · 0 评论 -
牛客练习赛67-B、牛牛爱位运算
题目链接题意:给定一序列求字序列按位与之和的最大值。思路:利用a&b≤max(a,b)a\&b\le max(a,b)a&b≤max(a,b)可知,只需求得数组内最大值即可。代码:#include<cmath>#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<iomanip>#include<原创 2020-08-15 01:22:22 · 197 阅读 · 0 评论 -
牛客练习赛67-A、牛牛爱字符串
题目链接题意给定一个字符串,提取其中的数字并以空格分隔输出,字符串长度0≤len≤10000 \le len \le 10000≤len≤1000思路遍历一遍字符串,遇见连续数字存到一个vector<string>里,最后处理前导零即可。AC代码:#include<cmath>#include<cstdio>#include<vector>#include<queue>#include<cstring>#inclu原创 2020-08-14 22:31:18 · 140 阅读 · 0 评论 -
牛客算法周周练19-C、粉嘤花之恋【斐波那契数列求和、矩阵快速幂】
题目链接题意:花瓣以一定规律长出,而且,每次长成新的花瓣的时候,上一次的花瓣就会都落到地上,而且不会消失。花瓣生长的规律是,当次数大于等于2时,第i次长出来的花瓣个数和上一次长出来的花瓣个数的差是斐波那契数列的第i-1项。初始的时候地上没有花瓣,树上的花瓣个数为1,第一次生长的花瓣个数为1。初始的那个花瓣就落到了地上现在,小qn想知道,经过k次生长之后,树上和地上的总花瓣个数是多少?其实就是求斐波那契数列前k+1项和思路:需要了解斐波那契求和公式:∑i=1nF(i)=F(i+2)−1\sum\l原创 2020-08-13 01:58:37 · 199 阅读 · 0 评论 -
牛客算法周周练19-E、地、颜色、魔法【BFS】
题目链接题意:给定一个由'.','#'组成的n*m1≤n∗m≤1061 ≤ n *m ≤ 1061≤n∗m≤106网格,其中被'#'包围的全部可以变成'#',问你最后有多少个'#'。(和原题描述有点差别 不过就是这意思)思路:处理每一个网格显然很难判断,我们直接逆向思维,把和边界相连的'.'BFS标记一下即可。然后没有被标记的就是最后答案了。AC代码(第一次写这么长,其实可以简化不少的,不过一A还是挺好的):#include <bits/stdc++.h>#define ll long原创 2020-08-12 22:32:40 · 123 阅读 · 0 评论 -
牛客算法周周练19-A、神秘钥匙【快速幂】
题目链接题意:n个人选m1≤m≤n1\le m \le n1≤m≤n个人,再从中选一个队长,不同的队长是不同的组合,问总的组合方式的数量(模1e9+7)。思路:即求解∑i=1N(in)\sum\limits_{i=1}^N{\dbinom i n}i=1∑N(ni),容易得出公式:n∗2n−1n*2^{n-1}n∗2n−1,注意快速幂优化就行。AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;原创 2020-08-12 22:03:16 · 135 阅读 · 0 评论 -
2019牛客多校(第九场)B-Quadratic equation(二次剩余)
本题题意是问你给定两个系数 要求一元二次方程的两个解,但是给出的韦达定理的式子是取模的,这个地方令我苦恼,我看到的解决方法是利用欧拉准则 进行是否有二次剩余根的判断,具体的方法放一下代码 希望有人能指正帮助更加深入的理解:#include <bits/stdc++.h>#define ll long long#define minx(a,b) a<b?a:busing n...原创 2019-08-15 20:18:18 · 135 阅读 · 0 评论