4745 跑步

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
long long f[100005];
int a(int x)
{
 return (3*x*x-x)/2;
}
int main()
{
 int n,p;
 cin>>n>>p;
 f[0]=1;
 for(int i=1;i<=n;i++)
  for(int j=1;;j++)
  {
   int x=a(j),y=a(-j);
   if(x<=i)
    f[i]=((f[i]+(j&1?1:-1)*f[i-x])%p+p)%p;
   if(y<=i)
    f[i]=((f[i]+(j&1?1:-1)*f[i-y])%p+p)%p;
   if(x>i||y>i)break;
  }
 cout<<f[n]<<endl;
 return 0;
}
相关推荐
Murphy_lx11 分钟前
C++多态的原理
java·开发语言·c++
天若有情6731 小时前
【数据结构】生活中的数据结构:从吃饭与编程看栈与队列思维
数据结构·生活
Tjyuking1 小时前
OS架构整理
运维·c++·缓存·架构·操作系统
程序员编程指南1 小时前
Qt 移动应用发布与分发指南
c语言·开发语言·c++·qt
x晕x1 小时前
Qt 消息弹窗 Toast
linux·c++·windows·qt·mac
刚入坑的新人编程2 小时前
暑期算法训练.11
数据结构·c++·算法·leetcode·链表
程序员编程指南2 小时前
Qt 与物联网(IoT)开发
c语言·开发语言·c++·qt·物联网
hzhzh~2 小时前
【C++】神秘-希尔排序
c++·希尔排序·排序·sort
秋风起,再归来~2 小时前
C++从入门到起飞之——智能指针!
开发语言·c++·算法
十五年专注C++开发2 小时前
MakeInstaller: 一款麒麟操作系统安装包制作工具
linux·c++·打包工具·安装包制作·麒麟系统