【题解-Acwing】AcWing 5579. 增加模数(TLE)

题目:5579. 增加模数

题目描述

给定 H 对非负整数数对 (Ai,Bi) 和一个正整数 M。

请你计算并输出 (A1B1+A2B2+...+AHBH) mod M。

输入格式

第一行包含整数 T,表示共有 T 组测试数据。

每组数据第一行包含整数 M。

第二行包含整数 H。

接下来 H 行,每行包含两个整数 Ai,Bi。

输出格式

每组数据输出一行结果。

数据范围

1≤T≤100,

1≤M≤45000,

1≤H≤45000,

0≤Ai,Bi≤107,

Ai 和 Bi 不同时为 0。

时空限制

3s / 128MB

输入样例

复制代码
3
16
4
2 3
3 4
4 5
5 6
36123
1
2374859 3029382
17
1
3 18132

输出样例

复制代码
2
13195
13

代码 (TLE)

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

int T, p, H, a, b;
int res, sum;

int main(){
    scanf("%d", &T);
    while(T --){
        scanf("%d %d", &p, &H);
        res = 0;
        while(H --){
            scanf("%d %d", &a, &b);
            sum = 1 % p;
            a %= p;
            while(b){
                if(b & 1){
                    sum = sum * a % p;
                }
                b >>= 1;
                a = a * a % p;
            }
            res = (res + sum) % p;
        }
        printf("%d\n", res);
    }
    return 0;
}
相关推荐
熊猫钓鱼>_>3 分钟前
面试出现 606 次的第 K 大,被拆成三个问题问
算法·面试·职场和发展·校招·面经·oj·ai生成
xuxigifxfh19 分钟前
牛客:BISHI2 【模板】栈的操作
java·开发语言·windows·算法
aqiu11111135 分钟前
【C++算法打怪专栏】LeetCode 402. 移掉 K 位数字(单调栈 + 贪心)
c++·算法·leetcode
糖果豆豆1 小时前
对象是字段,还是关系?集合论和范畴论吵了三十年,答案是两个都对
算法·架构
第六种自由1 小时前
[路飞]_Leetcode 22. 括号生成
javascript·算法·leetcode
isyoungboy1 小时前
事件驱动状态机与循环扫描状态机:两种计算模型的比较研究
算法·状态机
行者全栈架构师1 小时前
【鸿蒙心迹】从手机到平板、折叠屏——多端适配自查清单与踩坑实录(HarmonyOS 7.x)
前端·算法·架构
longlongzihan2 小时前
LeetCode 24.两两交换链表中的节点:虚拟头结点与指针
算法·leetcode·链表
residual_fan2 小时前
基于控制感知域对抗网络的变工况故障诊断:从控制系统与运行状态协同的角度建立模型
人工智能·算法·数据挖掘·数据分析
翻山越岭的少年2 小时前
用控制信号理解状态变化:基于控制感知域对抗网络的变工况故障诊断
算法