题目描述

今年就这么结束了, zdw感到十分失望

蓝桥杯写错签到题, cf rating狂掉, 最后区域赛打铜, 还突然变成JBer了

失落的zdw准备睡觉(真咸鱼), 他想关灯, 然而发现开关坏了

zdw愤怒地敲击着开关, 然后发现一个很神奇的事情:

如果灯之前已经关过了xx次, 那么下一次打开它以后再关上它需要使用x+1x+1次开关

具体情况请参考样例. 一开始灯是开着的

输入描述

第一行一个整数TT表示数据组数

接下来TT行每行一个整数nn表示zdw使用开关的次数

输出描述

共TT行, 每行一个字符串"ON"或"OFF"表示目前灯是开着还是关着的

具体见样例

样例输入

9
0
1
2
3
4
5
6
7
8

样例输出

ON
OFF
ON
ON
OFF
ON
ON
ON
OFF

样例描述

0次时就是初始状态, 显然灯是开着的

1次时之前灯没有关上过, 所以按1次后灯就关上了, 是OFF

2次时灯重新被打开了

3-4次时因为灯之前已经关上1次了, 所以需要按2下来让灯再次关上(按完第4下后关上了)

5次时灯又重新被打开了

6-8次时因为灯之前已经关上2次了, 所以需要按3下来让灯再次关上(按完第8下后关上了)

数据范围

TT <= 100000

nn <= 10^18

子任务1:(10分)

nn <= 10^8

子任务2:(20分)

无其他限制

题目来源

zdw1999

因为题目给出的数据过大,故找出规律

1=1    4=1+3     8=1+3+4   13=1+3+4+5   19=1+3+4+5+6  26=1+3+4+5+6

m+2=n*(n+1)/2

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define LL long long
int main()
{int T;scanf("%d",&T);LL n;while(T--){scanf("%lld",&n);LL mod=(LL)sqrt(2*n+4);if(mod*(mod+1)==2*n+4)printf("OFF\n");elseprintf("ON\n");}return 0;
}

二分

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
ll n;
int main()
{int T;scanf("%d",&T);while(T--){scanf("%lld",&n);if(n==0){puts("ON");continue;}if(n==1){puts("OFF");continue;}ll l=1,r=(ll)1e9,a,b;while(l<r){ll mid=(l+r+1)/2;a=1LL*mid*(ll)(5+mid);b=2LL*(n-1);if(a>b)r=mid-1;else l=mid;}a=1LL*l*(5+l);b=2LL*(n-1);if(a==b)puts("OFF");else puts("ON");}return 0;
}

D. 关灯问题(规律或二分)相关推荐

  1. L1-002 打印沙漏 (20 分)(模拟,规律,二分)

    L1-002 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇 ...

  2. 算法设计思想(4)— 分治法

    1. 分治法概念 分治,顾名思义,分而治之. 具体来说,它先将一个难以直接解决的大问题,分割成一些可以直接解决的小问题.如果分割后的问题仍然无法直接解决,那么就继续递归地分割,直到每个小问题都可解. ...

  3. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...

  4. Codeforces Round #788 (Div. 2) A B C D E

    Codeforces Round #788 (Div. 2) A B C D E 打的好 ** 烂总结一下把. A.Prof. Slim 解法: 贪心,统计正负符号,因为每个位上的数只能是其绝对值的正 ...

  5. Common Number(奇偶二分+找规律)

    题意:给定函数f(x),x为偶数时f(x)=x/2,x为奇数时f(x)=x-1 给定n,k,对1到n每个数求f(x)的轨迹,如path[15]={15,14,7,6,3,2,1},求在所有轨迹里出现次 ...

  6. 二分查找以及数组下标的移动规律

    二分查找算法 复杂度log⁡2N\log_2Nlog2​N 二分查找的前提是待查找的序列必须是有序的.另外一点,C++中的序列都是前闭后开的.如果使用STL,默认是递增顺序,递减的顺序需要自定义比较函 ...

  7. D. Pythagorean Triples(1487D)(打表找规律 + 二分)

    D. Pythagorean Triples(1487D)(打表找规律 + 二分) 题目来源:D. Pythagorean Triples 题意: 给定一个 n,求满足以下条件的数对 (a, b, c ...

  8. HDU 6304 Chiaki Sequence Revisited(二分+找规律)

    题目链接 Chiaki Sequence Revisited Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  9. 【二分,找规律】Day 14 提高组模拟C组 T1 小麦亩产一千八

    题目大意 给定斐波那契的第aaa项,求出第b" role="presentation">bbb项,默认第0项为1 解题思路 方法一:递推 找到规律后O(b)O(b) ...

最新文章

  1. 自动化对就业没有影响?看看这张图再说
  2. springboot 接口返回数据时 net.sf.json.JSONNull[“empty“]) 异常
  3. torch 多进程队列 问题
  4. 在WINCE5.0中应用CMD(比如运行PING命令)
  5. 【51nod】1559 车和矩形
  6. web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总
  7. jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
  8. Git学习(3)GitHub和SVN的区别
  9. 正式环境docker部署hyperf_使用docker搭建hyperf环境连接mysql
  10. matplotlibpycharm
  11. centos镜像 from_下载 CentOS 7 镜像文件
  12. allgro显示网络名称_起名||网络公司名字推荐
  13. C#winform省市县联动,以及有的县是空值时显示异常的处理
  14. Oracle 数据库的常用备份方法
  15. 数据库 无损分解和保持依赖的判断
  16. 【人工智能】重磅发布人工智能与机器学习全景式概览
  17. springboot整合手机验证码
  18. GO语言实战之类型的本质
  19. 对2030年的人工智能的预测#AIGC的机会到底在何处?
  20. php代码托管平台,程序员必须知道的几个Git代码托管平台

热门文章

  1. linux c头文件#include<sys/types.h>和#include<fcntl.h>头文件总结
  2. 织梦php远程连接数据库,用PHP连接Oracle for NT 远程数据库
  3. bootstrap bootstraptable 固定列_1个Excel公式按条件自定义格式显示固定电话号码
  4. 惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....
  5. 博士毕业的人也会交“智商税”?现实远比我们想象的残酷……
  6. 中国最神秘的一所大学,它只存在过8年,却成了永远的第一
  7. 每日一笑 | 老板,黑凤梨真的能吃吗?
  8. 据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题
  9. java.lang.illegalagr_spring – java.lang.IllegalArgumentException:环境不能为null
  10. mysql select 反选_JQuery实现全选、全不选和反选功能