洛谷P1161 开灯

news2024/11/25 16:24:43

开灯

题目描述

在一条无限长的路上,有一排无限长的路灯,编号为 1 , 2 , 3 , 4 , … 1,2,3,4,\dots 1,2,3,4,

每一盏灯只有两种可能的状态,开或者关。如果按一下某一盏灯的开关,那么这盏灯的状态将发生改变。如果原来是开,将变成关。如果原来是关,将变成开。

在刚开始的时候,所有的灯都是关的。小明每次可以进行如下的操作:

指定两个数, a , t a,t a,t a a a 为实数, t t t 为正整数)。将编号为 ⌊ a ⌋ , ⌊ 2 × a ⌋ , ⌊ 3 × a ⌋ , … , ⌊ t × a ⌋ \lfloor a\rfloor,\lfloor 2 \times a\rfloor,\lfloor3 \times a\rfloor,\dots,\lfloor t \times a\rfloor a,2×a,3×a,,t×a 的灯的开关各按一次。其中 ⌊ k ⌋ \lfloor k \rfloor k 表示实数 k k k 的整数部分。

在小明进行了 n n n 次操作后,小明突然发现,这个时候只有一盏灯是开的,小明很想知道这盏灯的编号,可是这盏灯离小明太远了,小明看不清编号是多少。

幸好,小明还记得之前的 n n n 次操作。于是小明找到了你,你能帮他计算出这盏开着的灯的编号吗?

输入格式

第一行一个正整数 n n n,表示 n n n 次操作。

接下来有 n n n 行,每行两个数, a i , t i a_i,t_i ai,ti。其中 a i a_i ai 是实数,小数点后一定有 6 6 6 位, t i t_i ti 是正整数。

输出格式

仅一个正整数,那盏开着的灯的编号。

样例 #1

样例输入 #1

3
1.618034 13
2.618034 7
1.000000 21

样例输出 #1

20

提示

T = ∑ i = 1 n = t 1 + t 2 + t 3 + ⋯ + t n T=\sum \limits_{i=1}^n = t_1+t_2+t_3+\dots+t_n T=i=1n=t1+t2+t3++tn

对于 30 % 30\% 30% 的数据,满足 T ≤ 1000 T \le 1000 T1000

对于 80 % 80\% 80% 的数据,满足 T ≤ 200000 T \le 200000 T200000

对于 100 % 100\% 100% 的数据,满足 T ≤ 2000000 T \le 2000000 T2000000

对于 100 % 100\% 100% 的数据,满足 n ≤ 5000 , 1 ≤ a i < 1000 , 1 ≤ t i ≤ T n \le 5000,1 \le a_i<1000,1 \le t_i \le T n5000,1ai<1000,1tiT

数据保证,在经过 n n n 次操作后,有且只有一盏灯是开的,不必判错。而且对于所有的 i i i 来说, t i × a i t_i\times a_i ti×ai 的最大值不超过 2000000 2000000 2000000

思路:我们只要每次将其输入进来的a和t都进行相乘然后向下取整,将这个灯进行操作(即开灯就把他关掉,关着的就把他打开),这样操作完之后,然后我们只要在数组中找到为1的那个下标,这样就能得到这个亮着的灯,到此此题已经结束。
代码如下(编译器是dev,语言是C语言):

#include<stdio.h>
#include<math.h>
double a;//实数
int t,N;
int i,j;
int temp;
int b[100000] = {0};
int main(){
    scanf("%d",&N);
    for(i = 1;i<=N;i++){
        scanf("%lf %d",&a,&t);
        for(j = 1;j<=t;j++){
            temp = floor(a*j);
            if(b[temp] == 0){
                b[temp] = 1;
            }else if(b[temp] == 1){
                b[temp] = 0;
            }
        }
    }
    for(i = 0;;i++){
        if(b[i] == 1){
            printf("%d",i);
            break;
        }
    }
    return 0;
}

发现有两个测试点没过,后来看到他提醒了才知道,可能是数组设置小了。
在这里插入图片描述
后面将数组扩大十倍,代码如下(编译器是dev,语言是C语言):

#include<stdio.h>
#include<math.h>
double a;//实数
int t,N;
int i,j;
int temp;
int b[1000000] = {0};
int main(){
    scanf("%d",&N);
    for(i = 1;i<=N;i++){
        scanf("%lf %d",&a,&t);
        for(j = 1;j<=t;j++){
            temp = floor(a*j);
            if(b[temp] == 0){
                b[temp] = 1;
            }else if(b[temp] == 1){
                b[temp] = 0;
            }
        }
    }
    for(i = 0;;i++){
        if(b[i] == 1){
            printf("%d",i);
            break;
        }
    }
    return 0;
}

到此就通过了。该算法个人认为还是比较优,如果有更好的想法,欢迎q我!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100915.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

定时器/计数器中定时/计数初值的计算

寄存器TMOD是单片机的一个特殊功能寄存器&#xff0c;其功能是控制定时器/计数器T0、T1的工作方式。它的字节地址为89H&#xff0c;不可以对它进行位操作。 只能进行字节操作&#xff0c;即给寄存器整体赋值的方法设置初始值&#xff0c;如TMOD0x01。在上电和复位时&#xff0c…

中小型企业HR人力资源管理系统源码带使用手册和操作说明

【程序语言】&#xff1a;.NET 【数据库】&#xff1a;SQL SERVER 2008 【运行环境】&#xff1a;WINDOWSIIS 【其他】&#xff1a;前端bootstrap框架 运行环境 系统运行环境&#xff1a;ASP.NET 4.0/IIS 6.0/SQL Server2008&#xff0c;使用成熟稳定的Webform开发模式&…

【现代密码学原理】——期末复习(冲刺篇)

&#x1f4d6; 前言&#xff1a;快考试了&#xff0c;做篇期末总结&#xff0c;都是重点与必考点。 博主预测考点&#xff1a; 计算题&#xff1a;RSA、Diffie-Hellman密钥交换、EIGamal 密钥交换、使用SHA-512算法&#xff0c;计算消息的Hash值、计算消息的HMAC 应用题&#…

1.cesium简介和环境搭建

目录 一、cesium介绍 cesium是什么&#xff1f; cesium能做什么&#xff1f; cesium的限制&#xff1f; cesium的好处是什么&#xff1f; 二、创建一个简单的cesium 安装node环境 下载cesiumSDK 部署cesium 三、补充说明 Documentation Sandcastle 一、cesium介绍 …

重点| 系统集成项目管理工程师考前50个知识点(7)

本文章总结了系统集成项目管理工程师考试背记50个知识点&#xff01;&#xff01;&#xff01; 帮助大家更好的复习&#xff0c;希望能对大家有所帮助 比较长&#xff0c;放了部分&#xff0c;需要可私信&#xff01;&#xff01; 46、项目合同签订的注意事项&#xff1a; …

Hadoop实训1:Linux基本搭建和操作

目录 1、创建三台虚拟机 2、创建使用SSH远程连接 3、实现IP地址与主机名的映射 4、关闭和禁用防火墙 5、创建目录结构 6、压缩打包 7、安装软件包 安装jdk 安装mysql 8、创建脚本文件 9、运行脚本文件 11、远程拷贝文件 总结 1、创建三台虚拟机 序号虚拟机名称…

22.12.19打卡 Codeforces Round #839 (Div. 3) A~E

Dashboard - Codeforces Round #839 (Div. 3) - Codeforces 浑浑噩噩的一场, 被队友带飞 A 不解释 /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠸⣿⣿⣆⠹⣿⣿⢾⣟⣯⣿⣿⣿⣿⣿⣿⣽⣻⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣻⣽⡿⣿⣎⠙⣿⣞⣷⡌⢻…

Python -- 文件操作

目录 1.文件的打开与关闭 1.1 打开文件 1.2 关闭文件 2.文件的读取和写入 2.1 文件的读写 3.CSV文件的读写 3.1 CSV文件的写入 4.将数据写入 4.1 StingIO 4.2 BytesIO 5.练习&#xff1a;实现文件拷贝 6.序列化和反序列化 6.1 使用JSON实现列化 6.2 使用JSON实现…

Spring Boot的单元测试

⭐️前言⭐️ 一个Spring项目是有很多个功能的&#xff0c;如果想要单独测试某一个功能是否逻辑正确&#xff0c;就不能只依靠启动类来将整个项目启动去进行测试&#xff0c;而是要通过单元测试的方法&#xff0c;来单独的测试某一个功能&#xff0c;这篇文章就来介绍单元测试…

MEC硬件加速技术分析

【摘 要】为了解决边缘机房的供电、散热以及承重能力有限,无法为MEC提供足够的计算资源的问题,分析了MEC在第三方应用,OVS和虚拟化用户面的性能瓶颈,提供硬件加速的方法。研究表明,通过上述方法,可突破MEC的性能和时延瓶颈,实现高性能、低时延,并兼顾性能、成本和开放…

稳踞三大价值高地!昆仑万维角逐AIGC“新大陆”

历史总是被前瞻者和实干家推动着加速前行。 15世纪&#xff0c;多艘探险船队从欧洲出发向着东方而去&#xff0c;开启群雄角逐的探索时代。他们在航行中不断发现新大陆&#xff0c;兴起无数的造富神话&#xff0c;也加速了全球贸易、信息等方面的交流&#xff0c;翻开一个全新…

Hadoop学习笔记——MapReduce

文章目录一、MapReduce概述1.1、MapReduce定义1.2、MapReduce优缺点1.2.1 优点1.2.2 缺点1.3、MapReduce核心思想1.4、MapReduce进程1.5、官方WordCount源码1.6、常用数据序列化类型1.7、MapReduce程序规范1.8、 WordCount案例实操1.8.1 本地测试1.8.2 提交到集群测试一、MapRe…

XiaoMi手机MIX 2S线刷固件和刷入Recovery、Root

mix 2s 固件下载地址 https://web.vip.miui.com/page/info/mio/mio/detail?postId4865868&app_versiondev.20051 miflash线刷工具下载地址 https://miuiver.com/miflash/ 安装miflash线刷工具 点击安装驱动 打开miflash 手机关机按音量下加开机键进入bootloader&#xf…

(Java)[NOIP2006 普及组] 明明的随机数

[NOIP2006 普及组] 明明的随机数一、题目描述二、输入格式三、输出格式四、样例输入五、样例输出六、正确代码&#xff08;1&#xff09;方法一&#xff08;2&#xff09;方法二&#xff08;3&#xff09;方法三七、思路与分析&#xff08;1&#xff09;题目分析&#xff08;2&…

mysql基于Amoeba(变形虫)实现读写分离

一&#xff0c;Amoeba介绍 1、什么是amoeba&#xff1f; ​ Amoeba(变形虫)项目&#xff0c;专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据…

【数据结构】顺序表与线性表之ArrayList

目录 一、顺序表与线性表的概念 1、顺序表 2、线性表 二、Java里的集合类之ArrayList 1、ArrayList与顺序表 2、认识ArrayList 1.构造方法 2.常用方法 3.遍历ArrayList的几个方法 4.扩容机制 三、模拟实现ArrayList 1、字段 2、构造方法 3、常用方法 1.判满 2.判…

10.1、Django入门

文章目录预备知识MVC模式和MTV模式MVC模式MTV 模式Django框架Django框架简介Django框架的应用启动后台admin站点管理数据库迁移创建管理员用户管理界面本地化创建并使用一个应用bookapp预备知识 HTTP协议就是客户端和 服务器端之间数据传输的格式规范&#xff0c;格式简称为“…

教你搭建FTP文件共享服务器

一、什么是FTP FTP—文件传输协议&#xff08;File Transfer Protocol&#xff0c;FTP&#xff09;是用于在网络上进行文件传输的一套标准协议&#xff0c;它工作在 OSI 模型的第七层&#xff0c; TCP 模型的第四层&#xff0c; 即应用层&#xff0c; 客户在和服务器建立连接前…

BCN基团TAMRA-BCN-PEG4-endo,endo-BCN-PEG4

中文名&#xff1a;endo-BCN-四聚乙二醇-四甲基罗丹明 英文名&#xff1a;endo-BCN-PEG4-TAMRA&#xff0c;TAMRA-BCN-PEG4-endo CAS号&#xff1a;N/A 化学式&#xff1a;C46H56N4O10 分子量&#xff1a;824.97 产品描述&#xff1a; TAMRA-BCN-PEG4-endo包含 TARMA 染料和 …

分布式系统(数据复制与一致性)

文章目录ReplicationCAP ConjectureData-centric Consistency ModelsSequential ConsistencyCausal ConsistencyEntry ConsistencyEventual ConsistencyClient-centric Consistency ModelsMonotonic Read ConsistencyMonotonic Writes ConsistencyRead Your Writes Consistency…