#include<bits/stdc++.h> using namespace std; string s; char sb[100001]; int sum,a[1000005]; long long cnt,ans; int main(){ cin>

沈泽宇  •  1年前


include<bits/stdc++.h>

using namespace std; string s; char sb[100001]; int sum,a[1000005]; long long cnt,ans; int main(){

cin>>s;
for(int i=0;i<s.size();i++){
	if(s[i]>='0'&&s[i]<='9') cnt=cnt*10+s[i]-'0';
	else{  
		sum++;
		a[sum]=cnt;
		sb[sum]=s[i];
		cnt=0;
	}
}
sum++;
a[sum]=cnt;
for(int i=1;i<=sum;i++){
	if(sb[i]=='*'){
		a[i+1]*=a[i];
		a[i+1]%=10000;
		a[i]=0;
	} 
}
for(int i=1;i<=sum;i++){
	ans+=a[i];
	ans%=10000;
} 
cout<<ans%10000;
return 0;

}


评论:

include <bits/stdc++.h>

using namespace std; int n,a[30][30],b[30],s=INT_MAX,ss; void dfs(int x,int y,int k,int v){

if(k>ss/(n-1)/2) return;
if(k>s) return;
if(a[x][y]==0) return;
if(v>=n/2){
	if(k<=s) s=k;
	return;
}
for(int i=x;i<=n;i++){
	for(int j=1;j<i;j++){
		if(b[i]==0&&b[j]==0){
			b[i]=b[j]=1;
			dfs(i,j,k+a[i][j],v+1);
			b[i]=b[j]=0;
		}
		
	}
}

} int main() {

scanf("%d",&n);
for(int i=1;i<=n;i++){
	for(int j=1;j<=n;j++){
		scanf("%d",&a[i][j]);
		ss+=a[i][j];
	}
}
dfs(2,1,0,0);
printf("%d\n",s);
return 0;

}


陈浩轩  •  1年前