dfs求调
  • 板块P8365 [LNOI2022] 吃
  • 楼主cgxd
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/14 15:47
  • 上次更新2024/7/14 17:01:40
查看原帖
dfs求调
1272259
cgxd楼主2024/7/14 15:47
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 1e9 + 7, maxn = 5e5 + 5;
int n, ans = 1;
vector<int> a(1), b(1);
bitset<maxn> vis;
void dfs(int x, int tot, int k){
	int tmp = max(k * a[x], k + b[x]) % mod;
	if(vis[x])
		return;
	if(tot == n){
		ans = max(ans, tmp);
		return;
	}vis.set(x);
	for(int i = 1; i <= n; ++i)
		dfs(i, tot + 1, tmp);
	vis.reset(x);
}signed main(){
	scanf("%lld", &n);
	for(int i = 1; i <= n; ++i){
		int k;
		scanf("%lld", &k);
		a.push_back(k);
	}for(int i = 1; i <= n; ++i){
		int k;
		scanf("%lld", &k);
		b.push_back(k);
	}dfs(0, 0, 1);
	printf("%lld", ans);
	return 0;
}
2024/7/14 15:47
加载中...