A spider, S, sits in one corner of a cuboid room, measuring 6 by 5 by 3, and a fly, F, sits in the opposite corner. By travelling on the surfaces of the room the shortest "straight
line" distance from S to F is 10 and the path is shown on the diagram.


However, there are up to three "shortest" path candidates for any given cuboid and the shortest route doesn't always have integer length.

It can be shown that there are exactly 2060 distinct cuboids, ignoring rotations, with integer dimensions, up to a maximum size of M by M by M, for which the shortest route has integer
length when M = 100. This is the least value of M for which the number of solutions first exceeds two thousand; the number of solutions when M = 99 is 1975.

Find the least value of M such that the number of solutions first exceeds one million.

高中做过的题目。把立方体各面展开,这个路径实际上是一个直角三角形的斜边。

要使得的这个路径最小。如果矩阵个边长分别为a<=b <=c

最短路径为sqrt((a+b)^2+c^2)

把a,b视为总体,记做ab

则ab范围是[2,2M]

在寻找到开方后结果为整数的ab和c后

假设ab<c:a,b是能够平均分ab的

假设ab>=c:b的取值到大于ab/2而且满足b<=c,ab-b<=c 得到b的取值个数为(c-(ab+1)/2)+1

#include <iostream>
#include <string>
#include <cmath>
using namespace std; int main()
{
int c = 1;
int count = 0;
while (count < 1000000)
{
c++;
for (int ab = 2; ab <= 2 * c; ab++)
{
int path=ab*ab + c*c;
int tmp = int(sqrt(path));
if (tmp*tmp == path)
{
count += (ab >= c) ? 1+(c-(ab+1)/2) : ab / 2;
}
}
}
cout << c << endl;
system("pause");
return 0;
}

最新文章

  1. Mahout推荐算法API详解
  2. HTML &lt;a&gt; download 属性,点击链接来下载图片
  3. NOI题库分治算法刷题记录
  4. 【bzoj2118】 墨墨的等式
  5. JS中call和apply
  6. rehat 出现GDB debuginfo-install 问题处理
  7. C++ 删除字符串的两种实现方式
  8. xcode 出现the file couldn&#39;t be opened 怎么解决
  9. C++11新特性:自动类型推断和类型获取
  10. Sublime Text 中使用Git插件连接GitHub
  11. django连接已有的数据库
  12. 自签名SSL生成
  13. [RxJS] Basic DOM Rendering with Subscribe
  14. Windows下Mysql解压缩版配置安装与卸载
  15. C# 微信公众平台开发(2)-- 微信菜单
  16. 7 JavaScript Basics Many Developers Aren&#39;t Using (Properly)【转】
  17. JS-jquery对象和dom对象的属性操作区别
  18. 逻辑斯特回归tensorflow实现
  19. 20155309南皓芯 网络对抗《网络攻防》 Exp1 PC平台逆向破解(5)M
  20. git 先创建本地仓库,再关联远程

热门文章

  1. 在 Ubuntu上使用 MySQL
  2. String对象的match方法
  3. html基础概念
  4. MySQL数据库(7)----数据库的选择、创建、删除和更改
  5. LinkedList源码疑问记录
  6. jquery使页面滚动到底部
  7. ext3 转 ext4 操作
  8. Mysql常用语句与函数(待续)
  9. Retrieving failed records after an SqlBulkCopy exception
  10. TcpListerner、TcpClient 、邮件发送MailMessage、SmtpClient类