洛谷 P2036 [COCI2008-2009#2] PERKET
阿新 • • 發佈:2022-03-20
題目連結 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;//n記錄最小值 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 }