日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

51nod 1617 奇偶数组

發布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51nod 1617 奇偶数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

?

  回來看一眼51nod,發現自己掉到rank4了,趕緊切道題回rank3。

  一眼不會做,這種東西應該慢慢找規律吧……然后看到數據范圍其實比較小,應該是單次log的,那是不是可以分治啊。

  

#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;ll n,l,r,L,R;int m,MOD;
int M(int x){while(x>=MOD)x-=MOD;while(x<0)x+=MOD;return x;}
int f(ll x){x%=MOD;return (x*(x+1)>>1)%MOD;}struct na{int sum,n;na(int _sum=0,int _n=0):sum(_sum),n(_n){};
};
na operator + (na a,na b){return na(M(a.sum+b.sum),M(a.n+b.n));}
na cgl(na a){return na(M(a.sum*2-a.n),a.n);}
na cgr(na a){return na(M(a.sum*2),a.n);}
na mmh(ll n,ll l,ll r,ll L,ll R){if (L>n||L>R||l>n||r<1||R<0) return na(0,0);if (l<1) l=1;if (r>n) r=n;if (R>n) R=n;if (l==1&&r==n) return na(M(f(R)-f(L-1)),(R-L+1)%MOD);ll mid=(n+1)>>1;na MMH=cgl(mmh(mid,l,r,(L>>1)+1,R+1>>1))+cgr(mmh(n-mid,l-mid,r-mid,L+1>>1,R>>1));return MMH;
}
int main(){scanf("%lld%d%d",&n,&m,&MOD);while(m--){scanf("%lld%lld%lld%lld",&l,&r,&L,&R);printf("%d\n",mmh(n,l,r,L,R).sum);}
}
View Code

?

轉載于:https://www.cnblogs.com/Enceladus/p/8682117.html

總結

以上是生活随笔為你收集整理的51nod 1617 奇偶数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。