2、机场指示灯--赛码网周考(0609)

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
机械工小王在一次乘坐飞机时对机场的跑道指示灯比较感兴趣,他想设计一种模拟电路控制机场指示灯的亮灭以便在紧急情况中可以用指示灯的排列来向机场人员传达某种信号。
小王在模拟电路中设计了 n 个指示灯,每个指示灯操作一次就会将其状态改变,即:点亮转为关闭,或关闭转为点亮。将这些指示灯从 1 到 n 编号,开始的时候所有指示灯都是关闭的。小王计划在模拟电路中上执行如下动作:将编号为2的倍数的所有指示灯操作一次,也就是把 2 4 6 8 ... 等序号指示灯点亮。将编号为3的倍数的所有指示灯操作一次, 也就是对 3 6 9 ... 等序号指示灯操作,注意此时6 12 18 ... 等序号指示灯又关闭了。将编号为4的倍数的所有指示灯操作一次。
输入
3个用空格分开的正整数分别为:N L R (L<R<N<10^15) N表示指示灯数,L表示区间的左边界,R表示区间的右边界。
输出
输出1个整数,表示经过所有操作后,[L,R] 区间中有多少个指示灯是点亮的。
 
样例输入
5 2 3
样例输出
2
 
解题思路:本题太坑了,读题的时候以为只做2 3 4的倍数,实际题目是到n的倍数都操作一遍
用0表示等处于关闭状态。然后针对每一个灯(区间内),如果是2-n的倍数就转变状态。最后输出状态为1的数目
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define maxn 100005
 5 typedef long long ll;
 6 ll a[maxn];
 7 int main()
 8 {
 9     ll n,l,r;
10     while(cin>>n>>l>>r)
11     {
12         for(int i=l;i<=r;i++)
13             a[i]=0;
14 
15         for(int i=l;i<=r;i++)
16         {
17             for(int j=2;j<=n;j++)
18             {
19                 if(i%j==0)
20                     a[i]^=1;
21             }
22         }
23         int res=0;
24         for(int i=l;i<=r;i++)
25         {
26             if(a[i])
27                 res++;
28         }
29         cout<<res<<endl;
30 
31     }
32     return 0;
33 }
解题思路二:针对每一个数,除了完全平方数都是偶数个数乘积的结果。例如 6 = 2*3 = 1* 6 gong 4个数。因为1的倍数是不操作的,所以针对非完全平方式6,操作其2-n的倍数,其实就操作了奇数次,即2 3 6 的倍数时操作。因此状态与起始相反。对于完全平方数例如4,操作了2 4偶数次,因此和原始状态相同。所以即计算l-r区间内非完全平方数的个数即可。因此计算出完全平方数个数ans。非完全平方数个数为r-l+1-ans
 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 #include <algorithm>
 5 
 6 int main()
 7 {
 8     using namespace std;
 9     long long n, l, r;
10     while (cin >> n >> l >> r) {
11         int temp = sqrt((double)l);
12         long long i = temp * temp;
13         long long ans = -1;
14         if (i == l) {
15             ans++;
16         }
17         while (i <= r) {
18             ans++;
19             temp++;
20             i = temp * temp;
21         }
22         cout << r - l + 1 - ans << endl;
23     }
24     return 0;
25 }

 

转载于:https://www.cnblogs.com/qqky/p/6978141.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值