1. 程式人生 > >JZOJ 100035. 【NOIP2017提高A組模擬7.10】區間

JZOJ 100035. 【NOIP2017提高A組模擬7.10】區間

Description

Description

Input

Input

Output

Output

Sample Input

sample1:

4 2 10
5 1 1 10

sample2:

1000 97 96998351
41 1668 505 2333

Sample Output

sample1:

4

sample2:

1749769

Data Constraint

Data Constraint

Solution

  • 首先,按照所給的資料構造方法構造出 S 陣列。

  • 比賽時,我的做法是構出一棵線段樹,維護區間的乘積。

  • 這樣列舉區間的左端點,我們就能在 O(logN) 內求出整個區間的乘積。

  • 但這樣總時間複雜度達到了 O

    (NlogN) ,時間和空間上都不允許。

  • 於是我們想到了 分塊 的方法,將整個 S 陣列每 K 個數分一個塊。

  • 這樣每一個塊維護 字首和字尾和 ,這樣的預處理只需 O(N)

  • 之後列舉左端點,我們就可以通過維護的值 O(1) 求出答案了。

  • 那麼總時間複雜度就是 O(N) ,輕鬆通過。

Code

#include<cstdio>
using namespace std;
typedef long long LL;
const int N=2e7+1;
int n,k,mo,B,C,D,ans;
int s[N],pre[N],suf[N];
int main()
{
    scanf("%d
%d%d"
,&n,&k,&mo); scanf("%d%d%d%d",&s[1],&B,&C,&D); for(int i=2;i<=n;i++) s[i]=(s[i-1]*1LL*B+C)%D; int num=n/k; for(int i=0;i<num;i++) { int pos=i*k+1; pre[pos]=s[pos]; for(int j=pos+1;j<pos+k;j++) pre[j]=pre[j-1]*1LL*s[j]%mo
; suf[pos+k-1]=s[pos+k-1]; for(int j=pos+k-2;j>=pos;j--) suf[j]=suf[j+1]*1LL*s[j]%mo; } if(n%k) { int pos=num*k+1; pre[pos]=s[pos]; for(int i=pos+1;i<=n;i++) pre[i]=pre[i-1]*1LL*s[i]%mo; suf[n]=s[n]; for(int i=n-1;i>=pos;i--) suf[i]=suf[i+1]*1LL*s[i]%mo; } for(int i=1;i<=n-k+1;i++) if(i%k==1) ans^=pre[i+k-1]; else ans^=suf[i]*1LL*pre[i+k-1]%mo; printf("%d",ans); return 0; }

相關推薦

JZOJ 100035. NOIP2017提高A模擬7.10區間

Description Input Output Sample Input sample1: 4 2 10 5 1 1 10 sample2: 1000

JZOJ ANOIP2017提高A模擬7.10隨機

題目 思路 水法 正解時不可能的,這輩子都不可能的 首先,我們發現選兩個端點作為si,sj才是最優的。 所以我們可以列舉區間長度(i #include<cstdio> #include<cmath> using

JZOJ 100027. NOIP2017提高A模擬7.7表示式

JZOJ 100027. 【NOIP2017提高A組模擬7.7】表示式 題目 Description Input 一行兩個整數k,p。 Output 一行一個整數表示答案。 Sample Input 1 3 Sample Output 6 D

JZOJ 5377. NOIP2017提高A模擬9.19開拓

Description Input Output Sample Input 5 50 50 10 1 10 1 20 2 10 2 20 1 30 Sam

JZOJ_100029. NOIP2017提高A模擬7.8陪審團 (Standard IO)

qsort sta begin tput 關心 關鍵字 int 最有 制度 Description 陪審團制度歷來是司法研究中的一個熱議話題,由於陪審團的成員組成會對案件最終的結果產生巨大的影響,訴訟雙方往往圍繞陪審團由哪些人組成這一議題激烈爭奪。 小 W 提出了

jzojs 100044. NOIP2017提高A模擬7.13abcd

哈哈,看這題挺少題解的,就發一份吧 Description Input 輸入檔名為abcd.in。 輸入檔案共 N+1 行。 第 1 行包含1個正整數N。 第 i+1 行包含4個整數a[i],b[i],c[i],d[i]。 Output 輸出

jzojs 100047. NOIP2017提高A模擬7.14基因變異

Description 21 世紀是生物學的世紀,以遺傳與進化為代表的現代生物理論越來越多的 進入了我們的視野。 如同大家所熟知的,基因是遺傳因子,它記錄了生命的基本構造和效能。 因此生物進化與基因的變異息息相關,考察基因變異的途徑對研究生物學有著 至關重要的作用。現在,讓我們來看這

JZOJ100048 NOIP2017提高A模擬7.14緊急撤離

題目 題目大意 給你一個01矩陣,每次詢問從一個點是否可以走到另一個點。 每次走只能往右或者往下。 思考歷程 這題啊,我想的時候真的是腦洞大開…… 首先,我一眼看下去,既然要詢問是否聯通,那麼能不能求出它們的最短路,看看是不是它們的曼哈頓距離?

JZOJ100045 NOIP2017提高A模擬7.13好數

題目 題目大意 首先有一個定義: 對於一個數,如果和它互質的數可以組成一個等差數列,那麼這個數叫“好數”。 現在給你一個數列,有三種操作: 1、詢問一段區間內的好數的個數。 2、將一段區間內的數分別模一個值。 3、將某個數修改。 思考歷程 先看看

JZOJ 5400. NOIP2017提高A模擬10.7Repulsed

Description 小w 心裡的火焰就要被熄滅了。 簡便起見,假設小w 的內心是一棵n -1 條邊,n 個節點的樹。 現在你要在每個節點裡放一些個滅火器,每個節點可以放任意多個。 接下來每個

JZOJ 5404. NOIP2017提高A模擬10.10Graph

Description 給定一張n個點m條邊的無向圖,每條邊連線兩個頂點,保證無重邊自環,不保證連通 你想在這張圖上進行若干次旅遊,每次旅遊可以任選一個點x作為起點,再走到一個與x 直接有邊相連的點y,再走到一個與y 直接有邊相連的點z 並結束本次旅遊 作

JZOJ5372.NOIP2017提高A模擬9.17貓鏈表+貪心+堆優化

margin targe sga gin bt5 ie8 usm shu auc x壹鼐順51比http://shequ.docin.com/txqq_cb3d1e346f 惹M3桓7O2疽http://www.docin.com/app/user/userinfo?use

JZOJ 5455NOIP2017提高A衝刺11.6拆網線

目錄: 題目: 分析: 程式碼: 題目: 傳送門 分析: 設f[i][0]f[i][0]表示在xx的子樹中,xx沒有被選擇的情況下最多有多少對點是兩兩配對的 f[

jzoj100026. NOIP2017提高A模擬7.7圖(倍增)

100026. 【NOIP2017提高A組模擬7.7】圖 Description 有一個n個點n條邊的有向圖,每條邊為<i,f(i),w(i)>,意思是i指向f(i)的邊權為w(i)的邊,現

jzoj100027. NOIP2017提高A模擬7.7表示式

Description Input 一行兩個整數k,p。 Output 一行一個整數表示答案。 Sample Input 1 3 Sample Output 6 Data Constraint 對於2

jzojs 5384. NOIP2017提高A模擬9.23四維世界

Description 眾所周知,我們常感受的世界是三維的。 Polycarp突然對四維空間產生了興趣,他想對四維空間進行一些研究。但是在此之前,他必須先對三維世界瞭解透徹。 於是Polycarp決定從零維,也就是一個點,開始他的研究。我們把一個點放在三維空間中,Polycarp把這

JZOJ-senior-4627. NOIP2016提高A模擬7.15斐波那契數列

Time Limits: 1000 ms Memory Limits: 524288 KB Description Input Output Sample Input 5 10 Sample O

JZOJ5353NOIP2017提高A模擬9.9村通網最小生成樹

題目大意: 題目連結:https://jzoj.net/senior/#main/show/5353 為了加快社會主義現代化,建設新農村,農夫約(Farmer Jo)決定給農莊裡每座建築都連上網際網路,方便未來隨時隨地網購農藥。 他的農莊很大,有N 座建築,但地理位置偏僻,網路訊號很

JZOJ5354NOIP2017提高A模擬9.9導彈攔截網路流DP

題目大意: 題目連結:https://jzoj.net/senior/#main/show/5354 某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。 敵國的導彈形成了立體打擊,每個導彈可以抽象成一個三維空間中的點(x; y; z)。攔截系統發射的炮彈也很好地應對了這種情況,每一

JZOJ 5441. NOIP2017提高A衝刺11.1序列

Description 給定一個1~n的排列x,每次你可以將x1~xi翻轉。你需要求出將序列變為升序的最小操作次數。有多組資料。 Input 第一行一個整數t表示資料組數。 每組資料第一行一個整數n,第二行n個整數x1~xn。 Output 每組