ACM题解报告——HD1496
2013-05-28 16:17
519 查看
hdoj上的1496题,题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1496
此题的大意就是让你找出四元方程式a*x1^2+b*x2^2+c*x3^2+d*x4^2=0的解的种数并输出,其中a,b,c,d为常量,最开始的时候输入,他们的范围是[-50,0)&&(0,50],而变量x1、x2、x3、x4的范围是[-100,0)&&(0,100]。
开始看到这道题我的思路就是进行暴力搜索,当时觉得应该会超时,后来果然超时了,没办法,只能想其它方式了。
我们可以变化一下方程,写成a*x1^2+b*x2^2=-(c*x3^2+d*x4^2)。这样子的话我们就可以两边都进行搜索,最后找出相等的解即可。我使用了map数组下标来保存左边的结果,观察一下,发现当a、b、x1、x2都分别取最大或最小值时,map下标的变化范围是[-1000000,0)&&(0,1000000],为了保证map下标不小于0,可以选择在等式两边加上1000000,此时方程式变成了a*x1^2+b*x2^2+1000000=1000000-(c*x3^2+d*x4^2),最后用了一个sum值来统计他们的结果相同的个数。
代码如下:
View Code
此题的大意就是让你找出四元方程式a*x1^2+b*x2^2+c*x3^2+d*x4^2=0的解的种数并输出,其中a,b,c,d为常量,最开始的时候输入,他们的范围是[-50,0)&&(0,50],而变量x1、x2、x3、x4的范围是[-100,0)&&(0,100]。
开始看到这道题我的思路就是进行暴力搜索,当时觉得应该会超时,后来果然超时了,没办法,只能想其它方式了。
我们可以变化一下方程,写成a*x1^2+b*x2^2=-(c*x3^2+d*x4^2)。这样子的话我们就可以两边都进行搜索,最后找出相等的解即可。我使用了map数组下标来保存左边的结果,观察一下,发现当a、b、x1、x2都分别取最大或最小值时,map下标的变化范围是[-1000000,0)&&(0,1000000],为了保证map下标不小于0,可以选择在等式两边加上1000000,此时方程式变成了a*x1^2+b*x2^2+1000000=1000000-(c*x3^2+d*x4^2),最后用了一个sum值来统计他们的结果相同的个数。
代码如下:
#include<iostream> using namespace std; int map[2000008]; int ans,i,j,a,b,c,d,sum; int main( ) { while(cin>>a>>b>>c>>d) { if((a>0&&b>0&&c>0&&d>0)||( a<0&&b<0&&c<0&&d<0)) { cout<<"0"<<endl; continue; } sum=0; memset(map,0,sizeof( map)); for(i=1;i<=100;i++) for(j=1;j<=100;j++) { ans=a*i*i+b*j*j+1000000; map[ans]++; } for(i=1;i<=100;i++) for( j=1;j<=100;j++) { ans=c*i*i+d*j*j; ans=1000000-ans; sum+=map[ans]; } cout<<sum*16<<endl; } return 0; }
View Code
相关文章推荐
- ACM题解报告——进制数取于余
- ACM题解报告——HD1022
- 重邮第八届ACM大赛-预赛题解报告
- 2015浙江财经大学ACM有奖周赛(一) 题解报告
- ACM题解报告——HD1006
- 重邮第八届ACM大赛-决赛题解报告
- NOIP2016天天爱跑步 题解报告【lca+树上统计(桶)】
- YT04-贪心课堂练习-1004—Fire Net-(6.14日-烟台大学ACM预备队解题报告)
- 2016-2017 ACM-ICPC Pacific Northwest Regional Contest (Div. 2) 题解
- 寒假集训附加题目题解报告(1)——数列
- 【解题报告】2014ACM/ICPC亚洲区北京站
- acm-uva11352解题报告
- Codeforces Round #229 (Div. 2) C. Inna and Candy Boxes ACM解题报告(预处理)
- 北大ACM试题分类 - 实时更新我所有的解题报告链接
- 【Jason's_ACM_解题报告】Spreading the Wealth
- 【Jason's_ACM_解题报告】Piotr's Ant
- 【Jason's_ACM_解题报告】Meteor
- 【ACM菜逼解题报告】Pie
- ACM-FZUoj2009-1573解题报告
- 【Jason's_ACM_解题报告】Rails