牛客每日一题
牛客里的每日一题
JayGram
这个作者很懒,什么都没留下…
展开
-
(牛客每日一题)NC20241:扫雷MINE(计数DP)
题意:扫雷游戏。但面积只有n行2列,第二列给出了数字,代表周围(仅限第一列中)有几个雷。在第一列中填雷,使得第一列中雷的数量满足第二列对应的数字。求有多少种摆放雷的方案数。题解:用dp来做。f[i][2][2][2],i代表第i个位置,三个2分别表示,i位置前面,i位置,i位置后面是否有雷,有雷就是1,无雷就是0。初始化:初始化第零个位置,当第一个位置雷数量为0时f[0][0][0][0]=1;当第一个位置雷数量为1时f[0][0][0][0]=f[0][0][0][1]=1;原创 2021-11-19 12:41:25 · 3135 阅读 · 0 评论 -
(牛客每日一题)NC25256:张老师的游戏
必胜态:a1^a2^...^an=x≠0;必败态:a1^a2^...^an=0;必胜态转必败态:假设x的最高位为第k位。那么至少存在一个ai的第k位也为1;则ai^x<ai;所以从ai中取走x-ai^x个石子,那么剩下ai^x个石子;所以a1^a2^...^ai^x^...^an=x^x=0;那么必胜态就转为了必败态了#include <bits/stdc++.h>using namespace std;int main(){ int n; wh原创 2021-11-11 18:42:16 · 1694 阅读 · 0 评论 -
(牛客每日一题)[SHOI2008]小约翰的游戏JOHN(Anti-Nim)
这是一道裸Anti-Nim游戏先手必胜条件(满足下面两个其中一个就行):*每一块石子的数量都为1,且总SG值为0时*至少有一块石子的数量大于1,且总SG值不为0时#include <bits/stdc++.h>using namespace std;int a[100];int main(){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); int t;cin>>.原创 2021-11-11 17:04:40 · 2387 阅读 · 0 评论 -
(牛客每日一题)[NOIP2017]棋盘--优先队列版广搜
我想从这道题开始展开对方向广搜各类题的总结;普通的方向广搜就用单纯的队列然后根据题目的方向去搜就行;但总有一些变形题在求最小值的时候,会限制或者是增加一些条件,使得一个点不能只单纯的遍历一次,或者说遍历玩这个点后还要进行折返之类的问题;比如说这道题,这道题明显的要用广搜来写,网上很多题解也都是用广搜,至于颜色变换的地方也只是对是否入队的判断罢了,不是什么大问题。关键的地方就在于一个点从不同方向的地方遍历过来得到的所用的金钱是不同的。但广搜的弊端就在于这个点如果被遍历后就不能再被遍历了,如果继续遍原创 2021-11-05 10:58:57 · 232 阅读 · 0 评论 -
(牛客每日一题)NC216041:GPA--动态规划
f[i][j]表示前i个课程中有j个课程能不哭的最小和之后在从n到0遍历一下,如果f[n][j]不为INF,那么说明这个地方有被赋值过,那么此时不哭的数量最大,直接break然后输出即可#include <bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int maxn=4005;int n;int a[maxn],b[maxn];int f[maxn][maxn];int main(){原创 2021-11-05 14:18:00 · 129 阅读 · 0 评论