[COCI2008-2009#2] PERKET
题目链接 https://www.luogu.com.cn/problem/P2036
是一道简单的bfs,没有什么可说的叭
一开始想用暴力,然后发现不会(Um......
数据范围也小,反正bfs不会超时嘛
放AC代码
1 #include<bits/stdc++.h>//令人快乐的万能头欸 2 using namespace std; 3 long long int s[12],t[12],f[12];//s酸度,t苦度,f记录是否会被查找 4 long long int a=1,b=0,ans=9999999999,n;//ans记录最小值 5 int dfs(int x) 6 { 7 if(x>n)//大于n种不做操作 8 {} 9 else 10 { 11 for(int i=1;i<=n;i++) 12 { 13 if(f[i]==0)//如果第i个没有被查找过 14 { 15 a*=s[i]; 16 b+=t[i]; 17 ans=min(ans,abs(a-b)); 18 f[i]=1;//记录第i个被查找过 19 dfs(x+1); 20 f[i]=0;//取消记录 21 a/=s[i];//恢复初始状态(回溯) 22 b-=t[i]; 23 } 24 } 25 } 26 } 27 int main() 28 { 29 ios::sync_with_stdio(false); 30 cin>>n; 31 for(int i=1;i<=n;i++) 32 cin>>s[i]>>t[i]; 33 dfs(1); 34 cout<<ans; 35 }