CodeForces - 111D Petya and Coloring

STM32输入捕获功能,同时捕获8路波形。 STM32输入捕获功能,使用TIM2和TIM3同时捕获8路波形。 工作上的一个需求,要采集两组控制步进电机的信号。就是采集8个通道的方波,测量频率和计脉冲个数。看起来简简单单的东西,磕磕碰碰搞了两天,走了一些弯路,这里写出来记录一下。顺便理解一下输入捕获个多种用法。 1. 硬件设计 首先看一下用到那些IO口。在STM32手册里找这样TIMx_CHx的就是输入捕获的口了。 这里用了TIM2的4个口和TIM3的4个口。 定义 端口 TIM2_CH1 PA0 TIM2_CH2 PA1 TI 阅读详情

题目:给你一个n行m列的网格,再给你k中颜色,问让你对其染色有多少种方法。要求对于任意1<=i<=m,都有1~i的颜色种数等于i+1~m的颜色种数。

n,m<=1000,k<=1e6,答案对1e9+7取模

思路:我们可以发现第1列和第m列的颜色种数一定要一样,否则不符合要求。而且2~m-1列中出现的颜色一定要是第1列和第m列的共有的颜色。

dp[i]表示用i种颜色染n格的方法数

dp[i]=i^n-sigma(C(j,i)*dp[j])

然后枚举共有的颜色i,异色j,累加

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
// 0x3f3f3f3f

const LL MOD=1e9+7;
const int maxn=1e6+50;
LL fac[maxn],Inv[maxn],dp[1050];
LL pow_mod(LL a,LL b){
    LL res=1;
    while(b){
        if(b&1) res=res*a%MOD;
        a=a*a%MOD;
        b/=2;
    }
    return res;
}
LL C(int n,int m){
    return fac[n]*Inv[m]%MOD*Inv[n-m]%MOD;
}
int main(){

    int n,m,k;
    fac[0]=1;
    Inv[0]=1;
    for(int i=1;i<=1000000;i++){
        fac[i]=fac[i-1]*(LL)i%MOD;
        Inv[i]=pow_mod(fac[i],MOD-2);
    }
    while(~scanf("%d%d%d",&n,&m,&k)){
        if(m==1){
            printf("%lld\n",pow_mod((LL)k,(LL)n));
            continue;
        }
        for(int i=1;i<=k&&i<=n;i++){
            dp[i]=pow_mod((LL)i,(LL)n);
            for(int j=1;j<i;j++){
                dp[i]=(dp[i]-(C(i,j)*dp[j]%MOD))%MOD;
                dp[i]=(dp[i]+MOD)%MOD;
            }
        }
        LL ans=0;
        if(m==2){
            for(int i=1;i<=n&&i<=k;i++){
                LL tmp=dp[i]*dp[i]%MOD;
                tmp=tmp*C(k,i)%MOD*C(k,i)%MOD;
                ans=(ans+tmp)%MOD;
            }
        }
        else{
            for(int i=1;i<=n;i++)
                for(int j=0;j<=n;j++){
                    if(i+2*j>k||i+j>n) break;
                    LL tmp=dp[i+j]*dp[i+j]%MOD;
                    tmp=tmp*C(k,i)%MOD*C(k-i,j)%MOD*C(k-i-j,j)%MOD*pow_mod((LL)i,(LL)n*(m-2));
                    ans=(ans+tmp)%MOD;
                }
        }
        printf("%lld\n",ans);
    }
    return 0;
}


5G NR PDCCH实战解析:从DCI格式到CORESET配置的完整指南 本文深入解析5G NR PDCCH的实战配置,涵盖DCI格式选择、CORESET配置及Search Space优化等关键内容。基于3GPP R16标准,提供现网部署中的典型问题解决方案,如覆盖边缘失步、多用户调度冲突等,帮助提升控制信令传输效率。特别针对5G NR PDCCH的灵活资源分配和自适应编码机制进行详细探讨。 阅读详情

相关推荐

ARIMA模型的R实现

1.模型简介 ARIMA模型,全称差分自回归移动平均模型。可以看作是差分运算和ARMA模型的结合。主要是针对具有线性趋势的非平稳的时间序列,来进行建模预测。 ARIMA模型的形式如下: Φ(B)∇

heirenmin的博客 1万+

codeforces111D. Petya and Coloring(组合数学,计数问题)

传送门: 解题思路: 要求一条直线分割矩阵时左右颜色数一样,那么就说明一个问题。直线左右移动时是不会改变左右矩阵的颜色集合的。所以说明:2~m-1列的颜色集一定属于第一列与第m列颜色集的交集。而且第一列与第m列颜色集大小相等。显然需要预处理n个点m种颜色的方案数,设为$g(i,j)$这样,只需要确定第一列和最后一列颜色集,假设交集是$i$种颜色,就可以算出中间的颜色方案数:$i^{n*(m-2...

weixin_30625691的博客 172

MaPLe: Multi-modal Prompt Learning

具体而言,我们在语言分支中附加可学习的上下文标记,并通过耦合函数显式地将视觉 Prompt 置于语言 Prompt 上,以建立它们之间的交互。使用 Prompt 来适应CLIP (语言或视觉) 的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。由此,提出了一种分支感知的多模态 Prompt,通过在两种模态之间共享提示来协调 CLIP 的视觉和语言分支。在 Prompt Tuning 中,必须采取多模态方法获得同时适应 CLIP 的视觉和语言分支,以实现上下文优化的完整性。

weixin_48907099的博客 1051

codeforce 111D Petya and Coloring(组合计数)

题目链接:http://codeforces.com/contest/111/problem/D 题意:给出一个n*m的方格,用K种颜色染色。定义A[i,j]表示第i列到第j列所有格子不同的颜色数。求有多少种染色方案使得所有的1&lt;=i&lt;m,满足A[1,i]=A[i+1,m]? 思路:首先可以得到: (1)A[1,1]=A[m,m],也就是第一列和最后一列不同的颜色数相同。否则,不...

weixin_34050427的博客 227

微信小程序消息推送全攻略:从模板消息到订阅消息的实战避坑指南

本文深入解析微信小程序消息推送机制,对比模板消息、订阅消息与客服消息的核心差异与适用场景。重点提供订阅消息从用户授权设计、前端代码实现到后端稳定发送的完整实战指南,并分享提升消息点击率的文案与运营技巧,帮助开发者构建高效、用户友好的消息推送体系。

b3n4m5q6w7的博客 335

QMT与通达信代码实战:从预警到交易的自动化实现

本文详细介绍了如何利用QMT量化交易平台与通达信软件实现从预警到交易的全自动化。通过读取通达信预警生成的板块文件,QMT策略可自动执行买卖指令,有效解决手动交易滞后问题。文章提供了完整的代码框架、核心原理拆解及实盘注意事项,帮助投资者构建高效、纪律性的自动化交易系统。

ansible6ops的博客 648

CF 111D - Petya and Coloring

题目大意: 用k种颜色涂 n*m 的矩形,要求  如果  1~i  和 i+1~m  所用的颜色种类一样多,不要求颜色一样、 思路: 可以推出  第一列和第m列所用的颜色数量是一样的。 证明 :如果a[1~1]=i a[m~m]=j (i 那么a[1~1]=i 然后中间的m-2列  是不能出现新颜色的。也就是必须是第一列和第m列的颜色不然会导致两边不相等了。

Jinx Jinx again 1237

LPDDR5时序精调:深入解析Read Gate Training的两种模式

本文深入解析了LPDDR5内存中关键的Read Gate Training技术,详细对比了RDQS Toggle Mode(翻转模式)与Enhanced RDQS Mode(增强模式)的工作原理、时序参数及适用场景。文章阐述了在高速数据传输下精准校准时序的必要性,并提供了两种模式的实战选型指南与系统级调试思路,帮助工程师优化内存性能与稳定性。

weixin_29219189的博客 365

CF 111D Petya and Coloring(组合计数)

转载请注明出处,谢谢http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents    by---cxlove 题目:给出n*m个格子,有K种颜色,如果a[i~j]表示第i列到第j列不同颜色的种数。那么要求对于任意的1 a[1~i]=a[i+1~m],问有多少种染色方案 http://codeforces.com/contest/111/proble

窝不是爱酱,喵~~~~ 1990

lammps原子组速度的计算方法

在lammps摩擦、冲击、压痕等模拟过程中,涉及到某个原子组的整体移动,如果要输出这个原子组的整体移动速度,可以使用vcm()函数。下面是一个具体的使用案例,金刚石球在盒子内移动,输出移动过程中金刚石球在x方向的质心速度。vcm()是lammps自带的一个函数,返回原子组质心在设定方向的速度。其中,ID为group-ID,dim为方向,可设置x、y或者z方向。大家好,我是小马老师。

lammps_jiayou的博客 342

HanLP的分词

HanLP的分词

sikh_0529的博客 1万+

Petya and Coloring

/* http://codeforces.com/problemset/problem/111/D 题目简化为求i个块砖中从k种颜色中选j种,每种颜色至少涂1次的方案数 程序1 dp[i][j]表示前i块砖在k种不同的颜色中用了j种颜色的方案数 dp[i][j]=(dp[i][j]+dp[i-1][j-1]*(k-j+1))%mod; dp[i][j]=(dp[i][j]+dp[i

Yukar_syt的专栏 1025

基于C++和Basler SDK的相机开发详解

Basler相机是德国Basler公司生产的高性能工业相机,具有高分辨率、高帧率和低噪声的特点。Basler相机广泛应用于机器视觉、工业自动化、医疗影像和安防监控等领域。高分辨率和高帧率:能够捕捉清晰、细腻的图像。多种接口:支持USB、GigE、Camera Link等多种接口,方便不同应用场景的需求。丰富的配置选项:支持多种图像格式、分辨率和帧率的配置,适应不同的应用需求。本文详细介绍了如何基于C++和Basler SDK进行相机开发,涵盖了从环境搭建、相机连接、图像采集到图像处理的完整过程。

qq_38334677的博客 2095

codeforces111D. Petya and Coloring(染色计数)

传送门 解题思路: 要求一条直线分割矩阵时左右颜色数一样,那么就说明一个问题。 直线左右移动时是不会改变左右矩阵的颜色集合的。 所以说明:2~m-1列的颜色集一定属于第一列与第m列颜色集的交集。 而且第一列与第m列颜色集大小相等。 显然需要预处理n个点m种颜色点方案数,设为g(i,j)g(i,j)g(i,j) 这样,只需要确定第一列和最后一列颜色集,假设交集是iii种颜色, 就可以算出中间的颜色方...

Unstoppable728的博客 335

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CodeForces 111 D.Petya and Coloring(组合数学+dp)

Description用kk种颜色去给一个n×mn\times m的棋盘,要求以任一非边界的列分界线将棋盘分成两块后,这两块中颜色数量相等,问方案数Input三个整数n,m,k(1≤n,m≤1000,1≤k≤106)n,m,k(1\le n,m\le 1000,1\le k\le 10^6)Output输出方案数,结果模109+710^9+7Sample Input2 2 1Sample Outpu

ZSQ 515

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

【计数】CF111D. Petya and Coloring

http://codeforces.com/problemset/problem/111/D 中等偏难的计数题目,题意很奇葩,用K种颜色染一个n*m的矩形使得从竖直方向任意位置切成两个矩阵时两个子矩阵包含颜色种类数目一样多,当然要沿着网格线切。非常奇葩的题意,后来仔细一想发现这个要求可以证明等同于这个条件,最左最右列包含颜色种类数目一样多同时中间列出现的颜色只能是最左最右...

weixin_30505225的博客 100

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

CF111D:Petya and Coloring(组合数)

D. Petya and Coloring time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output Little Petya loves counting. He wants

junior19的博客 482

ARC073 :Ball Coloring (球染色) UPC-2018山东冬令营 (贪心)

球染色时间限制:2 Sec内存限制:512 MB提交:66解决:22[提交][状态][讨论版]题目描述有n组球,每组有两个球,权值分别为xi, yi。你需要对每组球染色,一个染成红色,一个染成蓝色。Rmax, Rmin, Bmax, Bmin分别表示红色的球中权值最大的,红色的球中权值最小的,蓝色的球中权值最大的,蓝色的球中权值最...

weixin_30535167的博客 292

cf111D Petya and Coloring 组合数学,二项式反演

http://codeforces.com/contest/111/problem/D Little Petya loves counting. He wants to count the number of ways to paint a rectangular checkered board of size n × m (n rows, m columns) in k colors...

weixin_30840573的博客 276

B - Q老师与十字叉(必做)

题目描述: Q老师 得到一张 n 行 m 列的网格图,上面每一个格子要么是白色的要么是黑色的。 Q老师认为失去了 十字叉 的网格图莫得灵魂. 一个十字叉可以用一个数对 x 和 y 来表示, 其中 1 ≤ x ≤ n 并且 1 ≤ y ≤ m, 满足在第 x 行中的所有格子以及在第 y 列的 所有格子都是黑色的 例如下面这5个网格图里都包含十字叉 第四个图有四个十字叉,分别在 (1, 3), (1, 5), (3, 3) 和 (3, 5). 下面的图里没有十字叉 Q老师 得到了一桶黑颜料,他想为这个网格图

weixin_43578672的博客 377

格子染色(容斥原理)

第一次把公式自己推出来了当然看了百度百科后,真是激动呢~~~ 题目描述 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格。现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1. 棋盘的每一个小方格既可以染色(染成C种颜色中的一种) ,也可以不染色。 2. 棋盘的每一行至少有一个小方格被染色。 3. 棋盘的每一列至少有一个小方格被染色。 ...

weixin_43823476的博客 4073

HDU - 2065 "红色病毒"问题 泰勒级数推导

题目: 医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶,腺嘧啶均是成对出现的。  现在有一长度为N的字符串,满足一下条件:  (1) 字符串仅由A,B,C,D四个字母组成;  (2) A出现偶数次(也可以不出现);  (3) C出现偶数次(也可以不出现);  计算满足条件的字符串个

ACVevtor的博客 487

UVA - 10601 Cubes 正方体Polya

题目:有12条边,分别有特定的颜色,组成一个立方体,旋转等价,问有多少种。 思路: 1、静止不动,那么就是12个循环,每个循环节长度为1。 2、通过两个对立的顶点,分别旋转120,240,有4组顶点,在每一次旋转当中,可以发现分为4个循环,每个循环节长度为3。 3、通过两个对立面的中心,分别旋转90,180,270度。有3组面。 在每次旋转90度和270度的时候,可以发现分为3个循环,每

ACVevtor的博客 468

HDU - 4390 Number Sequence 容斥定理

题目: Given a number sequence b 1,b 2…b n.  Please count how many number sequences a 1,a 2,...,a n satisfy the condition that a1*a 2*...*a n=b 1*b 2*…*b n (a i>1). InputThe input consists of

ACVevtor的博客 465

HDU - 4349 Xiao Ming's Hope lucas定理

题目:求c(n,0),c(n,1),...,c(n,n)中有多少个奇数 思路: C(n,m)%2,那么由lucas定理,我们可以写成二进制的形式观察, 比如 n=1001101,m是从000000到1001101的枚举,我们知道在该定理中 C(0,1)=0,因此如果n=1001101的0对应位置的m二进制位为1那么C(n,m) % 2==0,因此m对应n为0的 位置只能填0,而1的位置填

ACVevtor的博客 433

HDU - 3723 Delta Wave 卡特兰数

题目:让你输出从点(0,0)到点(N,0)一共有多少种方法,点(r,c)可以到点(r,c+1),(r+1,c+1),(r-1,c+1),但是不能走到x轴的下方。 下图是N=4的方法 Sample Input 3 4 Sample Output 4 9 思路:行数要么+1,要么+0,要么-1,因为不能到x轴的下方,所以任意时刻+1的次数都要大于等于-1

ACVevtor的博客 426
上一篇: SGU - 200 Cracking RSA 高斯消元
下一篇: HDU - 4466 Triangle
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值