/ Randle /

记录详情

Wrong Answer

/in/foo.cc: In function 'int main()':
/in/foo.cc:25:21: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
  for(int s=0;s<(1<<n+2);s++) 
                    ~^~
# 状态 耗时 内存占用
#1 Wrong Answer 5ms 4.336 MiB
#2 Accepted 6ms 4.328 MiB
#3 Accepted 3ms 4.367 MiB
#4 Accepted 13ms 6.5 MiB
#5 Accepted 13ms 6.5 MiB
#6 Accepted 3ms 2.254 MiB
#7 Accepted 9ms 4.25 MiB
#8 Accepted 25ms 8.465 MiB
#9 Accepted 8ms 6.484 MiB
#10 Accepted 7ms 6.5 MiB

代码

#include<bits/stdc++.h>
using namespace std;
int cit[233][233],f[23][1<<17],v[23][23];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin>>n;
	for(int i=0;i<=n;i++){
		for(int j=0;j<=n;j++){
			cin>>cit[i][j];
		}
	}
	for(int k=0;k<=n;k++){
		for(int i=0;i<=n;i++){
			for(int j=0;j<=n;j++){
				if(i!=j&&j!=k&&i!=k){
					cit[i][j]=min(cit[i][j],cit[i][k]+cit[k][j]);
				}
			}
		}
	}
	int cust=(1<<(n+1))-1;
	
	for(int s=0;s<(1<<n+2);s++) 
	for(int i=0;i<n+2;i++)
	f[i][s]=0x7f7f7f7f;
	
	for(int i=0;i<n;i++){
		f[i][0]=cit[0][i];
	}
	for(int k=0;k<=cust;k++){
		for(int i=0;i<=n;i++){
			if(k&(1<<i)){
				continue;
			}
			for(int j=0;j<=n;j++){
				if(k&(1<<j)){
					f[i][k]=min(f[i][k],f[j][(1<<j)^k]+cit[j][i]);
				}
			}
		}
	}
	cout<<f[0][cust^1]<<endl;
	return 0;
} 

信息

递交者
类型
递交
题目
送外卖
题目数据
下载
语言
C++
递交时间
2018-09-03 17:39:30
评测时间
2018-09-03 17:39:30
评测机
分数
90
总耗时
97ms
峰值内存
8.465 MiB