Color UVALive - 7040 (容斥+组合数)

CF GYM 100548 Color(2014ACM西安现场赛Problem F) 知识点: 组合数学-容斥原理,快速幂,逆元。 题目大意: 共有m 种颜色,为n盆排成一直线的花涂色。要求相邻花的颜色不相同,且使用的颜色恰好是k种。问一共有几种涂色方案(结果除10e9+7取余数)。 解题思路: 首先可以将m 与后面的讨论分离。从m 种颜色中取出k 种颜色涂色,取色部分有C(m, k) 种情况; 然后通过尝试可以发现,第一个有k种选择,第二个因不能与第一个相同,只有(k-1) 种选择,第三个也只需与第二个不同,也有(k-1) 种选择。总的情况数为k ×(k-1)^(n-1)。但这仅保证了相 阅读详情

Recently, Mr. Big recieved n owers from his fans. He wants to recolor those owers with m colors. The
owers are put in a line. It is not allowed to color any adjacent owers with the same color. Flowers i and
i + 1 are said to be adjacent for every i, 1 ≤ i < n. Mr. Big also wants the total number of different
colors of the n owers being exactly k.
Two ways are considered different if and only if there is at least one ower being colored with different
colors.
Input
The first line of the input gives the number of test cases, T. T test cases follow. T is about 300 and in
most cases k is relatively small.
For each test case, there will be one line, which contains three integers n, m, k (1 ≤ n, m ≤ 109
,
1 ≤ k ≤ 106
, k ≤ n, m).
Output
For each test case, output one line containing ‘Case #x: y’, where x is the test case number (starting
from 1) and y is the number of ways of different coloring methods modulo 109 + 7.
Sample Input
2
3 2 2
3 2 1
Sample Output
Case #1: 2
Case #2: 0

|A1¯¯¯¯∩A2¯¯¯¯∩...∩Ak¯¯¯¯|

=k∗(k−1)n−1−∑|Ai|+∑|Ai∩Aj|+...+(−1)k∑|A1∩A2∩...∩Ak|

∑|Ai|=C1k∗(k−1)∗(k−2)n−1

∑|Ai1∩Ai2∩...∩Aij|=Cjk∗(k−j)∗(k−j−1)n−1

ans=|A1¯¯¯¯∩A2¯¯¯¯∩...∩Ak¯¯¯¯|∗Ckm
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#define N 1000005
#define INF 10000000000
#define mod 1000000007
using namespace std;
typedef long long  ll;
ll fac[N],inv[N];
int n,m,k;
ll P(ll a,ll b)
{
    ll ans=1;
    while(b)
    {
        if(b&1)
            ans=ans*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return ans;
}
ll getCom(int n,int m)
{
    return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
ll A(int x)
{
    return (k-x)*P(k-x-1,n-1)%mod;
}
ll inv2[N];
void init()
{
    fac[0]=1;
    for(int i=1;i<N;i++)
        fac[i]=fac[i-1]*i%mod;
    inv[1000000]=P(fac[1000000],mod-2);
    for(int i=1000000;i>0;i--)
        inv[i-1]=inv[i]*i%mod;
    inv2[1]=1;
    for(int i=2;i<N;i++)//筛出1到n对mod取模的逆元
        inv2[i]=(mod-mod/i)*inv2[mod%i]%mod;
}
int main()
{
    int t;
    init();
    scanf("%d",&t);
    int cal=1;
    while(t--)
    {
        scanf("%d%d%d",&n,&m,&k);
        printf("Case #%d: ",cal++);
        if(k==1)
        {
            if(n==1)
                printf("%d\n",m);
            else
                printf("0\n");
            continue;
        }
        ll ans=A(0);
        //cout<<ans<<endl;
        for(int i=1;i<k;i++)
        {
            if(i&1)
                ans=(ans-getCom(k,i)*A(i)%mod+mod)%mod;
            else
                ans=(ans+getCom(k,i)*A(i)%mod)%mod;
        }
        ans=ans*m%mod;
        for(int i=2;i<=k;i++)
            ans=ans*(m-i+1)%mod*inv2[i]%mod;
        printf("%lld\n",ans);
    }
    return 0;
}
Redis Lua引擎UAF漏洞CVE-2025-49844深度剖析与复现实践 内存安全是软件系统稳定性的基石,其核心原理在于确保程序对内存的访问始终处于合法、受控的状态。在C/C++等手动管理内存的语言中,Use-After-Free(释放后使用)是一种典型的高危内存安全漏洞,它源于已释放的内存区域仍被程序指针引用,导致数据混乱或程序崩溃。这类漏洞的技术价值在于其往往能突破高级语言的安全边界,直接威胁进程本身,危害等级极高,常见于数据库、浏览器等核心基础设施。在Redis这样的高性能内存数据库中,其内置的Lua脚本引擎为复杂操作提供了强大支持,但同时也引入了沙箱环境下的复杂内存对象生 阅读详情

相关推荐

YOLOv13+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv13与SAHI(切片辅助超推理)技术,在VisDrone2019数据集上实现高效的无人机航拍小目标检测。通过5个实战步骤,包括环境配置、SAHI参数解析、数据集调优、完整训练推理流程和性能优化技巧,帮助开发者显著提升小目标检测的准确率和效率。

egg99的博客 430

Codeforces gym 100548 F (2014-2015 icpc西安现场赛) 数学

Color Description Recently, Mr. Big recieved n flowers from his fans. He wants to recolor those flowers with m colors. The flowers are put in a line. It is not allowed to color any adjacent flowers

black_miracle的博客 653

PowerDesigner16.5下载和安装教程

一、软件下载 1.下载地址(不用复制,直接点击下载链接即可):链接:https://pan.baidu.com/s/1MSnWHWt3SO2Uz5dt9AANAg提取码:z9kk 二、软件安装 1.下载安装包(包含安装文件、汉化包、注册文件) 2.下载后文件内容如下 3....

cicong2374的博客 10万+

UVALive 7040 Color (容斥原理 + 组合数学递推公式 + 求逆元 + 基础数论)

传送门 英文题目:Recently, Mr. Big recieved n owers from his fans. He wants to recolor those owers with m colors. The owers are put in a line. It is not allowed to color any adjacent owers with the same colo

代码改变世界 3204

如何在两台电脑间,实现zotero文件和数据两种类型的双向同步

在完成本文配置后,可以在两台不同的电脑间,通过两步简单操作实现zotero数据和文件的双向同步,并且全程免费首先,打开zotero->编辑->首选项->高级->文件与文件夹,配置链接附件根目录以及数据存储位置,前者将pdf文件通过相对地址形式存于zotero中(而非真正的pdf文件),后者则是设置用户本地数据的地址建议设置在数据盘D盘,可以避免后续对盘名的修改(因为基本每个电脑都存在C盘和D盘)然后,同一页面下,打开同步,配置数据以及文件同步方式。数据同步保持默认即可,文件同步选择WebDav,然后去坚果云

weixin_43008154的博客 1万+

ITIL-IT运维管理-概述

ITIL-IT运维管理-概述 概述 IT服务管理(ITSM)是一套帮助企业对IT系统的规划、研发、实施和运营进行有效管理的方法,是一套方法论。ITSM起源于ITIL(IT Infrastructure Library,IT基础架构标准库),ITIL是CCTA(英国国家电脑局)于1980年开发的一套IT服务管理标准库。它把英国在IT管理方面的方法归纳起来,变成规范,为企业的IT部门提供一套从计划、研发、实施到运维的标准方法。 中文名 IT服务管理 外文名 ITService Management 专家

syjhct的博客 4万+

UVA1625 / UVALive 5841 Color Length DP

简单DP,dp[i][j]表示从第一个序列里取出i个和从第j个序列里取出j个的组合的最小值,可以从两个方向转移过来,每次转移加上已经出现过的且还没有出现完的字母的个数. O(n∗m)O(n*m)的复杂度. 1625 Color LengthCars painted in different colors are moving in a row on the road as shown in Figu

码代码的猿猿 1238

【异常】XXL-job触发调度:address:http://192.168.x.x:x/ code:500 msg:xxl-rpc remoting error(connect timed out)

XXL-JOB调度任务失败分析:调度中心(10.254.234.80)与执行器(192.168.x.x)连接超时,返回500错误。主要原因是网络不通或执行器异常:1.网络不通可能由防火墙或网段隔离导致;2.执行器未启动或端口未监听;3.地址配置错误。解决方案:1.关闭代理使用内网;2.测试网络连通性和端口可用性;3.检查执行器进程状态和端口监听情况;4.核对执行器地址配置;5.必要时配置防火墙规则放行端口。

奶爸的编程之路,也就一周冷个三天 414

UVa11152 - Colourful Flowers

#include #include #include using namespace std; const double PI = 2 * acos(0); int main() { double a, b, c; #ifndef ONLINE_JUDGE ifstream cin("uva_in.txt"); #endif cout.precisi

多看多听多总结 921

UE5接入在线直播视频源,如hls(m3u8)格式

UE5接入在线直播视频源

专注GIS开发 9503

【Flink】FLink session yarn kerberos认证报错 PortUnreachableException: ICMP Port Unreachable

本篇博客是在上一篇博客:【Flink】FLink session yarn kerberos认证报错 KrbException: Cannot locate default realm还没找到原因的时候做的一次尝试。因为项目需要,我们需要对接华为认证的yarn集群,运行flink任务,我们的任务分为两种,yarn pre-job模式和flink session模式。我们在配置文件中配置如下# kerberos认证需要的东西提交任务的脚本如下。

九师兄 1267

【UVALive - 7040】:Color 【容斥原理】

题目: UVALive - 7040 :Color 题意: 大致是一共有 M中颜色,你需要从中选 K种给 N 个物品染色,要求相邻的不能染一样的颜色,并且每种颜色都要用上,求染色的方案数 笔记: 学习自:容斥原理详解 容斥公式: 先看这个问题:K 种颜色给 N 个物品染色,要求相邻的不能染一样的颜色的方案数,答案就是:k*pow(k-1,n-1),此时算的是小于等于 k 个...

KobeDuu 311

基于Python的军事装备数据爬取与分析:从网页抓取到数据可视化实战

本文将详细介绍如何使用Python最新技术栈构建一个完整的军事装备数据爬虫系统。我们将从爬虫基础讲起,逐步深入到异步爬取、反反爬策略、数据存储与分析等高级主题,最终实现一个能够自动抓取、清洗、存储和分析军事装备数据的完整解决方案。文章包含大量实战代码示例,涉及requests-html、aiohttp、Playwright等现代爬虫库,以及MongoDB存储、Pandas分析和Pyecharts可视化等技术。关键词:Python爬虫、军事数据、异步爬取、反反爬、数据可视化。

2201_76125261的博客 1189

【容斥原理+逆元+组合数+费马小定理+快速幂】UVALive - 7040 Color

Problem Description t组数据,每组给定n,m,k。有n个格子,m种颜色,要求把每个格子涂上颜色且正好适用k种颜色且相邻的格子颜色不同,求一共有多少种方案,结果对1e9+7取余。 思路: 参考大佬博客传送门 首先可以将m 与后面的讨论分离。从m 种颜色中取出k 种颜色涂色,取色部分有C(m, k) 种情况; 然后通过尝试可以发现,第一个有k种选择,第二个

ACMer 梁剑锋 的博客 309

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

GDUT2017秋季训练(七)-Color (数学容斥)

题目 Vjudge 题目链接 (https://vjudge.net/contest/192288#problem/F) 这里可以交题(题源)UVALive - 7040 分析 题意就是给 n 个点 m 种颜色,染色使得恰好共使用 k 种颜色,求方案数。 显然,m 可以直接看成 k ,只需将得出的答案乘个组合数即可。 然后要是对于“至少 k 种颜色”这个命题,我们是可以直接得出答案

hehepig的博客 377

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UVALive 7040 Color (容斥原理+逆元+组合数+费马小定理+快速幂)

题目:传送门。 题意:t组数据,每组给定n,m,k。有n个格子,m种颜色,要求把每个格子涂上颜色且正好适用k种颜色且相邻的格子颜色不同,求一共有多少种方案,结果对1e9+7取余。 题解: 首先可以将m与后面的讨论分离。从m种颜色中取出k种颜色涂色,取色部分有C(m, k)种情况; 然后通过尝试可以发现,第一个有k种选择,第二个因不能与第一个相同,只有(k-1)种选择,第三个也只需...

weixin_30325793的博客 168

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Codeforces Gym 100548F Color (组合数+容斥)

Codeforces Gym 100548F Color (组合数+容斥)

Tc的专栏 1561

CF GYM 100548 容斥原理+快速幂+逆元

Recently, Mr. Big recieved n owers from his fans. He wants to recolor those owers with m colors. Theowers are put in a line. It is not allowed to color any adjacent owers with the same color. Flowers

Ritchie 462

C. Watering Flowers 构造

C. Watering Flowers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A flowerbed has many flowers and two fo

u014445884的专栏 960

ACM 2015西安赛区题目

Problem F. October 26, 2014 Color Description Recently, Mr. Big recieved n flowers from his fans. He wants to recolor those flowers with m colors. The flowers are put in a line. It is not allowed

一地鸡毛 2674

C——Flowers

Problem Description As you know, Gardon trid hard for his love-letter, and now he’s spending too much time on choosing flowers for Angel. When Gardon entered the flower shop, he was frightened and d...

beyond谚语的博客 1072

codeforces 571A(组合+容斥)

题意:给定三根木棍的长度,可以任意木棍增加任意长度,但总和不超过L,问最后能构成三角形的方案数是多少 题解:用所有方案数-不能构成的方案数 对于长度l,能够构成的方案数是(l+22)(l+22){l+2 \choose 2},因为相当于一个长度为lll的线段分成三份,并且可以同时去两个000。 不能构成的方案数则是,枚举a、b、ca、b、ca、b、c当做最长的线段,然后对其增加i(0&lt;...

yxmGo 292

UVALive 7040 (容斥)

题意:n朵花,从m种颜色中选择k种颜色使得相邻花不同色的方案数. 对于比较小的数据,这道计数题可以用DP做,DP[i][j]表示染i朵花用了j种颜色的方案数,那么对于后i-1朵花,要么用了j种颜色,要么用了j-1种颜色,转移方程也就很简单了DP[i][j] = j*(DP[i-1][j-1]+DP[i-1][j]). 但是这题的数据比较大,所以考虑容斥原理. 首先组合数递推公式:

morejarphone~ 776

UVAlive7040(组合数,容斥原理,逆元)

题意:给n朵花上色,从m种颜色里面选择恰好k种颜色,求总数MOD1e9+7 思路:首先如果用k种颜色给花上色的话,肯定是k∗(k−1)n−1种方案,但是要求的是恰好k种,很容易想到用容斥原理解决这个问题。 设Ai表示没选第i种颜色的种类数目,则结果为 |A1¯¯¯¯∩A2¯¯¯¯∩...∩Ak¯¯¯¯| =k∗(k−1)n−1−∑|Ai|+∑|Ai∩Aj|+...+(−1)k∑|A1∩...

Egqawkq的博客 448

UVALive 7040 color(容斥原理)

Problem Link传送门 大意:给nn朵花上色,从mm种颜色里面选择恰好kk种颜色,求总数MOD 1e9+71e9+7Analysis首先如果用kk种颜色给花上色的话,肯定是k∗(k−1)n−1k*(k-1)^{n-1}种方案,但是要求的是恰好kk种,很容易想到用容斥原理解决这个问题。 设AiA_i表示没选第ii种颜色的种类数目,则结果为 |A1¯¯¯¯∩A2¯¯¯¯∩...∩Ak¯¯

taotao 的大学墓志 1026

UVALive 7040 Color (容斥定理 + 递推求逆元 + 组合数 + 快速幂)

大体题意: 给你n 个位置,你总共有m 种颜色,需要填满恰好填k种颜色且 相邻的位置的颜色不相同,问方案数,两个方案不同  区分为至少有一个位置的颜色的不同! 思路: 我们先选出k 种颜色来, 方案数  是  C(m,k)。 然后在n 个位置依次填,  第一个位置 有k 种情况,第二个位置 有k-1个情况  第三个位置有k-1个情况!这样就是 k*(k-1) ^ (n-1) 这些情况只是

aozil_yang的博客 678
上一篇: Josephus again HDU - 3089 (约瑟夫环问题)
下一篇: 1到n对于质数p的逆元的线性筛
coldfresh
博客等级 码龄10年 107粉丝 405原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值