社区讨论
80分代码求调
P1037[NOIP 2002 普及组] 产生数参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mlkioxkv
- 此快照首次捕获于
- 2026/02/13 14:39 6 天前
- 此快照最后确认于
- 2026/02/16 12:55 3 天前
样例都对,主要思路就是bfs
CPP#include<iostream>
#include<queue>
#include<string>
using namespace std;
int g[10][10];
bool vis[10];
queue<int> q;
int bfs(char op){
for(int i=0;i<10;i++)
vis[i]=0;
while(q.size()){
q.pop();
}
long long res=1;
int now=op-'0';
q.push(now);
vis[now]=1;
while(q.size()){
int x=q.front();
q.pop();
for(int i=0;i<=9;i++){
if(g[x][i]==1&&!vis[i]){
q.push(i);
vis[i]=1;
res++;
}
}
}
return res;
}
int main(){
string st;
int k;
cin>>st>>k;
for(int i=1;i<=k;i++){
int a,b;
cin>>a>>b;
g[a][b]=1;
}
long long ans=1;
for(int i=0;i<st.size();i++){
ans*=bfs(st[i]);
}
cout<<ans;
return 0;
}
第五个测试点没过
回复
共 2 条回复,欢迎继续交流。
正在加载回复...