bc41第三题:

由 1 ~ n-1 这 n-1 个数组成 l - c 到 r - c 闭区间内的数共有多少种组合方法;

据称本来应该也比较简单吧,xiaoxin说了个五边形数,然后纷纷找了五边形数的模板,虽然并没有来得及AC,赛后交了也过了,这个东西还是要研究一下的昂,总之就是对于某个数n,用1~n组成n,每个数可以用有限多次,有多少种组合方法,本题则是只能用一次,算区间和。这样 n 只是个幌子,因为 r - c 小于等于 n - 1,然后用前缀和预处理,o(1)输出就行。

但是据说其实就是 dp 就能做,毕竟我太鱼了恩。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm> using namespace std; typedef long long LL;
const int Maxn=;
const LL MOD=;
LL Q[Maxn],P[Maxn];
LL num[Maxn];
LL GetQ(LL x)
{
LL ans=(LL)x*x*-x;
return (ans/)%MOD;
}
void _init()
{
Q[]=;
for(int i=;i<Maxn;i++)
{
if(i&) Q[i]=GetQ(i/+);
else Q[i]=GetQ(i/*(-));
}
P[]=P[]=;
for(int i=;i<Maxn;i++)
{
for(int j=;;j++)
{
if(Q[j]>i) break;
int t=j;
if(t&) t=t/+;
else t=t/;
if(t&)
P[i]=(P[i]+P[i-Q[j]]);
else
P[i]=(P[i]-P[i-Q[j]]);
if(P[i]>=MOD) P[i]%=MOD;
if(P[i]<) P[i]+=MOD;
}
}
}
LL solved(LL n,LL k)
{
LL ans=;
for(int i=;;i++)
{
if(Q[i]*k>n) break;
int t=i;
if(t&) t=t/+;
else t=t/;
if(t&) ans=(ans-P[n-Q[i]*k]);
else ans=(ans+P[n-Q[i]*k]);
if(ans>=MOD) ans%=MOD;
if(ans<) ans+=MOD;
}
return ans;
} void init()
{
_init();
LL k=;
num[]=;
for(int i=;i<=;i++){
num[i]=num[i-]+solved(i,k);
}
} int main(){
init();
int T;
while(scanf("%d",&T)!=EOF){
while(T--){
int n,c,l,r;
scanf("%d%d%d%d",&n,&c,&l,&r);
l-=c;
r-=c;
if(l==)printf("%lld\n",num[r]%MOD);
else printf("%lld\n",(num[r]-num[l-])%MOD);
}
}
return ;
}

hdu5230的更多相关文章

随机推荐

  1. unity中实现静态的3D对象对其他对象的跟随

    using UnityEngine; public class FollowPosition : MonoBehaviour { public Transform targetTrans; publi ...

  2. CSS实现和选择器

    CSS实现和选择器 本课内容: 一.实现CSS四种方式 1,每个html标签中都有一个style样式属性,该属性的值就是css代码.(针对一个标签)2,使用style标签的方式. 一般都定义在head ...

  3. 流氓 2345.com的新动态及解决方法

    安装了[电脑公司]的Win7_SP1之后, IE的主页被绑架. 症状是先转到 IE959.com,然后自动跳转到 www.2345.com 网上当然有很多例子了,可是都没有效果. 1. 更改IE设置没 ...

  4. dubbo监控报错Error creating bean with name 'uriBrokerService'

    在jdk1.8下面会出现此错误 解决方法: 1.更换服务器jdk版本.(会影响其他项目环境) 2.修改dubbo-admin tomcat默认jdk版本. 3.修改dubbo-admin项目依赖(de ...

  5. python-day9-循环嵌套

    练习:99乘法表: # for line in range(1,10): #line=2# for row in range(1,line+1):# print('%s*%s=%s' %(line,r ...

  6. hdu-2227-dp+bit

    Find the nondecreasing subsequences Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/3 ...

  7. java redis client jedis 测试

    package cn.byref.demo1; import java.util.HashMap; import java.util.List; import java.util.Map; impor ...

  8. dubbo管理控制台搭建

    1. 从网上下载dubbo管理控制台:dubbo-admin-2.5.4.war 2. 下载tomcat7,解压缩 3. 将tomcat7 webapps/ROOT的文件全部删除,然后把dubbo-a ...

  9. learning docker steps(2) ----- docker contailner 初次体验

    参考:https://docs.docker-cn.com/get-started/part2/ Dockerfile的内容如下所示: # 将官方 Python 运行时用作父镜像 FROM pytho ...

  10. IScroll的诞生和缺点

    转自http://lhdst-163-com.iteye.com/blog/1239784 iscroll.js是Matteo Spinelli开发的一个js文件,使用原生js编写,不依赖与任何js框 ...