首页 > 牛可乐的翻转游戏
头像 hnust_zhangshuai
发表于 2024-07-19 19:26:56
题目链接:https://ac.nowcoder.com/acm/problem/235250 题意:在一个棋盘上,每个格子摆放有一枚棋子,每一枚棋子的颜色要么是黑色,要么是白色。每次操作可以选择一枚棋子,将它的颜色翻转(黑变白,白变黑),同时将这枚棋子上下左右相邻的四枚棋子的颜色翻转(如果 展开全文
头像 ryuuko_
发表于 2025-02-22 00:29:50
还没讲完 先记录一下目前想法 她将灯的亮暗视为灯的两种状态 记为1,0 例如 一串灯的亮暗情况为: 1010,此时我给出一种按灯的方案(1记为按下开关,0相反) 1100,那么最终的结果应该是(1010)^(1100)^(1100 >> 1)^(1100 << 1) 这是因为 展开全文
头像 在刷题的单身狗很开心
发表于 2023-08-04 23:08:51
//采用了大佬的题解,由于移动某一枚棋子上下左右中,上只有一个,所以将当前行作为上一定能移动到想要的效果。 //但是这样的话虽然合理,但是对于第一行没有进行任何的移动,这样会失去一些情况导致失败。所以将第一行上面再加一行 //从而让第一行有枚举移动的可能性,所以对于新加的第一行需要通过状态压缩DP使 展开全文
头像 BawiFox
发表于 2022-05-21 14:36:20
//因为每次翻转只影响了上一行的一个格子,所以对于已知的前i行的状态,翻转至我们想要的状态所需要的步数是固定的, //所以只需枚举第一行的所有状态, 递推即可;  #include<bits/stdc++.h> #define ll long long #define ull 展开全文
头像 zzhaire
发表于 2025-02-26 10:35:47
思路 这个题感觉只能枚举所有的翻转模式 但是这样明显会超时, 有 然后想了想,其实可以只枚举第一行的所有状态 然后找到一个不会影响前面行的翻转模式, 记录最少的翻转次数即可 N * M = 100 * 10 , 刚好 时间复杂度 翻转模式 : 对于上一行, 没有到位的棋子 , 逐个翻转下一行 , 展开全文

等你来战

查看全部