专栏文章

题解:AT_nyc2015_11 チーム戦

AT_nyc2015_11题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miovyrlg
此快照首次捕获于
2025/12/03 02:02
3 个月前
此快照最后确认于
2025/12/03 02:02
3 个月前
查看原文
第一眼看数据范围 3n10003 \le n \le 1000,超小范围,加上 4s 超长限时,暴力秒了!

CODE:

CPP
#include<bits/stdc++.h>
using namespace std;
inline int C(n)
{
	return (n*(n-1)*(n-2)/6);
}
int main()
{
	int n;
	cin>>n;
	cout<<C(n)<<"\n";
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	for(int k=1;j<=n;j++)
	{
		if(i!=j&&i!=k&&j!=k)
		cout<<i<<" "<<j<<" "<<k<<"\n";
	}
	return 0;
}
其实也可以用 dfs\text{dfs}

Second Code:

CPP
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int k=3,a,r[4];
int n;
void print()
{
	for(int i=1;i<=k;i++)
		printf("%d ",r[i]);
	cout<<"\n";
}
int ans(int g)
{
    return (g*(g-1)*(g-2)/6);
}
void dfs(int top)
{
	if(top>k)
	{print();a++;return;}
	for(int i=r[top-1]+1;i<=n;i++)
	{
		r[top]=i;
		dfs(top+1);
	}
}
int main()
{
	cin>>n;
    cout<<ans(n)<<"\n";
	dfs(1);
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...