社区讨论
test
P2040打开所有的灯参与者 16已保存回复 16
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 16 条
- 当前快照
- 1 份
- 快照标识符
- @mk97vb0a
- 此快照首次捕获于
- 2026/01/11 12:11 上个月
- 此快照最后确认于
- 2026/01/11 12:30 上个月
CPP
#include<bits/stdc++.h>
using namespace std;
int d[10]={0,11,23,38,89,186,308,200,464,416};
struct data {int s,k;} w;//s状态,k达该状态点灯次数
queue <data> q;
int main()
{
int s=0,x;
for(int i=1;i<=9;i++){cin>>x;s=s*2+x;}//初始状态
w.s=s;w.k=1;
q.push(w);//初始状态进队
while(!q.empty())
{
w=q.front();q.pop();//队首出队
int s1=w.s;
int k=w.k;
for(int i=1;i<=9;i++)//尝试9个点灯格子
{
s=s1^d[i];//点灯操作
if(s==511){cout<<k;return 0;}//到达目标状态
w.s=s;
w.k=k+1;
q.push(w);//进队继续搜索
}
}
return 0;
}
回复
共 16 条回复,欢迎继续交流。
正在加载回复...