hdu5230
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的更多相关文章
随机推荐
- angular5 生命周期钩子函数
生命周期执行顺序ngOnChanges 在有输入属性的情况下才会调用,该方法接受当前和上一属性值的SimpleChanges对象.如果有输入属性,会在ngOnInit之前调用. ngOnInit 在组 ...
- [html]点击button后画面被刷新原因:未设置type="button"
一.问题原因解析: 在form表单里的button, type 属性未设置的情况下,Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C ...
- UltraDropDown
private void FruitInit() { //Create some fruit fruits.Add(-1,"apple"); fruits.Add(-2," ...
- English trip -- VC(情景课)8 C
MP review: 音标(Phonetic symbol) [ɪ] lit adj. 照亮的,点着的(light的过去式及过去分词)n. (Lit)人名:(瑞典)利特:(老)李 [ʊ] g ...
- LeetCode--066--加一
问题描述: 给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. ...
- 20170728xlVBA改转置一例
Sub 导出() Dim Sht As Worksheet, ShtName As String Dim NextRow As Long, NextRow2 As Long Dim iRow As L ...
- OAF 功能中的参数含义
OA.jsp?OAFunc=POS_HT_SP_B_SUPP&OAPB=POS_SM_PRODUCT_BRANDING&OAHP=POS_SM_ADMIN_HOME&OASF= ...
- img标签中alt属性与title属性在seo的作用-摘自网友
img标签中alt属性与title属性作用,也许大家比较迷惑,现在给大家举例说明.alt属性是图片的替换文字.title属性规定元素的额外信息,有视觉效果. 目录 alt属性 title属性 ie和f ...
- ArrayList Vector LinkedList(一)
ArrayList Vector LinkedList 区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素, ...
- jenkins+git+docker实验环境的搭建
持续集成(c/i)的实验环境 git/harbor服务器 ip 192.168.200.132 docker服务器 ip 192.168.200.149 Jenkins服务器 ...