容斥模板


容斥模板代码,



int solve()
{
	int ans = 0;		//是那四个数的倍数的数的数量 
	for (int i = 1 ; i < (1<<4) ; i++)		//选数 
	{
		int ant = 0;		//选中数的数量 
		int k = 1;		//记录选中数字的乘积 
		for (int j = 0 ; j < 4 ; j++)
		{
			if (i & (1<<j))		//检测第j个数有没有被选中 
			{
				ant++;
				k *= num[j];
			}
		}
		if (ant & 1)		//ant % 2 == 1  表示奇数 
			ans += n / k;
		else
			ans -= n / k;
	}
	return ans;
}


posted @ 2017-07-30 21:01  岩扉  阅读(214)  评论(0编辑  收藏  举报