hdu 1017
来源:互联网 发布:linux 获取项目路径 编辑:程序博客网 时间:2024/05/20 06:38
题目概述
给定N和M,求满足以下条件的整数对(a,b)的数量,其一,0< a< b< N,其二,(a^2+b^2+M)/(ab)为整数
输入
第一行正整数times,其后有times块数据,每块数据由若干行组成,每行两个整数N,M,每块数据以0 0结束
限制
0
输出
每组输出格式为Case #: @,其中#为数据在该块的序数,@为所求数量,两组输出之间没有空行,两块数据的输出之间有一个空行
样例输入
2
10 1
20 3
30 4
0 010 1
20 3
30 4
0 0
样例输出
Case 1: 2
Case 2: 4
Case 3: 5Case 1: 2
Case 2: 4
Case 3: 5
讨论
题目本身毫无难度,不是深搜,是暴搜,两层循环的事情,只是题目原文描述没讲清楚格式,可能导致各种花样WA
题解状态
265MS,1720K,767 B,C++
题解代码
#include<stdio.h>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f #define maxx(a,b) ((a)>(b)?(a):(b)) #define minn(a,b) ((a)<(b)?(a):(b)) #define MAXN 21#define memset0(a) memset(a,0,sizeof(a))#define EPS 1e-6int N, M;int kase = 0;void fun(){ int cnt = 0; for (int a = 1; a < N; a++) { for (int b = a + 1; b < N; b++) if (double(a*a + b*b + M) / double(a*b) - (a*a + b*b + M) / (a*b) < EPS)//以浮点型与由整型提升所得的浮点型作差 小数部分在浮点误差之内则视为整数 cnt++; } printf("Case %d: %d\n", ++kase, cnt);}int main(void){ //freopen("vs_cin.txt", "r", stdin); //freopen("vs_cout.txt", "w", stdout); int times; scanf("%d", ×); while (times--) { while (scanf("%d%d", &N, &M) && (N || M)) fun(); kase = 0;//每块数据的序号是不共用的 if (times) printf("\n");//新的控制输出间空行方法 不用再插旗了 }}
EOF
0 0
- hdu 1017
- HDU 1017
- HDU 1017
- HDU-1017
- hdu 1017
- hdu 1017
- hdu 1017
- hdu 1017
- HDU 1017
- HDU 1017
- hdu 1017
- HDU-1017
- HDU 1017
- hdu 1017
- hdu 1017
- HDU-1017
- hdu 1017
- hdu 1017
- GNU C 、ANSI C、标准C、标准c++区别和联系
- μCOS-ii初学心得
- 如何取链接带的参数
- 日常生活
- Github简易使用指南
- hdu 1017
- 中美军事力量对比
- STM32 学习之TIM
- uC/OS II学习时的一个重要函数 OSInit( )
- java之final关键字
- HDU 1078 FatMouse and Cheese【第一道记忆化搜索题】
- μC/OS-II基本原理简介
- Rxjava之FlatMap()的运用
- 【VS开发】如何移植对话框?