o.boj 1031 考古学家SuperRock的新发现

注:最近这一系列ACM的内容,都是2年多之前的代码,自己回顾一下。



考古学家SuperRock的新发现
Submit: 3173    Accepted:1360
Time Limit: 1000MS  Memory Limit: 65536K
Description
著名的考古学家SuperRock教授惊奇发现,在距今30万年前的原始社会,有一个叫Pluto的部落特别喜欢吃巧克力,他们喜欢黑巧克力,奶油巧克力,以及SuperRock教授最喜欢的丝滑巧克力。他们生产和制造巧克力的历史源远流长,这很有可能是现代巧克力的起源之一。SuperRock教授最近在Pluto出土了一批古巧克力,这些巧克力都印着Dove标记,如下图(感谢SuperRock教授为我们提供如此珍贵的图片)。




根据史料记载,原始人都喜欢把巧克力制成大小相同正方形的小块,整个巧克力是个大正方形。考虑到原始人的胃口都比较大,这些巧克力可能有100000000多个小块组成。可惜由于年代久远,巧克力已经破碎成了小方块,全部都散开了,SuperRock教授花了4年时间统计出了这批小巧克力的块数,这时候一个问题涌了上来,大巧克力有可能是正方形的么?


Input
第一行:小巧克力的格数N (1<=N<=200000000)

Output
第一行:Yes or No

Sample Input

16


Sample Output

Yes


Hint
比如17就是No

Source
SuperRock@Bupt
 
 
 
这题很水,看输入的是不是平方数即可。但要卡一下时间,从其范围看,可以先做数据集(14143个数~),存平方数,然后直接判断一下,输入是否在这个集合里即可。
#include <iostream>
#include <stdio.h>
#include <set>
using namespace std;

int main()
{
   set<long> num;
   long in;
   
   for (long i = 1; i <= 14143; i++)
      num.insert(i*i);
   
   cin >> in;
   if (num.find(in)!=num.end())
      cout << "Yes" << endl;
   else
      cout << "No" << endl;
   // system("pause");
   return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值