TouchStone
  请登录后使用
登录 注册
距离CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 系统首页  练习题库  考试列表  判题结果  信息发布  解题排行
  • 首页
  • 题库
  • P9754
  • 题目
  • P9754[ARC148F] 998244353→1000000007
    限制 : 时间限制 : - MS   空间限制 : 524288 KB  SPJ
    评测说明 : 1s,512MB
    问题描述

    本题没有输入数据,只有输出数据

    现有一种编程语言,它可以对64位无符号整数进行加法和乘法(自然溢出)和将一个整数模 \(998\ 244\ 353\) 这三种运算。现在需要你写一个程序,实现两个数乘法对 \(1\ 000\ 000\ 007\) 取模。

    具体而言,有 \(26\) 个寄存器,名称依次是 \(A,B,\cdots,Z\) ,每个寄存器可以存储一个 \([0,2^{64}-1]\) 范围内的无符号整数。一开始,寄存器 \(A,B\) 里有两个整数 \(a,b\) ,值在 \([0,1\ 000\ 000\ 006]\) 范围内,即为输入的两个数;其他寄存器初值全为 \(0\) 。在你的程序结束时,寄存器 \(C\) 中的数值必须是 \(a\times b\bmod 1\ 000\ 000\ 007\) ,其他寄存器可以有任意数值。

    输入格式

    输出格式

    第一行一个整数 \(N\) ,表示程序语句数量,你要保证 \(1\leq N\leq 100\)

    接下来 \(N\) 行,每行一条程序语句,可以是以下三种:

    • add x y z :其中 \(x\) 是寄存器, \(y,z\) 可以是寄存器或者 \([0,2^{64}-1]\) 范围内的整数。这条语句的作用是将 \((y+z)\bmod 2^{64}\) 赋值给 \(x\)
    • mul x y z :其中 \(x\) 是寄存器, \(y,z\) 可以是寄存器或者 \([0,2^{64}-1]\) 范围内的整数。这条语句的作用是将 \((y\times z)\bmod 2^{64}\) 赋值给 \(x\)
    • rem x y :其中 \(x\) 是寄存器, \(y\) 可以是寄存器或者 \([0,2^{64}-1]\) 范围内的整数。这条语句的作用是将 \(y\bmod 998\ 244\ 353\) 赋值给 \(x\)

    样例输出如下,该程序展示输出格式,不能通过本题。

    5
    mul C A B
    rem C C
    add A A 10
    add D 2 B
    add E 1 0
    
    提示

    评测方式

    评测将会采用很多组预设的 \(a,b\) 作为输入,多次运行你的程序,只有当你的程序每次都能算出正确答案,才会被判定为正确。