这道题明显是一道暴力。

暴力枚举每一个 \(a, b, c, d\)

所以我就写了一个暴力。每个 \(a, b, c, d\) 都从 \(1\) 枚举到 \(100\)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define line cout << endl
using namespace std;
int lf(int x) {
return x * x * x;
}
int main() {
for (int a = 1; a <= 100; a++) {
for (int b = 1; b <= 100; b++) {
for (int c = 1; c <= 100; c++) {
for (int d = 1; d <= 100; d++) {
if (lf(a) == lf(b) + lf(c) + lf(d)) {
cout << "Cube = " << a << ", Triple = (" << b << "," << c << "," << d << ")";
line;
}
}
}
}
}
return 0;
}

结果,成功的 WA 掉了(((


为什么?

我们仔细观察题目给出的前几个样例:

Cube = 6, Triple = (3,4,5)
Cube = 12, Triple = (6,8,10)
Cube = 18, Triple = (2,12,16)
Cube = 18, Triple = (9,12,15)
Cube = 19, Triple = (3,10,18)
Cube = 20, Triple = (7,14,17)
Cube = 24, Triple = (12,16,20)

而再看上面的程序输出的前几个:

Cube = 6, Triple = (3,4,5)
Cube = 6, Triple = (3,5,4)
Cube = 6, Triple = (4,3,5)
Cube = 6, Triple = (4,5,3)
Cube = 6, Triple = (5,3,4)
Cube = 6, Triple = (5,4,3)
Cube = 9, Triple = (1,6,8)
Cube = 9, Triple = (1,8,6)
Cube = 9, Triple = (6,1,8)
Cube = 9, Triple = (6,8,1)
Cube = 9, Triple = (8,1,6)
Cube = 9, Triple = (8,6,1)

发现什么问题了吗? 相信 全谷最聪明的你 已经发现了问题。

仔细观察 Cube = 6 的情况:

我的程序:

Cube = 6, Triple = (3,4,5)
Cube = 6, Triple = (3,5,4)
Cube = 6, Triple = (4,3,5)
Cube = 6, Triple = (4,5,3)
Cube = 6, Triple = (5,3,4)
Cube = 6, Triple = (5,4,3)

正确答案:

Cube = 6, Triple = (3,4,5)

有可能题目没有翻译清晰

发现每个 Cube 只需要输出一组,那么我们就可以改变一下循环的初始状态。

将 \(a,b\) 从 \(2\) 到 \(100\) 枚举,将 \(c\) 从 \(b\) 到 \(100\) 枚举,将 \(d\) 从 \(c\) 到 \(100\) 枚举。

最后放上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define line cout << endl
using namespace std;
int lf(int x) {//立方的函数
return x * x * x;
}
int main() {
// freopen("1.out", "w", stdout);
for (int a = 2; a <= 100; a++) {
for (int b = 2; b <= 100; b++) {
for (int c = b; c <= 100; c++) {
for (int d = c; d <= 100; d++) {
if (lf(a) == lf(b) + lf(c) + lf(d)) {
cout << "Cube = " << a << ", Triple = (" << b << "," << c << "," << d << ")";
line;
}
}
}
}
}
return 0;
}

【题解】「SP867」 CUBES - Perfect Cubes的更多相关文章

  1. 题解 「HDU6403」卡片游戏

    link Description 桌面上摊开着一些卡牌,这是她平时很爱玩的一个游戏.如今卡牌还在,她却不在我身边.不知不觉,我翻开了卡牌,回忆起了当时一起玩卡牌的那段时间. 每张卡牌的正面与反面都各有 ...

  2. 题解 「SCOI2016」萌萌哒

    link Description 一个长度为 $ n $ 的大数,用 $ S_1S_2S_3 \ldots S_n $表示,其中 $ S_i $ 表示数的第 $ i $ 位,$ S_1 $ 是数的最高 ...

  3. 题解 「SDOI2017」硬币游戏

    题目传送门 Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强 ...

  4. 题解 「ZJOI2018」历史

    题目传送门 Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰 ...

  5. 题解 「BZOJ3636」教义问答手册

    题目传送门 Description 作为泉岭精神的缔造者.信奉者.捍卫者.传承者,Pear决定印制一些教义问答手册,以满足泉岭精神日益增多的信徒.Pear收集了一些有关的诗选.语录,其中部分内容摘录在 ...

  6. 题解「BZOJ4310」跳蚤

    题目传送门 Description 现在有一个长度为 \(n\) 的字符串,将其划分为 \(k\) 段,使得这 \(k\) 段每一段的字典序最大子串中字典序最大的字符串字典序尽量小.求出这个字符串. ...

  7. 题解 「BZOJ2137」submultiple

    题目传送门 题目大意 给出 \(M,k\) ,求出 \[\sum_{x|M}\sigma(x)^k \] 给出 \(P_i\),满足 \(n=\prod_{i=1}^{n}a_i^{P_i}\),其中 ...

  8. 题解 「BZOJ2178」圆的面积并

    题目传送门 题目大意 给出 \(n\) 个圆,求它们并的面积大小. \(n\le 10^3\) 思路 如果您不会自适应辛普森法,请戳这里学习 其实我们发现,如果我们设 \(f(x)\) 表示 \(x= ...

  9. 题解 - 「MLOI」小兔叽

    小兔叽 \(\texttt{Link}\) 简单题意 有 \(n\) 个小木桩排成一行,第 \(i\) 个小木桩的高度为 \(h_i\),分数为 \(c_i\). 如果一只小兔叽在第 \(i\) 个小 ...

随机推荐

  1. 基于selenium微博个人主页视频下载

    # -*- coding: utf-8 -*- import selenium from selenium import webdriver import time import urllib.req ...

  2. select实现超时(套接字IO超时设置)

    实现超时的三种方式: 1.SIGALARM信号 void  handler(int sig) { return 0; } signal(SIGALRM,handler); alarm(5); int ...

  3. 对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解

    最近做了一些分类模型,所以打算对分类模型常用的评价指标做一些记录,说一下自己的理解.使用何种评价指标,完全取决于应用场景及数据分析人员关注点,不同评价指标之间并没有优劣之分,只是各指标侧重反映的信息不 ...

  4. Java初始化静态变量的时间顺序

    1. 开始吧! 今天,我们来探讨交流下静态变量初始化过程.Java虚拟机在类加载期间也同样遵循这个过程. 2. 初始化过程 在较高的层次上,JVM执行以下步骤: 首先,加载并链接类.然后,这个过程的& ...

  5. 解决自动安装Freebsd系统盘符无法确定问题

    最近因为需要用到Freebsd,所以研究了打包的一些方法,这个没什么太大问题,通过网上的一些资料可以解决,但是由于确实不太熟悉这套系统,还是碰上了一些比较麻烦的地方,目前也没看到有人写如何处理,那就自 ...

  6. 【剑指offer】面试题68(补充) 0到n-1中缺失的数字(二分法的进一步应用)

    题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0到n-1之内. 在范围0到n-1的n个数字中有且只有一个数字不在该数组中,请找出这个数字. 输出 输入:[0,1,2, ...

  7. Win10 安装MySQL 5.7.32(解压版)

    Win10 安装MySQL 5.7.32(解压版) MySQL 5.7.32 下载 官网下载(速度慢,不推荐使用):https://dev.mysql.com/downloads/mysql/ 清华镜 ...

  8. 在Camtasia中对录制视频进行转换编辑

    在我们的日常学习生活中,课件是我们经常需要接触的东西,一份精美的课件会让我们的学习生活看起来不那么的枯燥,学习也就不会索然无味.当精美的课件加上老师的谆谆教导,学习便会变成一件非常简单的事情.将课件制 ...

  9. ABBYY FineReader 15 如何为PDF文档添加页眉页脚

    页眉.页脚是文档页面顶部或底部重复出现的文本信息.很多用户会习惯在文档页面的顶部与底部区域添加页眉.页脚来展现页码.文档标题.作者姓名.品牌名称等附加信息.而ABBYY FineReader 15(W ...

  10. python3时间函数

    上一篇是生成测试报告的代码,如果重复运行测试报告名称相同会不停的覆盖,之前的测试报告也会丢失,无法追溯之前的问题.那么如何解决这个问题了呢? 首先想到的是用随机函数取随机名称,一旦生成的报告较多时,无 ...