社区讨论
这题用深度优先算法应该是最方便的了
P1008[NOIP 1998 普及组] 三连击参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi6y3glz
- 此快照首次捕获于
- 2025/11/20 12:42 4 个月前
- 此快照最后确认于
- 2025/11/20 12:42 4 个月前
#include<bits/stdc++.h>
using namespace std;
int a[10],book[10]={};
void dfs(int step)//深度优先结构,不多讲了
{
int i;
if(step==10)
{
if((a[1]*100+a[2]*10+a[3])*2==a[4]*100+a[5]*10+a[6]&&(a[1]*100+a[2]*10+a[3])*3==a[7]*100+a[8]*10+a[9])
printf("%d%d%d %d%d%d %d%d%d\n",a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
return;
}
for(i=1;i<=9;i++)
{
if(book[i]==0)
{
book[i]=1;
a[step]=i;
dfs(step+1);
book[i]=0;
}
}
return;
}
int main()
{
dfs(1);//直接调用函数
system("pause");
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...