題目描述
求方程 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;
}