题目链接
题意:给定一个n和s。其中,判断s+1到s+n是否存在一种匹配和1到n,两个数匹配是当前者中的数可以整除后者的数。
思路:有一个优化,若有重叠的部分,则重叠的互相抵消。(易正明,若1到n中的n不和s+1到s+n中的n匹配,则他不能其他的数匹配的),然后另一个优化也就来了,如果大的数中存在两个质数,那肯定不存在匹配。而10的9次内的素数差很小,用一个匈牙利算法匹配一下就好了。
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int vis[1111];
int sa;
int x,y,z;
/**匈牙利算