TLE求调
查看原帖
TLE求调
1268165
ManZhouJi楼主2024/10/25 14:38
#include<bits/stdc++.h>
using namespace std;
int n,m,point[352],card[122],points,max_points;//分别表示题目中的n,m,a,b,每种方案的分数以及最大的分数
bool use[122];
void dfs(int turtle,int x){//棋子现在所处的位置与剩余没被用过的牌数
	if(x==0){
		max_points=max(points,max_points);
		return;
	}
	for(int i=1;i<=m;i++){
		if(use[i]) continue;
		points+=point[card[i]+turtle];
		use[i]=1;
		dfs(turtle+card[i],x-1);
		points-=point[card[i]+turtle];
		use[i]=0;
	}
}
int main(){
    cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>point[i];
	}
	for(int i=1;i<=m;i++){
		cin>>card[i];
	}
	points+=point[1];
	dfs(1,m);
	cout<<max_points;
    return 0;
}
2024/10/25 14:38
加载中...