LSGJ zyys 战队的 CYA 小垃圾,被各位神佬出的题目搞得心态爆炸。于是他模仿了蔡老师给了你两个整数 n 和 m .让你计算字母表大小为 m ,(即可用 m 个字母)长度为 n ,不存在长度至少为 2 的回文子串的字符串个数.
输入格式
第一行一个数 T 表示数据组数.
接下来每行两个数 n 和 m .
输出格式
T 行,每行一个答案,对 10^9+7 取模
输入输出样例
zyys.in
2
56
65
zyys.out
1920
1620
说明
对于 10% 的数据,保证 n, m ≤ 5 .
对于 30% 的数据,保证 n, m ≤ 20 .
对于 50% 的数据,保证 n, m ≤ 500 .
对于 70% 的数据,保证 n, m ≤ 100000 .
对于 90% 的数据,保证 n, m ≤ 1∗10 ^9 .
对于 100% 的数据,保证 n, m ≤ 1*10 ^18 , T≤ 50 .
因为是一道很类似的题目&&ZYYS,所以没有小样例。[手动滑稽]

Solution:

巨说是水题,但是也有蛮多人没写出来。

思路是组合数学,类似与HNOI越狱这道题。首先解释下题意(由于题面确实不清楚),本题求的是用m个不同的物品排列成长度为n的序列,物品可以无限量使用,但是不能排出有长度至少为2的回文子序列的序列,求方案数。

首先,考虑拥有长度至少为2的回文子序列的序列的性质:包含类似‘aa’(某个字符和下一个字符相同)的子序列或类似‘aba’(某个字符和下下个字符相同)的子序列。

于是由上述性质我们想到此题,要构造长度为n的满足题意的序列,则第一个位置可以放m种,而第二个位置可以放m-1种,而剩下的n-2个位置中的每个位置都只能放m-2种。

由乘法原理我们得到结论:满足条件的方案数=m*(m-1)*(m-2)n-2

注意:此题要开long long,且取模需要快速幂。

代码:

 #include<bits/stdc++.h>
#define ll long long
#define il inline
using namespace std;
const ll mod=;
il ll fast(ll x,ll k)
{
if(x<)return ;
ll ans=;x%=mod;
while(k)
{
if(k&)ans=ans*x%mod;
x=x*x%mod;k>>=;
}
return ans;
}
int main()
{
ll t,n,m;scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&n,&m);
if(n==)printf("%lld\n",m%mod);
else printf("%lld\n",(((m%mod)*((m-)%mod))%mod*fast(m-,n-))%mod);
}
return ;
}

2月24日考试——ZYYS的更多相关文章

  1. 1月24日考试(ftp密码)

    错因分析 ♦对文件的保存不够恰当,例如第一题和第三题的题目,我是真的很愤怒,第一题在我写了一个多小时,终于样例成功.可是当我再一次打开文件时,里面只有我最开始的代码,谁可以告诉我这是为什么(我绝对保存 ...

  2. SQL PASS将于8月24日在北京中医药大学举办线下活动

    活动主题:复制架构的实现和调优以及SQL Server BI在传统行业的应用 地点:北三环东路11号 北京中医药大学 白色的1号楼教学楼后楼5层511房间 时间:2013年8月24日 9:00-12: ...

  3. 2016年12月24日 星期六 --出埃及记 Exodus 21:19

    2016年12月24日 星期六 --出埃及记 Exodus 21:19 the one who struck the blow will not be held responsible if the ...

  4. 2016年11月24日 星期四 --出埃及记 Exodus 20:15

    2016年11月24日 星期四 --出埃及记 Exodus 20:15 "You shall not steal.不可偷盗.

  5. 2016年10月24日 星期一 --出埃及记 Exodus 19:8

    2016年10月24日 星期一 --出埃及记 Exodus 19:8 The people all responded together, "We will do everything th ...

  6. 2016年6月24日 星期五 --出埃及记 Exodus 14:21

    2016年6月24日 星期五 --出埃及记 Exodus 14:21 Then Moses stretched out his hand over the sea, and all that nigh ...

  7. 6月24日AppCan移动开发者大会礼品清单遭泄露

    6月24日,第一届AppCan移动开发者大会将在北京国际会议中心举办,大会以”平台之上,应用无限”为主题,全景展现移动应用发展趋势.AppCan 移动技术蓝图及80万开发者的技术实践成果. 大会现场礼 ...

  8. 2018年3月24日上海MVP线下技术交流活动简报

    2018年3月24日下午,几位上海MVP自发组织了一次线下的技术交流会,主要由MVP胡浩牵头,我(陈晴阳).刘鑫.朱兴亮和胡浩各自做了一次主题演讲,具体主题是: 陈晴阳:<这还是我认识的Visu ...

  9. 北京Uber优步司机奖励政策(4月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

随机推荐

  1. day 12 列表字典 补充

    1.列表list的遍历 ##### while遍历 需要len(list) list = [11,22,33,44,55] len_list = len(list) i = 0 while i< ...

  2. LNMP的安装--详细版

    一.软件概述 [root@webserver ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@webserver ~]# u ...

  3. Ceph学习之路(一)之ceph初识

    一.元数据和元数据管理 (1)元数据 在学习Ceph之前,需要了解元数据的概念.元数据又称为中介数据.中继数据,为描述数据的数据.主要描述数据属性的信息,用来支持如指示存储位置.历史数据.资源查找.文 ...

  4. [NOIp2018]货币系统 背包

    LG传送门 完全背包板子题 显然就是判断有多少种面值的货币可以被其他面值的货币表示,完全背包搞一搞就好了. 考场代码(一看这两格缩进就知道是考场代码): #include<cstdio> ...

  5. 【Unity3d】MenuItem修饰的方法无法触发的可能原因

    遇到了MenuItem修饰的方法无法触发的情况,顺利解决. 类放在Editor目录下,该类下其他方法被MenuItem修饰可以触发. 后来发现我修饰的方法和该类下另一个方法重名了. 改方法名,问题解决 ...

  6. springmvc传参---LocalDateTime、Date等时间类型转换

    此处定义的dateConvert用来转换Date类型,如果是LocalDate.LocalDateTime类型,则将Date类型换成相应的类型即可,注意java8的日期类型需要用Formatter格式 ...

  7. .net core 2.1.3可能引发Could not load file or assembly XXXXX的错误

    参考文档: https://github.com/aspnet/Home/issues/3503 写在前面 感觉自己现在干的活离开发越来越远了啊,不过也很好,每天能学到不少东西,中文的,英文的,永远也 ...

  8. Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★

    Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...

  9. 九个很有用的php功能

    1. 函数的任意数目的参数 你可能知道PHP允许你定义一个默认参数的函数.但你可能并不知道PHP还允许你定义一个完全任意的参数的函数 下面是一个示例向你展示了默认参数的函数: 1 2 3 4 5 6 ...

  10. NSURLErrorDomain错误代码

    kCFURLErrorUnknown = -998, kCFURLErrorCancelled = -999, kCFURLErrorBadURL = -1000, kCFURLErrorTimedO ...