D. 关灯问题(规律或二分)
题目描述
今年就这么结束了, 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. 关灯问题(规律或二分)相关推荐
- L1-002 打印沙漏 (20 分)(模拟,规律,二分)
L1-002 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇 ...
- 算法设计思想(4)— 分治法
1. 分治法概念 分治,顾名思义,分而治之. 具体来说,它先将一个难以直接解决的大问题,分割成一些可以直接解决的小问题.如果分割后的问题仍然无法直接解决,那么就继续递归地分割,直到每个小问题都可解. ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...
- Codeforces Round #788 (Div. 2) A B C D E
Codeforces Round #788 (Div. 2) A B C D E 打的好 ** 烂总结一下把. A.Prof. Slim 解法: 贪心,统计正负符号,因为每个位上的数只能是其绝对值的正 ...
- 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},求在所有轨迹里出现次 ...
- 二分查找以及数组下标的移动规律
二分查找算法 复杂度log2N\log_2Nlog2N 二分查找的前提是待查找的序列必须是有序的.另外一点,C++中的序列都是前闭后开的.如果使用STL,默认是递增顺序,递减的顺序需要自定义比较函 ...
- D. Pythagorean Triples(1487D)(打表找规律 + 二分)
D. Pythagorean Triples(1487D)(打表找规律 + 二分) 题目来源:D. Pythagorean Triples 题意: 给定一个 n,求满足以下条件的数对 (a, b, c ...
- HDU 6304 Chiaki Sequence Revisited(二分+找规律)
题目链接 Chiaki Sequence Revisited Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- 【二分,找规律】Day 14 提高组模拟C组 T1 小麦亩产一千八
题目大意 给定斐波那契的第aaa项,求出第b" role="presentation">bbb项,默认第0项为1 解题思路 方法一:递推 找到规律后O(b)O(b) ...
最新文章
- 自动化对就业没有影响?看看这张图再说
- springboot 接口返回数据时 net.sf.json.JSONNull[“empty“]) 异常
- torch 多进程队列 问题
- 在WINCE5.0中应用CMD(比如运行PING命令)
- 【51nod】1559 车和矩形
- web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总
- jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
- Git学习(3)GitHub和SVN的区别
- 正式环境docker部署hyperf_使用docker搭建hyperf环境连接mysql
- matplotlibpycharm
- centos镜像 from_下载 CentOS 7 镜像文件
- allgro显示网络名称_起名||网络公司名字推荐
- C#winform省市县联动,以及有的县是空值时显示异常的处理
- Oracle 数据库的常用备份方法
- 数据库 无损分解和保持依赖的判断
- 【人工智能】重磅发布人工智能与机器学习全景式概览
- springboot整合手机验证码
- GO语言实战之类型的本质
- 对2030年的人工智能的预测#AIGC的机会到底在何处?
- php代码托管平台,程序员必须知道的几个Git代码托管平台
热门文章
- linux c头文件#include<sys/types.h>和#include<fcntl.h>头文件总结
- 织梦php远程连接数据库,用PHP连接Oracle for NT 远程数据库
- bootstrap bootstraptable 固定列_1个Excel公式按条件自定义格式显示固定电话号码
- 惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....
- 博士毕业的人也会交“智商税”?现实远比我们想象的残酷……
- 中国最神秘的一所大学,它只存在过8年,却成了永远的第一
- 每日一笑 | 老板,黑凤梨真的能吃吗?
- 据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题
- java.lang.illegalagr_spring – java.lang.IllegalArgumentException:环境不能为null
- mysql select 反选_JQuery实现全选、全不选和反选功能