2023.3.19 AM 10:20 by CBJ

排列枚舉
//C++ language
#include<iostream>
#include<vector>
#include<algorithm> //next_permutation()
#include<numeric> //iota()
using namespace std;
int main(){
int n,k; cin>>n>>k;
int cost[10][10];
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>cost[i][j];
vector<int>a(n); iota(a.begin(),a.end(),1);
int ans=0;
do{
if(a[0]>1) break;
int cnt=cost[a[n-1]][1];
for(int i=1;i<n;i++) cnt+=cost[a[i]][a[i-1]];
if(cnt==k) ans++;
}while(next_permutation(a.begin(),a.end()));
cout<<ans<<"\n";
return 0;
}

發佈留言