UVALive 7040 Color 容斥,组合数递推,线形逆元,基础数论

线性求逆元的方法 逆元 若 则称为的逆元(或者为的逆元) 对于所有的,有一种线性求逆元()的方法 因为,所以可以用表示,即 自然而然的 我们要求,那么等式两边同乘,得 移项,分离处,得 我们知道,,所以 而我们求逆元的时候,恰好会将之前的逆元打好,所以预处理了 所以 ll inv[maxn] = {0,1}; for(int i=2;i<maxn;i++)inv... 阅读详情

题目链接:这里
题意:首先有T组数据,每组数据有 3 个数 n, m, k,分别代表一共有 n 个方格,m种颜色,而我们要 恰好(注意是恰好) 使用 k 中颜色对这些方格进行涂色,并且保证的是每两个相邻的方格的颜色必须是不一样的。
解法:m种颜色选k种,所以有C(m,k),对于选出的k种颜色去给n个人涂色,对于第一个人有k种,第二个人有k-1种,第三个人k-1种。。。。。所以总共是k*(k-1)^(n-1)种。然而不要以为这样就好了,因为这样算并不能保证是一定用了k种颜色的,可能只是选了k种其中的2,3,4,,,,k-1种,所以要用容斥原理来去重,所以最后的式子就是C(m,k) × ( k × (k-1)^(n-1) + ∑((-1)^p × C(k, p) × p × (p-1)^(n-1) ) (2 <= p <= k-1)。然后窝们为了计算这个式子,必须线形预处理逆元和C(i, m)和C(j, k)其中 i <= m 和 j <= k。线形逆元不懂可以看这位大佬的
然后组合数递推的式子是怎么样的呢?
这里写图片描述

//LA 7040

#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 1e6 + 7;
typedef long long LL;
LL inv[maxn], cm[maxn], ck[maxn], n, m, k;
LL powmod(LL a, LL n){
    LL res = 1;
    while(n){
        if(n & 1) res = res * a % mod;
        a = a * a % mod;
        n >>= 1LL;
    }
    return res;
}
void init(){
    inv[1] = 1;
    for(long long i = 2; i <= 1000006; i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
}
void pre_deal(){
    cm[0] = ck[0] = 1;
    for(long long i = 1; i <= k; i++){
        cm[i] = cm[i-1]%mod*(m-i+1)%mod*inv[i]%mod;
        ck[i] = ck[i-1]%mod*(k-i+1)%mod*inv[i]%mod;
    }
}
int main()
{
    init();
    int T, ks = 0; scanf("%d", &T); while(T--){
        scanf("%lld%lld%lld", &n, &m, &k);
        pre_deal();
        int t = 1;
        LL ans = 0;
        for(long long i = k; i >= 1; i--){
            ans = (ans + t * i * ck[i] % mod * powmod(i - 1, n - 1) % mod + mod) % mod;
            t = -t;
        }
        ans = ans * cm[k] % mod;
        printf("Case #%d: %lld\n", ++ks, ans);
    }
    return 0;
}
【C++解题报告】求组合数(定义函数) 题目来源:     基础班《函数、递归、递推》,函数第2题。 题目描述:     用定义函数的方式,输入非负的整数n和m,输出组合数C。 输入格式:         输入n,m。 输出格式:          输出C。 输出样例:      5 3 输出样例:     10 数据规模与约定: 阅读详情

相关推荐

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

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

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

aozil_yang的博客 678

手把手教你使用transciver-ip核的配置

手把手教你使用transciver-ip核的配置

u012938458的博客 5417

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

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

Coldfresh的博客 422

最新小旋风蜘蛛池X6.21解密版+绕过授权带教程

介绍: 1.站群管理:用你的域名在这里添加网站 2.站点优化:站点互链,内容优化 2.系统设置:开启蜘蛛池 3.采集管理(可开启自动采集) 4.缓存设置:推荐开启tkd缓存 其他的用户根据自己的实际情况后台进行配置,通常以下: 1.后台首页(这里显示系统的大致概况) 2.系统设置:蜘蛛池的基本设置(访问开关、跳转、统计等等) 3.站群管理: 1.网站管理(用你的域名在这里添加网站) 2.模型管理(可构建不同类型站点:电影、文章、论坛等等) 3.TKDB调用模板(即:title、keywords、descri

百度SEO程序下载 2937

计组实验5:cache大小测量与 cache line 大小测量

前言 今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码 emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。 ⚠ 我没有在 Linux 下试过课本上面的代码。。。 我是在 win10 下测试的。。。 所以 。。。 我并不确定我的代码是否正确。

AKGWSB 's blog 1万+

线性求逆元算法

摘自:http://blog.youkuaiyun.com/acdreamers/article/details/8220787 其实有些题需要用到模的所有逆元,这里为奇质数。那么如果用快速幂求时间复杂度为, 如果对于一个1000000级别的素数,这样做的时间复杂度是很高了。实际上有的算法,有一个递推式如下                         它的推导过程如

lethalboy 1万+

在统信UOS Server 20上踩坑记:手把手教你搞定openGauss 5.0.0企业版安装(附常见报错解决方案)

本文详细记录了在统信UOS Server 20上安装openGauss 5.0企业版的实战经验,包括环境准备、依赖库问题、目录权限、内存参数调优等常见问题的解决方案。通过伪装系统标识、建立软链接、调整内存参数等方法,成功克服国产操作系统与企业级数据库的兼容性挑战,为开发者提供了一份深度排雷指南。

weixin_28698059的博客 264

uvalive7040/cf gym 100548 Color(2014西安区域赛F题)

Source CF GYM 100548 UVALIVE 7040 题意 n个格子排成一行,有m种颜色,问用恰好k种颜色进行染色,使得相邻格子颜色不同的方案数。 \(k\leq10^6\quad n, m\leq10^9\) 分析 在网上看到的几篇解题报告好像没讲清楚为什么是容斥(反正我没看懂。。),所以我也写一篇。 首先,我们可以从m个颜色中取出k个,即\(C^k_m\)。 接着容易想...

weixin_30248399的博客 226

PCL 动态半径滤波【2025最新版】

使用PCL实现的2022年最新SCI论文——【Design of Dust-Filtering Algorithms for LiDAR Sensors Using Intensity and Range Information in Off-Road Vehicles】 一文中提出用于自动驾驶点云剔除粉尘、雨雪等影响因素导致的噪声点滤波算法。

点云侠的博客 1473

1、深入解析OTA/gm - C滤波器架构与设计

本文深入探讨了OTA/gm-C滤波器的架构与设计方法,涵盖了从基本构建模块到高阶滤波器实现的多种技术。重点分析了双积分器环路结构(如Tow-Thomas和KHN滤波器)的工作原理、性能特点及OTA非理想特性对滤波器的影响,并介绍了降低寄生效应、提升动态范围的方法。文章还讨论了基于LC梯形仿真、多环反馈和电流模式的gm-C滤波器设计,以及自动调谐技术在频率稳定性中的应用。最后总结了不同类型gm-C滤波器的优缺点及其适用场景,为高频集成连续时间滤波器的设计提供了全面的技术参考。

fanta的博客 185

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

TIA西门子博途V19安装教程及注意事项

TIA西门子博途V19安装教程及注意事项

Robot_PLC_HMI_Automation 1万+

UvaLive 7040-Color

分析: 用容斥来求。 公式: C(m,k)*(k*(k-1)^(n-1) – C(k,k-1)*(k-1)*(k-2)^(n-1) + C(k,k-2)*(k-2)*(k-3)^(n-1)……. ); 解释: C(m,k):m种颜色中选k种。k*(k-1)^(n-1): 至多有不超过k中颜色且相邻两种颜色不同的填法。 ...

bannesi6888的博客 151

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hdu-1452(约数和定理+求逆元)

问题描述:Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your job is to determine S modulo 29 (the rest of the division of S by 29). Take X = 1 for an exampl...

wust_cyl的博客 762

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UVALive 7040

这道题我和队友磨了好久。。。写到后面其他题都没什么时间了,再加上一个队友没来,另一个队友1点半才来,我中途出去送一趟课堂考勤表。今天测试成绩很烂。。。 这题关键是恰好选出k种颜色,就是用k种颜色涂n个格子,每个颜色至少涂一个,彼此不相邻,的答案再乘c(m,k)。以前HNOI有道水题就是用k种颜色涂色,然后彼此不相邻,答案就是k*(k-1)^(n-1),这是有可能用,2,3,4,...k种不同的颜

binarycopycode 405

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

线性求逆元及其过程

写在前面 连续两天考了求逆元。。。。。。所以想着写一篇关于线性求逆元的博客。。 先给程序: inv[1]=1; for(int i=2;i<=n;++i) inv[i]=MOD-(long long)MOD/i*inv[MOD%i]%MOD; 然后一波推导: 我们要求i在模p意义下的逆元inv[i],那么我们就设ki+r=p,所以ki+r0(m...

weixin_30339457的博客 444

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

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

KobeDuu 311

【数论】线性求[1,p-1]所有数逆元的方法

以前求逆元只会费马小定理和exgcd,看到别人都用递推求自己不会,今天学习了一下。 我们要在线性时间内求出1−1,2−1…,(p−1)−1(modp) p为质数 1∗1≡1(modp)⇒1−1≡1(modp) a∗a−1≡1(modp)1<a<p 令k=⌊pa⌋,r=pmoda p=k∗a+r0<r<ak∗a+r...

weixin_30648963的博客 290

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

Color UVALive - 7040 (组合数 + 恰好 + 二项式反演)

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...

weixin_30412577的博客 189

Poj 4227 反正切函数的应用

Description 反正切函数可展开成无穷级数,有如下公式 (其中0 <= x <= 1) 公式(1) 使用反正切函数计算PI是一种常用的方法。例如,最简单的计算PI的方法: PI=4arctan(1)=4(1-1/3+1/5-1/7+1/9-1/11+...) 公式(2) 然而,这种方法的效率很低,但我们可以根据角度和的正切函数公式: tan(a+

I good vegetable a! 1418

线性代数 高斯消元!UESTC 算法讲堂。

【预备知识】首先你要保证你懂下面的东西,才有必要往下看。                       1.矩阵的基本运算。                       2.知道一些行列式的基本性质。 【算法描述】高斯消元! 【算法原理】 本来是想放现代书的原理的,可惜书找不到了。懂了这张图片,大概就懂高斯消元的基本原理了。那么代码就很好写了。我给一个算法实现!选自白书模板。 【

I good vegetable a! 1205

Poj 2826 An Easy Problem!

Description Have you heard the fact "The base of every normal number system is 10" ? Of course, I am not talking about number systems like Stern Brockot Number System. This problem has nothing to do

I good vegetable a! 1051

BZOJ 1225: [HNOI2001] 求正整数 数论,爆搜剪枝

Description对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m。例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6;而且是最小的有4个因子的整数。 Inputn(1≤n≤50000) Outputm Sample Input 4 Sample Output 6解法: 首先介绍一下约数公式,对于一个给定的整数n = p1^a1*p2^a2*p3^a3…p

I good vegetable a! 1021

Mutual Training for Wannafly Union #2

【题目地址】点击打开链接 【A】水题,给了一个由L,R组成的字符串,首尾有'.',当然可以先去掉,要我们找到一条可能的路线输出起点和终点。由于是spj,所以我们直接选择从非.的最左边的点向右走,走到最后一次向左走之后会到达另外一边为止。。 【B】听了题解,但对我来说并不可做。。 【C】水题,模拟题上给的过程就行了。 【D】容斥原理 + Lucas。具体讲解可以看:http://www.

I good vegetable a! 985
上一篇: HDU 5445 Food Problem 2次背包,二进制优化
下一篇: UVALive 7043 International Collegiate Routing Contest 字典树,递归
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值