首页 > 其他分享 >牛客小白月赛75 E 数数

牛客小白月赛75 E 数数

时间:2023-07-05 14:35:08浏览次数:45  
标签:int 个数 牛客 75 小白月赛 dp


题目链接
数据范围: n,m <= 1e3 , 答案对 1e9 + 7 取模
假设前\(i\)个数的和为\(r * i\) , 前\(i - 1\)个数的和为\(k * (i - 1)\) , 第\(i\)个数为\(t\) , 那么则有

\[r * i = k * (i - 1) + t \]

\[t = r * i - k * (i - 1) \]

由于\(1 <= t <= m\) , 所以

\[1 <= r * i - k * (i - 1) <= m \]

设状态\(dp[i][j]\)表示前\(i\)个数字的和是\(i * j\)的方案数。其中\(j\)对应的就是上面式子中的\(r\) , 将所有满足要求的\(k\)对应的贡献累加起来即可。

\[\lceil{\frac{r * i - m}{i - 1}}\rceil <= k <= \lfloor{\frac{r * i - 1}{i - 1}}\rfloor \]

#include<iostream>
using namespace std;
const int N = 2e3+10 , mod = 1e9+7;
int n , m;
int dp[N][N] , Sum[N];
int main()
{
	int Answer = 0;
	cin >> n >> m;
	for(int i = 1 ; i <= m ; ++i)
		dp[1][i] = 1;
	for(int i = 2 ; i <= n ; ++i)
	{
		for(int j = 1 ; j <= m ; ++j) Sum[j] = (Sum[j-1] + dp[i-1][j]) % mod;
		for(int j = 1 ; j <= m ; ++j)
		{
			int l = max((j * i - m + i - 2) / (i - 1) , 1);
			int r = min((j * i - 1) / (i - 1) , m);
			dp[i][j] = (Sum[r] - Sum[l - 1] + mod) % mod;
		}
	}
	for(int i = 1 ; i <= m ; ++i)
		Answer = (Answer + dp[n][i]) % mod;
	cout << Answer << endl;
	return 0;
}

标签:int,个数,牛客,75,小白月赛,dp
From: https://www.cnblogs.com/sybs5968QAQ/p/17528431.html

相关文章

  • 牛客小白月赛75 D 矩阵
    题目链接数据范围n,m<=1e3题解构建分层图,\((i,j,0/1)\)表示在矩阵的\((i,j)\)位置上,当前状态为\(0/1\)的点。如果要到达的点和当前点的状态不同,则可以花费时间1到达。如果状态相同,则要先花费时间1改变目标点的状态再走,共花费时间2.然后就是跑最短路了。另......
  • 牛客小白月赛74 G 跳石头,搭tizi
    题目链接)数据范围,2e5区间越长越省力。对于一个起点来说,从这里搭tizi最远到达的是序列中右侧第一个大于它的数所在的位置。用单调栈可以找到这样的区间,这些区间大致如下所示。就是最多只会有包含的情况,但是不会出现交叉的情况。然后可以这样渐次登高,到达最顶端。下降的......
  • 钡铼技术多功能RTU S475多功能RTU改变养殖行业现殖效率
    在养殖行业中,对环境参数的精确监测与控制至关重要。然而,传统的监测方法往往存在诸多痛点,如数据采集不准确、传输速度慢、可视化效果差等。为了解决这些问题,钡铼技术公司推出了其旗舰产品——S475多功能RTU,该产品在养殖行业监测中展现出了显著的优势。钡铼S475多功能RTU是一款......
  • 油田智能化转型:钡铼技术多功能RTUS475的关键角色
    标题:S475在油田数据采集中的应用摘要:本文介绍了钡铼技术多功能RTUS475在油田数据采集中的应用。该设备基于高性能微处理器MCU和嵌入式实时操作系统,支持ModbusSlave和ModbusMaster功能,并能通过无线网络实现短信报警和数据传输到监控中心,为油田数据采集提供了稳定可靠的解决方......
  • 牛客练习赛 112 B~C题题解
    卡B题了,难受B.qsggandSubarrayB-qsggandSubarray_牛客练习赛112(nowcoder.com)题意给定一个长为n的序列,求有多少个子区间的按位与和为0。思路要想按位与之和为0,那么对于区间的所有数,每个二进制位都要有一个0。设f[i]表示二进制位i的最右边一个0出现的位置,枚举序列的每......
  • 19C-19.16 ORA-17503 ORA-27300 ORA-27301 ORA-27302
    ***alter日志告警2023-07-01T02:05:13.474592+08:00Errorsinfile/u01/app/oracle/diag/rdbms/dg/dg1/trace/dg1_ora_17925.trc:ORA-17503:ksfdopn:2Failedtoopenfile+DATA/dg/PASSWORD/pwddgORA-27300:OSsystemdependentoperation:openfailedwithstatus:13ORA-......
  • CF1753
    CF1753成功因为虚拟机炸了,重新写一遍此文。都是没有保存的错。A.MakeNonzeroSum由于Notethatitisnotrequiredtominimizethenumberofsegmentsinthepartition.。考虑每一段最小化……可以发现,每一段都可以划分为长度为1或2的段。于是考虑影响。只有长......
  • 牛客小白月赛75
    D:给定01矩阵,规定0可以到1,1可以到0,将当前1变为0,将当前0变为1,花费都是1问从(1,1)走到(n,m)花费是多少,前提是移动都是相邻的点  考虑bfs,需要处理的是把当前点转化这个问题,其实可以分两种情况,对于相邻的点来说判断当前点和相邻点的点数是否相同而赋予两点之间的权值,不相邻的点也......
  • 牛客小白月赛75
    A.上班题意:分析:签到题代码:#include<bits/stdc++.h>usingnamespacestd;intmain(){intx,y,z;cin>>x>>y>>z;cout<<x+min(y,z);return0;}B.崇拜题意:分析:按知识点难度从大到小排序,然后计算按这个顺序讲解的最大崇......
  • CS7530CC支持PD3.0,双C口协议芯片,20-35W功率
    协议支持:1,USB电源PD3.0固定PDO2,USB电源PDPPSPDO3,支持20W~35WPDO配置4,USBTYPE-C,CC-逻辑5V/3A5,支持双口TypeC快速充电与单电源6,2kVHBM和1kVCDMESD静电防护等级7,40°C~+125°C工作温度,符合RoHS和无卤素快充协议芯片的作用:1、快速充电管理:快充协议芯片能够根据充电设备和电源......