题目描述

如图,设一个圆分成 n 个扇形 S1 ... ,Sn (扇形大小不一样),现用 k 种不同的颜色对这 n 个扇形进行染色 ( n>=3 , k>=3 );

每一个扇形染一种颜色,相邻的 (即有公共边的) 扇形染不同的颜色,试求共有多少种染色方法.



--2005全国高中数学联赛

输入输出格式

输入 :

  两个整数 n 和 k (0 <= n,k <= 1000)

输出 :

  最多的方案种数, 答案对 19260817 取模

样例数据

  input#1:

3 5

  output#1

60

Solution

思路有误! 之后会 更新.

这道题感觉上和 HNOI 2008 越狱差不多.

我们令 :

     $$a^{n}{m}$$

为 一个长度为n的序列 里面有m种颜色时满足条件的方案数.

同时,我们通过 越狱 这道题,可以知道 其中合法情况即为:

$$ a^{n}
{m} =n*(n-1)^{m-1}$$

接下来,我们先假设当前这个圆为一个序列,那么我们满足的答案即为$$ a^{n}_{k} $$

但是我们会发现,如果说单纯当作一个数列来处理的话,我们会有重复的情况:

即首位与末位的颜色相同此时我们作为一个圆的话,是不满足条件的.

那么我们可以换一个角度,我们可以把末位和首位的两个元素看为一个元素.

那么此时,在这种情况下的合法情况即为我们上一次求解的多余的.因为此时的首位和末位正好是相同的.

那么此时我们就可得到答案为:

$$ a{n}_{k}-a{n-1}_{k} $$

于是即可求解.






## 代码 :
```
#include
using namespace std;
long long n,m,p;
long long quick_pow(long long s,long long ks)
{
if(ks==1)return s%p; long long k=s; ks--;
while(ks>0)
{
if(ks%2==1)k=(k*s)%p;
ks/=2;
s=(s*s)%p;
}return k%p;
}
int main()
{
cin>>n>>m;
p=19260817;
int old=(m*quick_pow(m-1,n-1)%p+p)%p;
int duo=(m*quick_pow(m-1,n-2)%p+p)%p;
cout

K-lord #3 (组合数学)的更多相关文章

  1. 组合数学(全排列)+DFS CSU 1563 Lexicography

    题目传送门 /* 题意:求第K个全排列 组合数学:首先,使用next_permutation 函数会超时,思路应该转变, 摘抄网上的解法如下: 假设第一位是a,不论a是什么数,axxxxxxxx一共有 ...

  2. Codeforces - 1081C - Colorful Bricks - 简单dp - 组合数学

    https://codeforces.com/problemset/problem/1081/C 这道题是不会的,我只会考虑 $k=0$ 和 $k=1$ 的情况. $k=0$ 就是全部同色, $k=1 ...

  3. [ZJOI2011]看电影(MOVIE)

    题目描述 到了难得的假期,小白班上组织大家去看电影.但由于假期里看电影的人太多,很难做到让全班看上同一场电影,最后大家在一个偏僻的小胡同里找到了一家电影院.但这家电影院分配座位的方式很特殊,具体方式如 ...

  4. DP百题练(一)

    目录 DP百题练(一) 线性 DP 简述 Arithmetic Progressions [ZJOI2006]物流运输 LG1095 守望者的逃离 LG1103 书本整理 CH5102 移动服务 LG ...

  5. django模型操作

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表        

  6. 组合数学or not ---- n选k有重

    模板问题: 1. 取物品 (comb.pas/c/cpp) [问题描述] 现在有n个物品(有可能相同),请您编程计算从中取k个有多少种不同的取法.[输入] 输入文件有两行,第一行包含两个整数n,k(2 ...

  7. ACM学习历程—SNNUOJ 1116 A Simple Problem(递推 && 逆元 && 组合数学 && 快速幂)(2015陕西省大学生程序设计竞赛K题)

    Description Assuming a finite – radius “ball” which is on an N dimension is cut with a “knife” of N- ...

  8. Luogu P1066 2^k进制数 组合数学

    分两种情况:$k|n$和$k$不整除$n$ 如果$k|n$,那么长度为$n$的二进制数就能被恰好分成$n/k$个块:所以若某个数长度是$x$个块,由于每个块内能填不同的$2^k-1$个数,那么就有$C ...

  9. poj 3734 Blocks 快速幂+费马小定理+组合数学

    题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...

  10. uestc1888 Birthday Party    组合数学,乘法原理

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=25539#problem/G 题目意思: 有n个人,每个人有一个礼物,每个人能拿 ...

随机推荐

  1. IOS开发之----详解在IOS后台执行

    文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 ...

  2. iphone之打开pdf、doc、xls文件用UIWebView

    //文件名字及类型 NSString *path=[[NSBundle mainBundle]pathForResource:@"xls1" ofType:@"xls&q ...

  3. InitialContext与lookup

    Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/Simpl ...

  4. C#遍历文件夹下全部文件

    public static List<string> GetFile(string path, List<string> FileList, string RelativePa ...

  5. JavaScript(appendChild添加节点)

    首先,我们有一个编辑器,有一个简单的HTML页面,页面的级别分别 --> html  -->head[title,meta,script,link] -- body,然后再新建一个inde ...

  6. Objective-C相关Category的收集(更新)

    Categories是给你得不到源码的classes增加功能的一种方法.这个页面收集一些相关的Category,并且持续更新,你可以订阅关注.作者是Fille ?str?m,是@ IMGNRY的联合创 ...

  7. numpy.random.randint

    low.high.size三个参数.默认high是None,如果只有low,那范围就是[0,low).如果有high,范围就是[low,high). >>> np.random.ra ...

  8. 多进程Queue

    进程间通讯 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用以下方法: Queues 使用方法跟threading里的queue差不多 from multiprocessing impo ...

  9. 计算机图形学(Conputer Graphics):非均匀有理B样条

    计算机图形学(Conputer Graphics):非均匀有理B样条 非均匀有理B样条(Non-Uniform Rational B-Spline)英文缩写,NURBS. 它是贝塞尔曲线的一个推广,而 ...

  10. MySQL 查询优化之 Index Merge

    MySQL 查询优化之 Index Merge Index Merge Intersection 访问算法 Index Merge Union 访问算法 Index Merge Sort-Union ...