快速摸幂

#include <iostream>  


using namespace std;


// 快速模幂计算函数  
/*
计算n的n次方的末尾数字
n是<1e9   的大数
*/
int powermod(long long a, int n, int m)
{
long long res = 1;
while (n) {
if (n & 1) {        // n % 2 == 1  
res *= a;
res %= m;
}
a *= a;
a %= m;
n >>= 1;
}
return res;
}


int main()
{
int n;


cin >> n;


cout << powermod(n, n, 10) << endl;


return 0;
}
# T446004 不知道 ## 题目背景 不知道,令人闻风丧胆的猫猫魔,福尔魔斯的宿敌。 某一天,她在网上看到了一道小学奥数问题:约瑟夫问题。 ## 题目描述 不知道又要作案了。她让 $n$ 只猫猫站成一行,从左到右初始编号为 $1,2,\dots,n$。同时,它们初始站在与自己编号相同的格子上。 不知道有 $k+1$ 个喜欢的数字 $t_0,t_1,\dots,t_k$ 。它们满足: - $t_0=1$ - 对于 $1\le i\le k$ , $t_{i-1}<t_i$ - $t_k\le n$ 不知道会 $n-1$ 轮猫猫,每一轮她都会正好一只猫猫。一次猫猫遵循以下规则: 1. 从 $0$ 到 $k$ 中随机选择一个数 $i$ 。 1. 若有猫猫现在待在第 $t_i$ 格上,不知道会这个猫猫,随后这个猫猫将会跑出格子,不再参与后续的任何流程,然后进行第三步;否则回到第一步。 1. 让所有猫猫跑到新的格子上。若此时有 $p$ 只猫猫,它们会在保证相对顺序不变的情况下排到 $[1,p]$ 的格子上。 但是虽然猫猫很可爱,猫猫和不知道都是会厌烦的,所以当只剩一只猫猫时,不知道会停止猫猫。请求出每只猫猫最终没被的概率。 最终答案对 $998244353$ 取模。 ## 输入格式 第一行两个整数 $n$ 和 $k$ ,代表总共有 $n$ 个猫猫,不知道共有 $k+1$ 个喜欢的数字。 第二行 $k$ 个整数,分别代表 $t_1$ 至 $t_k$ 共 $k$ 个数,中间用空格隔开。 ## 输出格式 一行 $n$ 个整数,第 $i$ 个数表示初始编号为 $i$ 的猫猫没被的概率,空格隔开;对 $998244353$ 取模。 ## 输入输出样例 #1 ### 输入 #1 ``` 2 0 ``` ### 输出 #1 ``` 0 1 ``` ## 输入输出样例 #2 ### 输入 #2 ``` 4 1 3 ``` ### 输出 #2 ``` 0 748683265 748683265 499122177 ``` ## 输入输出样例 #3 ### 输入 #3 ``` 8 3 3 6 8 ``` ### 输出 #3 ``` 0 291154603 291154603 582309206 166374059 166374059 748683265 748683265 ``` ## 说明/提示 #### 样例解释: 在第一组样例中,不知道只喜欢 $1$ 这个数字,因此她每次一定会当前的第一只猫猫,那么第一只猫猫一定会被,第二只猫猫一定不会被。 第二组样例中,四只猫猫从左到右不被的概率分别为 $0,\frac{1}{4},\frac{1}{4},\frac{1}{2}$ 。 #### 数据范围: **本题采用捆绑测试。** 对所有数据,保证 $1\le n,k\le10^6$ ; $t_i$ 范围见上。 | # | 特殊性质 | 分值 | | :--: | :-------------------: | :--: | | 0 | $n\le 8$ | 10 | | 1 | $k=0$ | 5 | | 2 | $k=1$ | 10 | | 3 | $n\le5\times10^3$ | 15 | | 4 | $k\le 10$ | 15 | | 5 | $n\le2\times10^5$ | 20 | | 6 | 无特殊限制 | 25 | 后记: 花生:话说不知道本名叫什么 福尔魔斯:不知道,所以叫不知道 这道题的c++代码!
最新发布
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值