AT_arc212_a [ARC212A] Four TSP Solution(附带启发式)
hard_shuati · · 算法·理论
启发式版本
依旧 ARC T1 放水。
明显可以走“先暴力,然后优化”的路线。
注意到顶点数为
设图上四个点从左上开始依次为
则很明显,只有
-
A \to B \to D \to C \to A -
A \to B \to C \to D \to A -
A \to C \to B \to D \to A
注意到可以合并对边
因此,其实只需要枚举前
注意取
时间复杂度
:::info[参考代码]
#include<bits/stdc++.h>
using namespace std;
typedef long long li;
const int moi=998244353;
int h(int x, int y) {
return (x%moi+y%moi)%moi;
}
int g(int x, int y) {
return ((x%moi-y%moi)%moi+moi)%moi;
}
int f(int x, int y) {
return (((1ll*x)%moi)*(y%moi))%moi;
}
int ans;
int main() {
int n;
cin >> n;
int lm=n/3;
for(int k1=2; k1<=lm; k1++) {
int ly=((n-k1)>>1);
for(int k2=k1; k2<=ly; k2++) {
int ci=1;
int cnt=0;
if(k1^k2) cnt++;
if(k1^(n-k1-k2)) cnt++;
if((n-k1-k2)^k2) cnt++;
if(cnt>2) ci=6;
else if(cnt) ci=3;
ans=h(ans, f(f(f(k1-1, k2-1), f(n-k1-k2-1, ci)), k1+k2));
}
}
cout << ans;
return 0;
}
//咕咕咕!
:::
:::info[以此祭我的这篇题解]
专栏文章审核结果
2026-04-28 07:00
很遗憾,您的《题解:AT_arc212_a [ARC212A] Four TSP》不符合推荐标准。原因是:同一个数学公式应写在一个 LaTeX 环境内,不应分开写,例如
专栏文章审核结果 2026-04-25 10:20 很遗憾,您的《题解:AT_arc212_a [ARC212A] Four TSP》不符合推荐标准。原因是:滥用折叠框。
专栏文章审核结果 2026-04-24 20:25 很遗憾,您的《题解:AT_arc212_a [ARC212A] Four TSP》不符合推荐标准。原因是:则上请不要在数学公式中加中文,变量条件请定义英文变量、逻辑条件请使用集合符号。。|审核管理员:happy_zero,对审核结果有疑问请私信交流。
:::