思路:

考虑从左至右依次向每个位置放置数字,对于第i个位置,以i为结尾的i个前缀和模P是不能相等的(因为不存在和为P的倍数的子串),所以第i个位置只能放置P - i个不同的数字。则答案就是(P - 1) * (P - 2) * ... * (P - n)。
实现:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD = 1e9 + ; int main()
{
ll n, P;
while (cin >> n >> P)
{
if (n > P - ) { cout << << endl; continue; }
ll ans = ;
for (ll i = P - ; i > P - - n; i--)
{
ans = ans * i % MOD;
}
cout << ans << endl;
}
return ;
}

最新文章

  1. 为什么我们要给父级元素写overflow:hidden
  2. Web框架们
  3. [转]如何让div中的内容垂直居中
  4. android坐标
  5. Spring中WebApplicationContext的研究
  6. python中列表,元组,字符串如何互相转换
  7. Codeforces 417E Square Table(随机算法)
  8. Linux下的Job Control(转:http://blog.chinaunix.net/uid-26495963-id-3062757.html)
  9. ubunu设置java命令为全局的命令-添加到全局环境变量
  10. github jekyll site不再使用Maruku由于Markdown翻译员,但kramdown
  11. 如何利用【百度地图API】进行定位?非GPS定位
  12. 我的API HOOK库
  13. 用ildasm和ilasm对.net下的exe程序进行破解初探
  14. Linux解决MySQL-python安装失败问题
  15. 华为解锁BL
  16. h5py快速入门指南
  17. 使用json读写文件中的数据
  18. 07-OpenLDAP密码审计
  19. day11:装饰器
  20. 【VI】如何再执行上一个(历史)命令(已解决)

热门文章

  1. poj3417 Network——LCA+树上差分
  2. 从MySQL获取数据
  3. Day02:数据类型、字符编码、文件处理
  4. python_xrange和range的异同
  5. Mice and Holes
  6. .Net框架中的CLR,CTS,ClS的解释
  7. A - Toy Cars
  8. Lua 5.1.1 源代码阅读笔记
  9. char*和CStringA互转
  10. HDU1080 【LCS变形】