题解【AcWing95】费解的开关

2021-03-20 02:23

阅读:325

标签:输入   数组   pen   getch   air   scan   注意   memcpy   c++   

题面

一道非常好的递推练习题。

我们考虑每次枚举第一行的操作,由上一行的状态递推出下一行的状态,最后判断最后一行是否全部为 \(1\) 即可。

实现代码时要注意一些细节问题。

#include 
#define DEBUG fprintf(stderr, "Passing [%s] line %d\n", __FUNCTION__, __LINE__)
#define itn int
#define gI gi

using namespace std;

typedef long long LL;
typedef pair  PII;
typedef pair  PIII;

inline int gi()
{
    int f = 1, x = 0; char c = getchar();
    while (c  '9') {if (c == '-') f = -1; c = getchar();}
    while (c >= '0' && c  '9') {if (c == '-') f = -1; c = getchar();}
    while (c >= '0' && c = 0 && xx = 0 && yy > j & 1) //如果第 j 号灯需要翻转
            {
                ++sum; //操作一次
                get(0, j); //将第 j 号灯翻转
            }
        }
        for (int i = 0; i  6) return -1; //不能在 6 步以内达到目标状态
    return ans; //返回答案
}

int main()
{
    //freopen(".in", "r", stdin);
    //freopen(".out", "w", stdout);
    int t = gi(); //多组数据输入数据总数
    while (t--)
    {
        for (int i = 0; i 

题解【AcWing95】费解的开关

标签:输入   数组   pen   getch   air   scan   注意   memcpy   c++   

原文地址:https://www.cnblogs.com/xsl19/p/12311946.html


评论


亲,登录后才可以留言!