Color 圆盘染色

题目大意:给你一个圆盘,等分成n个扇形,有m种颜色,每两个相邻的扇形不能颜色不能相同,求染色方案数。

注释:m,n<=$10^6$.

想法:这题是小圆盘染色的加强版(小圆盘染色?),想法和那道题类似,只不过是一个更一般的形式。同样的想法,我们采用一种分划(分划?猛戳看黄字)。给定一个起始扇形。显然,这道题我们的疑惑就在于最后一个扇形与起始扇形的颜色是否相同。所以,我们期望考虑倒数第二个扇形的颜色。倒数第二个扇形的颜色无非就是两种:1.和起始扇形颜色相同。2.和起始扇形颜色不同。这两种显然就是本题的一种分划。那么,我们分别考虑:我们记录 a [i] 表示有i个扇形时的染色方案数。

  如果倒数第二个扇形与起始扇形颜色相同,我们就暂时将起始扇形、倒数第一个扇形和倒数第二个扇形看成一个扇形(因为这个大扇形的左右两个小扇形的颜色是相同的,剩下i-3个扇形对倒数第1个扇形没有影响),此时的方案数为a[i-2],又因为倒数第一个扇形被两个相同颜色的扇形夹住了,所以此时有(m-1)*a[i-2]种方案。

  另一种情况:此时倒数第2个扇形与起始扇形颜色不相同。那么此时,即使将倒数第一个扇形去掉,剩下的扇形也是满足题意的,而且此时倒数第一个扇形有(m-2)种染色方法,所以此时有(m-2)*a[i-1],种染色方法。

  综上,我们可以得出:$a_i=(m-1)\cdot a_{i-2}+(m-2)\cdot a_{i-1}$.

下面,附上丑陋的代码......

#include <iostream>
#include <cstdio>
#define mod 20102010
using namespace std;
long long a[1000100];
int main()
{
long long m,n;
scanf("%lld%lld",&m,&n);
a[1]=m;
a[2]=(m-1)*m%mod;
a[3]=(m*(m-1))%mod*(m-2)%mod;
for(int i=4;i<=n;i++)
{
a[i]=(a[i-1]*(m-2)%mod+a[i-2]*(m-1)%mod)%mod;
}
printf("%lld\n",a[n]);
return 0;
}

小结:错误

  1.千万要搞清楚n,m的输入顺序。

  2.由于n,m的数据范围,两数相乘是容易爆int,所以,开long long;

color 圆盘染色的更多相关文章

  1. JDOJ3008 圆盘染色

    JDOJ3008 圆盘染色 https://neooj.com/oldoj/problem.php?id=3008 题目描述 将一个圆盘分为N (1 <= N <= 105)个扇形,每个扇 ...

  2. 【POJ 1112】Team Them Up!(二分图染色+DP)

    Description Your task is to divide a number of persons into two teams, in such a way, that: everyone ...

  3. 【POJ 2942】Knights of the Round Table(点双连通分量,二分图染色)

    圆桌会议必须满足:奇数个人参与,相邻的不能是敌人(敌人关系是无向边). 求无论如何都不能参加会议的骑士个数.只需求哪些骑士是可以参加的. 我们求原图的补图:只要不是敌人的两个人就连边. 在补图的一个奇 ...

  4. hdu 2444(染色法判断二分图+最大匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  5. 2-sat问题,输出方案,几种方法(赵爽的论文染色解法+其完全改进版)浅析 / POJ3683

    本文原创于  2014-02-12 09:26. 今复习之用,有新体会,故重新编辑. 2014-02-12 09:26: 2-sat之第二斩!昨天看了半天论文(赵爽的和俉昱的),终于看明白了!好激动有 ...

  6. P1330 封锁阳光大学[搜索+染色]

    题目来源:洛谷 题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由N个点构成的无向图 ...

  7. HT for Web基于HTML5的图像操作(一)

    HT for Web独创的矢量图片设计架构,使其具有强大丰富的动态图形呈现能力,但从最近知乎热议的“Adobe Photoshop 是否已经过时?”的话题,大家能体会到很多情况下实际项目不可能完全采用 ...

  8. TYVJ P1403 [NOIP2010]关押罪犯

    TYVJ的编译器总是要搞点岔子出来,上次是double必须用f输出而不能用lf,这次又不知道为何CE 于是去了洛谷P1525测试,AC 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1 ...

  9. hdu 3478 Catch--二分图判断

    我觉得,给了初始点的话用bfs方便点,没有则dfs ||可能超片面 https://vjudge.net/contest/281085?tdsourcetag=s_pcqq_aiomsg#proble ...

随机推荐

  1. AndroidDevTools

    收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. 欢迎大家推荐自己在Android开发过程中用的好用的工具. ...

  2. xWorks下的硬盘启动方法

    在VxWorks下进行开发调试,在目标机上加载VxWorks映像很重要,在目标机上加载VxWorks映像,最重要的是三个步骤: 第一步,修改config.h文件,在config.h文件里包括硬盘驱动. ...

  3. 图像处理------K-Means算法演示

    一:数学原理 K-Means算法的作者是MacQueen, 基本的数学原理很容易理解,假设有一个像素 数据集P.我们要根据值不同将它分为两个基本的数据集合Cluster1, Cluster2,使 用K ...

  4. directX根据设备类GUID查询所属的filter

    hr = m_pSysDevEnum->CreateClassEnumerator(*clsid, &pEnumCat, 0);    ASSERT(SUCCEEDED(hr));    ...

  5. 用Mirror,搞定用户画像

    Mirror产品概述 Mirror是专为金融行业设计的全面用户画像管理系统.该系统基于星环多年来为多个金融企业客户构建用户画像的经验,深入契合业务需求,实现对用户全方位全维度的刻画.Mirror内置银 ...

  6. 用Python来找合适的妹子

    时间真的有点仓促,匆匆忙忙撸完这篇文章. 虽然今天是情人节,但还是要关心一下单身狗们,帮助他们俩脱单. 古人云:知己知彼,百战不殆.  好好去了解一下妹子们的内心想法,早日脱单! 这次我在一个某知名婚 ...

  7. 洛谷P1501 [国家集训队]Tree II(LCT,Splay)

    洛谷题目传送门 关于LCT的其它问题可以参考一下我的LCT总结 一道LCT很好的练习放懒标记技巧的题目. 一开始看到又做加法又做乘法的时候我是有点mengbi的. 然后我想起了模板线段树2...... ...

  8. [JZOJ5511] 送你一个DAG

    题目描述: 给出一个 \(n\) 个点 \(m\) 条边的 \(DAG\) 和参数 \(k\). 定义一条经过 \(l\) 条边的路径的权值为 \(l^k\). 对于 \(i = 1-n\), 求出所 ...

  9. [Luogu2664]树上游戏

    题面戳我 sol 点分.我们面临的最主要一个问题,就是如何在\(O(n)\)的时间内算出所有LCA为根的点对的贡献,还要分别累加到它们自己的答案中去. \(num_i\):每一种颜色的数量.你可以认为 ...

  10. ------ Tor(洋葱路由器)匿名网络源码分析——主程序入口点(一)------

    --------------------------------------------------------<概览> tor 的源码包可以从官网下载,可能需要预先利用其它FQ软件才能访 ...