首页 > 其他分享 >1214. 波动数列

1214. 波动数列

时间:2022-10-03 18:34:50浏览次数:71  
标签:数列 1214 get int d% 波动 余数 include mod

https://www.acwing.com/problem/content/1216/

定义f[i][j]为考虑前i个d,余数为j的count数
需要注意的是,根据理解推得的公式,有多种等效形式
我这里为n*x+1*d1+2*d2+3*d3+........+(n-1)*dn-1;
对于每一个d,都有+a,-b两种形式,从所有组合形式的集合来分析
利用集合状态分析,前一次组合选择,即f[i-1],有+a与-b两种形式
且余数要减去最后一项再膜n
表示出来就是f[i-1][ (j-i*a) % n ]
同理有f[i-1][ ( j+i*b) % n ] 

#include<algorithm>
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int N = 1005, MOD = 100000007;
int f[N][N];
int a, b, n, s;

int get_mod(int a, int b) //求正余数
{
	return (a % b + b) % b;
}
int main()
{
	f[0][0] = 1;//初始条件
	scanf("%d%d%d%d", &n, &s, &a, &b);
	for (int i = 1; i < n; i++)
		for (int j = 0; j < n; j++)
		{
			f[i][j] =  (f[i - 1][get_mod(j - i * a, n)] + f[i - 1][get_mod(j + i * b, n)] ) % MOD;
		}
	cout << f[n - 1][get_mod(s, n)] << endl;
	return 0;
}

 

标签:数列,1214,get,int,d%,波动,余数,include,mod
From: https://www.cnblogs.com/lxl-233/p/16750966.html

相关文章

  • 1106 2019数列——15分
    把2019各个数位上的数字2、0、1、9作为一个数列的前4项,用它们去构造一个无穷数列,其中第n(>4)项是它前4项之和的个位数字。例如第5项为2,因为2+0+1+9=12,个位数是......
  • 数列分块入门
    数列分块入门算是入门了吧写在前面本人十分之Naive所以写的不好还请见谅。前置知识暴力线段树线段树貌似也不太需要,但本文建立在你已经会线段树的基础上。但真......
  • LeetCode剑指 Offer II 093 最长斐波那契数列
    LeetCode剑指OfferII093最长斐波那契数列classSolution:deflenLongestFibSubseq(self,arr:List[int])->int:n,loc,ans=len(arr),{},0......
  • js 获取当前地址的查询参数列表
    eg.https://go.gliffy.com/go/html5/launch?_ga=2.201967958.654328489.1658124867-1818406430.1658124867console.log(location.search)结果:?_ga=2.201967958.654328489.16......
  • libnet 函数列表
    libnet提供的接口函数按其作用可分为四类:*内存管理(分配和释放)函数*地址解析函数*数据包构造函数*数据包发送函数以下分别列出这些接口函数及其功能(其参数含义简单易......
  • 做题记录整理dp12 P7961 [NOIP2021] 数列(2022/9/26)
    P7961[NOIP2021]数列当时在考场上对于拿部分分这个感念不是很清晰,所以当时连暴力分都没拿。。。事实上这题在看了题解之后还是有很多地方没搞明白,比如最后统计答案,为什......
  • 斐波那契数列(取模)
    题目:菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。......
  • 斐波那契数列(递归、记忆化搜索、递归)
    题目:菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。输入输入一行,......
  • 面试题:int[] arr 和 int... arr在参数列表中是一回事儿吗?
    publicclassExer{publicstaticvoidmain(String[]args){Base1b1=newSub1();b1.add(1,2,3);}}classBase1{publicvoidadd(inta,int...arr){System.......
  • 「浙江理工大学ACM入队200题系列」问题 L: 零基础学C/C++52——计算数列和2/1,3/2,5/3,8/
    本题是浙江理工大学ACM入队200题第五套中的L题我们先来看一下这题的题面.题面题目描述有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……计算这个数列的前n项和。注意:C语言中......