首页 > 代码库 > 方程式
方程式
方程式
Time Limit: 1000MS | Memory Limit: 65535KB |
Submissions: 2312 | Accepted: 580 |
Sample Input
1 2 3 -4 1 1 1 1
Sample Output
39088 0
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include<stdio.h> #include<cstring> //using namespace std; #define MAX 1000000 int hash[MAX*2+1]; int main() { int i,j,sum; int a,b,c,d,ans; while ( scanf ( "%d %d %d %d" ,&a,&b,&c,&d)!=EOF) { ////若memset(hash,0,sizeof(hash));放此处会超时 if ((a<0&&b<0&&c<0&&d<0)||(a>0&&b>0&&c>0&&d>0)) { printf ( "0\n" ); continue ; } memset (hash,0, sizeof (hash)); /////////////位置决定是否超时 for (i=1;i<=100;i++) { for (j=1;j<=100;j++) { sum=a*i*i+b*j*j; hash[sum+MAX]++; } } ans=0; for (i=1;i<=100;i++) { for (j=1;j<=100;j++) { sum=-(c*i*i+d*j*j); ans+=hash[sum+MAX]; } } ans*=16; printf ( "%d\n" ,ans); } return 0; } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。