51nod 1068 Bash游戏 V3(找规律)

本文介绍了一种通过分析数字各位上的3的倍数特性来快速判断在特定规则下的石子游戏中谁将获胜的方法。该方法适用于大规模数据输入,并提供了一个简洁的C++实现示例。
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量只能是2的正整数次幂,比如(1,2,4,8,16....),拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。
例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。(输入的N可能为大数)
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^1000)
Output
共T行,如果A获胜输出A,如果B获胜输出B。
Input示例
3
2
3
4
Output示例
A
B
A

思路:可以自己手算几个或者用sg函数打表看下前几个,就会发现只有3的倍数B才能赢。读入数很大,用小学的办法所有位的和能被3整除那么这个数也就能被3整除。

小规模sg的做法: 点击打开链接

代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1e3+5;
char str[maxn];
int main(void)
{
    int n, t;
    cin >> t;
    while(t--)
    {
        scanf(" %s", str);
        int len = strlen(str);
        int sum = 0;
        for(int i = 0; i < len; i++)
            sum += str[i]-'0';
        puts(sum%3 ? "A" : "B");
    }
    return 0;
}


随着工业控制、汽车电子、航空航天等领域对嵌入式系统实时性要求的不断提升,嵌入式实时操作系统(RTOS)的调度延迟已成为制约系统性能的关键因素。FreeRTOS作为一款广泛应用的开源实时操作系统,其抢占式调度机制在面对高优先级任务密集触发的场景时,仍存在调度延迟不确定、抖动较大等问题,难以满足毫秒级甚至微秒级的实时响应需求。本文针对FreeRTOS调度延迟优化展开深入研究,旨在通过分析调度延迟来源、优化中断临界区与优先级继承协议,显著降低调度抖动,提升系统实时性与确定性。本文首先对FreeRTOS抢占式调度机制进行系统性剖析,识别出中断响应延迟、任务切换开销、优先级翻转以及中断临界区过长等四大延迟来源。针对中断临界区问题,提出了基于精细粒度锁的优化策略,将原有关键段保护范围从完整函数缩小至最小必要代码块,同时采用编译器指令优化上下文切换流程,使中断临界区长度缩短约40%。在优先级继承协议方面,改进了协议的执行流程,引入延迟继承机制,避免不必要的优先级调整操作,将优先级继承的平均耗时降低约35%。此外,对任务切换过程中的寄存器保存与恢复策略进行了优化,通过汇编级优化减少了约20%的任务切换时间。实验结果表明,优化后的系统中断响应时间从平均4.2μs降低至2.5μs,任务切换时间从平均3.8μs降低至3.0μs,最大调度抖动从12.5μs降低至5.2μs,最坏情况执行时间降低约38%。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论基础 第3章 FreeRTOS调度延迟来源分析 第4章 调度延迟优化方案设计 第5章 优化方案详细实现 第6章 性能测试平台搭建与实验分析 第7章 总结与展望 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值