TLE求调
查看原帖
TLE求调
1268165
ManZhouJi楼主2024/10/25 14:35
#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:35
加载中...