问题 B: Equation------------------------枚举

题目描述
求方程 a1x1−a2x2+a3x3−a4x4+a5x5−a6x6=0在 xi∈[1,k]内有多少组正整数解。
输入
一行七个整数 k,a1,a2,a3,a4,a5,a6。
输出
一行一个整数,原方程有多少正整数解。
样例输入 Copy
10 -24 74 -25 22 -7 -22
样例输出 Copy
5
提示
对于100%的数据,1≤k≤600,−105≤ai≤105。

解析:
把式子转换一下
a1x1+a3x3+a5x5=a2x2+a4x4+a6x6

先预处理左边的,枚举左边的,用map记录答案出现的次数
再枚举右边,累加答案出现的次数

#include<bits/stdc++.h>
using namespace std;
int k,a1,a2,a3,a4,a5,a6;
map<int,int> v;
int main()
{
	cin>>k>>a1>>a2>>a3>>a4>>a5>>a6;
	for(int i=1;i<=k;i++)
		for(int j=1;j<=k;j++)
			for(int m=1;m<=k;m++)
			{
				int ans=a1*i+a3*j+a5*m;
				v[ans]++; 
			}
	int sum=0;
	for(int i=1;i<=k;i++)
		for(int j=1;j<=k;j++)
			for(int m=1;m<=k;m++)
			{
				int ans=a2*i+a4*j+a6*m;
				sum+=v[ans];
			}
	cout<<sum<<endl;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章