码迷,mamicode.com
首页 > 其他好文 > 详细

「LYOI2016 Summer」Equation 题解

时间:2017-10-13 20:15:32      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:oid   描述   vertica   get   segment   格式   etc   ica   getch   

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。

题目链接:https://ly.men.ci/problem/43

题目描述

求方程 a1*x1−a2*x2+a3*x3−a4*x4+a5*x5−a6*x6=0的解的个数,x∈(0,k],k<=6001()()??x?1??a?2??x?2??+a?3??x?3??a?4??x?4??+a?5??x?5??a?6??x?6??=0 在 xi∈[0,k] x_i \in [0, k] x?i??[0,k] 内有多少组正整数解。

输入格式

一行七个整数 k,a1,a2,a3,a4,a5,a61??,a?2??,a?3??,a?4??,a?5??,a?6??。

输出格式

一行一个整数,原方程有多少正整数解。

样例

输入格式

10 -24 74 -25 22 -7 -22

输出格式

5

 

分析:

一开始没看到范围以为这是数学题...k<=600的话,O(n^3)是可以接受的。

把题目中给出的式子移项,变成a1*x1+a3*x3+a5*x5=a2*x2+a4*x4+a6*x6

枚举左边的三个x,计算出左边所有可能值,然后再枚举右边的三个x,如果与左边有相同的话就ans+=相同值的个数

暴力判断显然是不行的,可以用STL的map。此题开了O2优化,不至于TLE。

时间复杂度O(n^3 * logn)

 

AC代码:

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<map>
 6 
 7 inline void read(int &x)
 8 {
 9     char ch = getchar(),c = ch;x = 0;
10     while(ch < 0 || ch > 9) c = ch,ch = getchar();
11     while(ch <= 9 && ch >= 0) x = (x<<1)+(x<<3)+ch-0,ch = getchar();
12     if(c == -) x = -x;
13 }
14 
15 std::map<long,long> mp;
16 int ans,k,a1,a2,a3,a4,a5,a6;
17 long long tmp;
18 
19 int main()
20 {
21     read(k);
22     read(a1),read(a2),read(a3),read(a4),read(a5),read(a6);
23     for(register int x = 1;x <= k;++ x)
24         for(register int y = 1;y <= k;++ y)
25             for(register int z = 1;z <= k;++ z)
26             {
27                 tmp = 1LL*a1*x+1LL*a3*y+1LL*a5*z;
28                 mp[tmp] ++;
29             }
30     for(register int x = 1;x <= k;++ x)
31         for(register int y = 1;y <= k;++ y)
32             for(register int z = 1;z <= k;++ z)
33             {
34                 tmp = 1LL*a2*x+1LL*a4*y+1LL*a6*z;
35                 if(mp.count(tmp))
36                     ans += mp[tmp];
37             }
38     printf("%d\n",ans);
39     return 0;
40 }

 

「LYOI2016 Summer」Equation 题解

标签:oid   描述   vertica   get   segment   格式   etc   ica   getch   

原文地址:http://www.cnblogs.com/shingen/p/7662760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!