PKU Online Judge 1046 Square Number
来源:互联网 发布:解放军信大分配知乎 编辑:程序博客网 时间:2024/05/20 17:39
思路来自:dark_dream的cnblogs博客)
题意:给定正整数b,求最大的整数a,满足a*(a+b) 为完全平方数
解题思路:假设 a^2+a*b = (a+t)^2 -> a^2 + a*b = a^a + 2*a*t +t^2 -> a*b = 2*a*t +t^2 -> a = t^2/(b-2*t);
因为 a = t^2/(b-2*t); 易知( t >= 0 && t < b/2)。假如 可知 在t的范围内 a 随 t 的增大而增大 ,又因为 a 必须是 整数
所以
(1) b为奇数的时候 t = (b-1)/2;
(2) b 为 偶数 且 (b-2)/2 为偶数 ,那么t = (b-2)/2
(3)b 为 偶数且(b-2)/2 为奇数,那么 t = (b - 4)/2
//要注意用long long 否则会 WA。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int main(){ long long a,b; long long res; int T; scanf("%lld",&T); while(T--){ scanf("%d",&b); if(b%2==1){res=(b-1)/2;a=(long long)res*res/(b-2*res);} else if(b%2==0&&((b-2)/2)%2==0){res=(b-2)/2;a=(long long)res*res/(b-2*res);} else if(b%2==0&&((b-2)/2)%2==1){res=(b-4)/2;a=(long long)res*res/(b-2*res);} printf("%lld\n",a); } return 0;}
0 0
- PKU Online Judge / 练习 1046 Square Number
- PKU Online Judge 1046 Square Number
- PKU Online Judge 1054
- PKU Judge Online 安装指南
- PKU Online Judge 1055:Tree
- PKU 1046-Square Number(数论)
- 【Timus Online Judge 1132】 Square Root
- PKU Online Judge 1033:Kingdom [状态DP]
- DFS+思维-PKU Online Judge-1054:Cube
- PKU Online Judge 1054:Cube (设置根节点)
- Online Judge
- Online Judge
- Online Judge
- Online Judge
- Online Judge
- Online Judge
- 题目 1040 Prime Number 九度Online Judge
- PKU Online Judge POJ流传最广的分类,希望以后会切之
- C# 导出Excel的示例
- Python学习笔记(1)——函数
- 将文件夹下所有pdf变成黑白的脚本
- 用duilib制作仿QQ2013动态背景登录器
- usaco 1.3.2 Barn Repair
- PKU Online Judge 1046 Square Number
- Java Mail邮件SMTP协议返回信息 535 5.7.3 Authentication unsuccessful
- document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题
- Android刮刮卡效果
- 使用Jenkins邮件配置在邮件中输出测试运行详细结果
- LeetCode | Search for a Range
- 黑马程序员——多线程
- dijkstra模板
- OpenGL ES学习总结:基础知识简介