2017年省赛前最后一水 Problem C: a*b%c

本文介绍了一种快速计算a*b%c的方法,通过对b的二进制位进行判断,使用类似快速幂的思想来减少计算复杂度。


题目描述

Lucy give you three number a,b,c.
You should tell Lucy the answer of a*b%c

输入

The first line of the input gives the number of test cases, T(1<T<1000). T test cases follow.
For each test case.
One line contains three integer a,b,c(0<a,b,c<1e18)

输出

For each test case, output a single line "Case #x: y", where x is the case number, starting from 1. And y is the answer.

样例输入

2
2 3 5

3 3 3

样例输出

Case #1: 1

Case #2: 0





分析: 


类似于求快速幂   

(a*b)%c   进行转化

(a*b)%c  =  (a*(2x1 +2x2+2x3+……+2xn))%c  =  (a*2x1+a*2x2+a*2x3+……+a*2xn)%c  =   (a*2x1)%c+(a*2x2)%c+( a*2x3)%c+……+( a*2xn)%c


在b的每个二进制位上  判断是否加上 a的 2x  倍  (快速幂是乘上a的 2方)




代码如下:

#include <stdio.h>
long long fun(long long a,long long b,long long c){
    long long sum=0;
    while (b){
        if(b%2){//                 判断b的二进制位是否为1 
            sum=(sum+a)%c;
        }
        b/=2;
        a=(2*a)%c; 
    }
    return sum;
}
int main (){
    long long a,b,c;
    int t;
    scanf("%d",&t);
    int Case=1;
    while (t--){
        scanf ("%lld%lld%lld",&a,&b,&c);
        printf ("Case #%d: %lld\n",Case++,fun(a,b,c));
    }
    return 0;
}





## 、核心研发工作清单 ### 1. 预测业务逻辑设计 ### 1.1 预测目标定义 **必须明确:** - 预测什么:胜负、胜平负、比分、让球盘 - 何时预测:赛前24小时、赛前1小时、实时更新 - 输出形式:确定性结果、概率分布、置信区间 **为什么框架无关:** 无论用什么模型,预测目标是前提条件。XGBoost和神经网络都需要先定义预测任务。 **为什么必须做:** 预测目标决定了特征选择、模型设计、评估标准的全部方向。 ### 1.2 用户场景的业务流程设计(用户体验) **场景设计:** - 场景1”今晚看什么”:如何定义”值得看”,召回策略,排序因子 - 场景2”这场谁会赢”:实体识别逻辑,歧义处理规则,预测调用流程 - 场景3”为什么”:上下文引用规则,解释内容深度控制 +推荐场景、预测场景、解释场景、对比场景、趋势与状态场景、澄清与多轮对话场景、数据探索场景(重用户需求)、资讯场景、异常流程处理 ### 1.3 异常场景的业务策略 **必须定义:** - 预测服务不可用时如何降级 - 数据缺失时如何处理 - 新球队、新联赛如何冷启动 - 用户输入歧义时如何澄清 --- ### 2. 数据建模 ### 2.1 实体关系模型设计 - 核心实体:Match、Team、League、TeamStats、H2H - 实体间关系:对多、多对多、自关联 - 关键字段:主键、外键、时间戳、状态字段 - 数据范式:第几范式,是否反范式化 ### 2.2 特征体系定义(预测效果) - 基础特征:近N场胜率(N取多少?为什么?)、主客场表现、进失球数 - 衍生特征:近期势头、对阵克制度、赛程疲劳度 - 特征计算逻辑:如何避免数据泄露、如何处理缺失值 - 特征验证方法:相关性分析、重要性评估、消融实验 ### 2.3 数据质量标准(模型稳定性) - 完整性要求:哪些字段必填,缺失率阈值 - 致性规则:比分与结果的逻辑校验、时间合理性检查 - 异常值检测:统计阈值定义、业务规则校验 - 更新时效性:赛后多久必须更新结果、数据延迟的SLA --- ### 3. 预测算法设计 ### 3.1 评估体系设计 - 准确性指标:Accuracy、Precision、Recall、F1、LogLoss - 概率校准指标:Calibration Curve、Brier Score - 长期稳定性指标:滚动窗口准确率、不同联赛表现差异 - 业务指标:预测覆盖率、用户信任度、解释满意度 ### 3.2 可解释性机制设计 - 特征贡献到自然语言的映射规则 - 解释内容的层次设计:简明结论、关键因素、详细数据 - 不确定性的表达方式:如何诚实表达概率 - 解释质量的评估标准 ### 3.3 模型失效检测机制(系统健壮性) **必须定义:** - 失效信号:准确率持续下降、概率校准度恶化、异常案例激增 - 触发阈值:下降多少触发报警、连续多久触发重训练 - 响应策略:降级、报警、人工介入、模型回滚 --- ### 4. 对话交互系统设计 ### 4.1 意图分类体系(对话系统的核心逻辑-4.3) - 支持的意图类型:查询、预测、推荐、分析 - 意图的层级结构:级意图、二级细分 - 边界场景处理:意图不明确、多意图混合、超出能力范围 - 意图识别的置信度阈值 ### 4.2 实体识别与标准化 - 实体映射库:球队别称、联赛简称、时间表达 - 标准化规则:如何将多种表达映射到标准实体 - 歧义消解策略:当”曼联”可能指多个实体时如何处理 - 模糊匹配容忍度:拼写错误的容忍程度 ### 4.3 上下文管理策略 - 上下文状态结构:当前话题、历史消息、用户画像 - 引用规则:代词消解、略补全、话题切换检测 - 过期策略:时间TTL、话题切换清空、用户主动重置 - 上下文引用的优先级:最近话题优先还是明确实体优先 ### 4.4 对话降级策略 - 无法识别意图时的处理:提供引导菜单还是反问澄清 - 实体无法识别时的处理:主动澄清还是模糊匹配 - 查询无结果时的处理:告知无结果还是推荐相关内容 - 服务失败时的处理:降级到规则推断还是诚实告知 --- ### 5. 推荐系统策略设计 ### 5.1 推荐目标定义 **必须明确:** - 优化目标:最大化点击率、观看率、满意度 - 约束条件:时效性、数据可靠性、预测支撑 - 评估指标:推荐点击率、用户满意度、多样性 ### 5.2 召回与排序规则 **必须定义:** - 召回策略:基于用户偏好、基于比赛热度、基于预测特征、基于时间 - 排序因子:兴趣匹配、比赛精彩度、比赛重要性、时间便利性 - 权重分配:各因子的权重如何确定 - 多样性控制:如何避免推荐单类型 ### 5.3 冷启动策略 **必须定义:** - 新用户:如何快速建立画像、默认推荐策略 - 新比赛:如何在缺少历史数据时推荐 - 画像构建:需要多少交互数据才能建立有效画像 **为什么框架无关:** 冷启动是所有推荐系统都要面对的问题,与技术选型无关。 **为什么必须做:** 冷启动处理不好会导致新用户流失。 --- ### 6. 系统架构设计 ### 6.1 服务职责划分 - 每个服务的职责边界:数据服务、预测服务、对话引擎、推荐服务 - 服务间的调用关系:谁调用谁、数据如何流转 - 职责不重叠原则:避免功能重复 - 服务拆分粒度:多细才合理 ### 6.2 接口契约设计 - 接口输入输出格式:JSON schema定义 - 错误码体系:成功、失败、各种异常的标准错误码 - 接口版本管理:如何向后兼容 - 接口幂等性:同样的请求多次调用结果致 **为什么必须做:** 接口契约不清晰会导致集成困难、问题排查困难。 ### 6.3 容错与降级机制 **必须定义:** - 每个服务的降级策略:完全不可用、响应超时、部分功能失效 - 超时与重试策略:超时时间、重试次数、重试间隔 - 服务熔断机制:多少次失败后熔断、如何恢复 - 降级后的用户体验:如何保证体验连续性 ---这份预案是可脱离架构或选型的任务吗?放在体育赛事智能系统中来看
最新发布
11-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值