[Loj]#6003. 「网络流 24 题」魔术球

我是直接用贪心跑的,但其实可以用网络流来跑。

对于网络流,通过分析可以得到,如果将i+j为完全平方数的i与j连上边。

那么每一根柱子就是一条路径,答案就是有n条路径的最小路径覆盖。

可以自己画图YY。

#include 
#include 
#include 
using namespace std;
const int N=65;
int n;
vector v[N];
inline bool pd(int x) 
{
	int root=floor(sqrt(x));
	return root*root==x;
}
int main() 
{
	scanf("%d",&n);
	int x=1;
	for (int k=1; k<=n; k++) 
	{
		while (1) 
		{
			bool flag=false;
			for (int i=0; i


你可能感兴趣的:(loj,网络流)