社区讨论

状压80分——WA on #1,#10,求调

P1278单词游戏参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mliwum8s
此快照首次捕获于
2026/02/12 11:40
3 周前
此快照最后确认于
2026/02/12 13:25
3 周前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n;
string a[20];
int dp[(1<<17)][20];
int ans=0;
int main() {
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
		dp[(1<<i)][i]=a[i].size();
		ans=max(ans,(int)a[i].size());
	}
	for(int s=1;s<(1<<n)-1;s++){
		for(int i=0;i<n;i++){
			if(s&(1<<i)){
				for(int k=0;k<n;k++){
					if(i!=k&&s&(1<<k)&&a[k][a[k].size()-1]==a[i][0]){
						dp[s][i]=max(dp[s][i],dp[s^(1<<i)][k]+(int)a[i].size());
					}
				}
				ans=max(ans,dp[s][i]);
			}
		}
	}
	cout<<ans;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...