基本思路 貪心 既然要求最小代價,當用一定順序刪除時代價一定最小,不難發現,每次都刪去x,y中最小的,最後的總代價業一定最小! 因此就可以寫出下麵的簡單的代碼 代碼 是不是很簡單呢? ...
基本思路---貪心
既然要求最小代價,當用一定順序刪除時代價一定最小,不難發現,每次都刪去x,y中最小的,最後的總代價業一定最小! 因此就可以寫出下麵的簡單的代碼
代碼
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm>//頭文件 4 using namespace std; 5 int n,m,val[1025]/*權值*/,ans,x,y; 6 int main() 7 { 8 cin>>n>>m; 9 for(register int i=1;i<=n;i++) 10 cin>>val[i]; //輸入 11 while(m--) 12 { 13 cin>>x>>y; 14 ans+=min(val[x],val[y]); //每步求最小 15 } 16 cout<<ans<<endl; 17 return 0; 18 }
是不是很簡單呢?