博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1496(hash经典)
阅读量:6936 次
发布时间:2019-06-27

本文共 2027 字,大约阅读时间需要 6 分钟。

题目链接:

思路:一开始没想到加1000010来避免负数,orz....直接加负数就不用分类讨论了。

View Code
1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int MAXN=2000100; 8 int mark[MAXN]; 9 10 11 int main(){12 int num[4];13 while(~scanf("%d",&num[0])){14 scanf("%d%d%d",&num[1],&num[2],&num[3]);15 sort(num,num+4);16 if(num[3]<0||num[0]>0){puts("0");continue;}17 memset(mark,0,sizeof(mark));18 int count=0;19 //注释部分也是ac代码。。。耗时略长20 /*21 if(num[1]<0){22 for(int i=1;i<=100;i++){23 for(int j=1;j<=100;j++){24 int s=-1*num[0]*i*i-num[1]*j*j;25 mark[s]++;26 }27 }28 int count=0;29 for(int i=1;i<=100;i++){30 for(int j=1;j<=100;j++){31 int s=num[2]*i*i+num[3]*j*j;32 if(s<0)continue;33 count+=mark[s];34 }35 }36 printf("%d\n",count*16);37 }else {38 for(int i=1;i<=100;i++){39 int s=-1*num[0]*i*i;40 mark[s]++;41 }42 int count=0;43 for(int i=1;i<=100;i++){44 for(int j=1;j<=100;j++){45 for(int k=1;k<=100;k++){46 int s=num[1]*i*i+num[2]*j*j+num[3]*k*k;47 count+=mark[s];48 }49 }50 }51 printf("%d\n",count*16);52 }*/53 for(int i=1;i<=100;i++){54 for(int j=1;j<=100;j++){55 mark[num[0]*i*i+num[1]*j*j+1000010]++;56 }57 }58 for(int i=1;i<=100;i++){59 for(int j=1;j<=100;j++){60 count+=mark[1000010-num[2]*i*i-num[3]*j*j];61 }62 }63 printf("%d\n",count*16);64 }65 return 0;66 }

 

转载地址:http://cdgjl.baihongyu.com/

你可能感兴趣的文章
Gerrit代码Review入门实战
查看>>
Swift中一个类中的枚举(enum)类型的数据该如何实现序列化(NSCoder)
查看>>
WebSocket 原理
查看>>
按端口终止进程
查看>>
Permutations I & II leetcode
查看>>
[LeetCode/LintCode] Factorial Trailing Zeros
查看>>
iOS病毒XcodeGhost批量检测工具,开源Github(检测ipa文件)
查看>>
npm 加入 TC39 委员会,参与定制 JavaScript 标准
查看>>
centos7.2安装mysql
查看>>
关于 Python
查看>>
AVFoundation学习Demo--拍摄视频
查看>>
阿里云账号注册流程方法(图文教程)
查看>>
亮道智能发布自动驾驶环境感知系统测试验证服务|2019 上海车展 ...
查看>>
ROS_机器人urdf建模仿真实践
查看>>
一碗鸡汤
查看>>
平台篇-58 HBase 平台实践和应用
查看>>
史上最大的实体关系抽取数据集!清华大学自然语言处理团队发布 FewRel ...
查看>>
K8s 1.14 发布了,Release Note 该怎么读?
查看>>
购买阿里云服务器,先试试主机免费试用能抢到不
查看>>
2018-01-11 Antlr4实现数学四则运算
查看>>