- [蓝桥杯 2017 省 AB] 包子凑数
12wa求助
- 2025-5-12 14:00:35 @
记忆化搜索
只有INF那个点a了
#include<iostream>
#include<algorithm>
using namespace std;
bool mem[5][10010];//mem[1][?]表示有没有访问过,mem[2][?]记录能不能凑出来
int cnt,n,a[114],gcd;
bool dfs(int n){
if(n<0) return 0;//负数绝对不行
if(mem[1][n]) return mem[2][n];//访问过,return
mem[1][n]=1;//没有,访问
if(n==0) return mem[2][n]=1;//0个,可以
for(int i=1;i<=n;i++){
if(dfs(n-a[i])) return mem[2][n]=1;//可以就return
else continue;//不行接着搜
}
return mem[2][n]=0;//燃尽了,真不行
}
int main(){
cin>>n;
cin>>a[1];
gcd=a[1];
for(int i=2;i<=n;i++){//判断inf
cin>>a[i];
gcd=__gcd(a[i],gcd);
}
if(gcd!=1){
cout<<"INF";
return 0;
}
for(int i=1;i<=10000;i++){//搜
if(!dfs(i)) cnt++;
}
cout<<cnt;
return 0;
}
1 comments
-
C24liukaiwen LV 3 @ 2025-5-14 13:27:30
你踏马若只吗你定义了两次n🤣
👍 1
- 1
Information
- ID
- 5957
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 191
- Accepted
- 8
- Uploaded By