HDU 1226
그냥 BFS 면 돼.매번 여 수 를 보류 하고 무 게 를 판정 하 다.n = = 0 일 때 는 아버 지 를 너무 속 였 다.N 번 틀 렸 어.
다음은 AC 코드 입 니 다.
#include<iostream>
#include<queue>
#include<string>
using namespace std;
int n,c,m;
int a[20];
int flag;
bool visited[5100];
string ans;
struct node{
string ans;
int mod;
}now;
void bfs(){
queue<node >q;
int i;
for(i=1;i<16;i++){
if(a[i]){
visited[i%n]=1;
if(i<10){
now.ans=""; now.ans=i+'0'; now.mod=i%n; q.push(now);
}
else{
now.ans=""; now.ans='A'+i-10 ; now.mod=i%n; q.push(now);
}
}
}
while(!q.empty()){
now=q.front(); q.pop();
if(flag&&now.ans.size()>ans.size()) continue;
// cout<<now.ans<<endl;
if(now.mod==0){
if(!flag) ans=now.ans;
flag=1;
if(ans.size()>now.ans.size()||(ans.size()==now.ans.size()&&ans>now.ans)){
ans=now.ans;
}
}
for(i=0;i<16;i++){
if(a[i]){
if(i<10){
node next=now;
next.ans+=(i+'0');
next.mod=(now.mod*c+i)%n;
if((next.ans.size()<=500&&!visited[next.mod])||next.mod==0){
visited[next.mod]=1;
q.push(next);
}
}
else{
node next=now;
next.ans+=('A'+i-10);
next.mod=(now.mod*c+i)%n;
if((next.ans.size()<=500&&!visited[next.mod])||next.mod==0){
visited[next.mod]=1;
q.push(next);
}
}
}
}
}
}
int main(){
int t,i;
cin>>t;
while(t--){
char str;
scanf("%d%d%d",&n,&c,&m);
getchar();
memset(a,0,sizeof(a));
memset(visited,0,sizeof(visited));
for(i=0;i<m;i++) {
scanf("%c",&str);
if(str>='0'&&str<='9'){
a[str-'0']=1;
}
else{
a[str-'A'+10]=1;
}
getchar();
}
// for(i=0;i<=16;i++)
// if(a[i]==1)
// cout<<i<<endl;
flag=0; ans="";
if(n==0){
// cout<<0<<endl;
if(a[0]==1)
cout<<0<<endl;
else
cout<<"give me the bomb please"<<endl;
continue;
}
bfs();
if(flag){
cout<<ans<<endl;
}
else
cout<<"give me the bomb please"<<endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.