標籤:數學,遞推,模擬
題目描述
六十年一次的魔法戰爭就要開始了,大魔法師準備從附近的魔法場中汲取魔法能量。
大魔法師有m個魔法物品,編號分別為1,2,...,m。每個物品具有乙個魔法值,我們用xi表示編號為i的物品的魔法值。每個魔法值xi是不超過n的正整數,可能有多個物品的魔法值相同。
大魔法師認為,當且僅當四個編號為a,b,c,d的魔法物品滿足xa
現在,大魔法師想要知道,對於每個魔法物品,作為某個魔法陣的a物品出現的次數,作為b物品的次數,作為c物品的次數,和作為d物品的次數。
輸入輸出格式
輸入格式:
輸入檔案的第一行包含兩個空格隔開的正整數n和m。
接下來m行,每行乙個正整數,第i+1行的正整數表示xi,即編號為i的物品的魔法值。
保證1≤n≤150001 \le n \le 150001≤n≤15000,1≤m≤400001\le m \le 400001≤m≤40000,1≤xi≤n1 \le xi \le n1≤xi≤n。每個xi是分別在合法範圍內等概率隨機生成的。
輸出格式:
共輸出m行,每行四個整數。第i行的四個整數依次表示編號為i的物品作 為a,b,c,d物品分別出現的次數。
保證標準輸出中的每個數都不會超過10^9。
每行相鄰的兩個數之間用恰好乙個空格隔開。
輸入輸出樣例
輸入樣例#1:複製
30 8 1
24 7
28 5
29 26
24輸出樣例#1:複製
4 0 0 0
0 0 1 0
0 2 0 0
0 0 1 1
1 3 0 0
0 0 0 2
0 0 2 2
0 0 1 0
輸入樣例#2:複製
15 15 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
輸出樣例#2:複製
5 0 0 0
4 0 0 0
3 5 0 0
2 4 0 0
1 3 0 0
0 2 0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 1 0
0 0 2 1
0 0 3 2
0 0 4 3
0 0 5 4
0 0 0 5
說明
【樣例解釋1】
共有5個魔法陣,分別為:
物品1,3,7,6,其魔法值分別為1,7,26,29;
物品1,5,2,7,其魔法值分別為1,5,24,26;
物品1,5,7,4,其魔法值分別為1,5,26,28;
物品1,5,8,7,其魔法值分別為1,5,24,26;
物品5,3,4,6,其魔法值分別為5,7,28,29。
以物品5為例,它作為a物品出現了1次,作為b物品出現了3次,沒有作為c物品或者d物品出現,所以這一行輸出的四個數依次為1,3,0,0。
此外,如果我們將輸出看作乙個m行4列的矩陣,那麼每一列上的m個數之和都應等於魔法陣的總數。所以,如果你的輸出不滿足這個性質,那麼這個輸出一定不正確。你可以通過這個性質在一定程度上檢查你的輸出的正確性。
【資料規模】
普及組的題果然是推出來一堆亂式子模擬
神煩的題
外層迴圈列舉l的長度,內層迴圈分別計算(a,b)(c,d)兩種情況
code
#include#include#include#includeusing namespace std;
int n,m,val[40006],num[15006];
int a[15006],b[15006],c[15006],d[15006];
int main()
for(int i=1;i*9+1<=n;i++)
sum=0;
for(int j=n-i*9-1;j>=1;j--)
} for(int i=1;i<=m;i++)
cout<
洛谷P2119 魔法陣
六十年一次的魔法戰爭就要開始了,大魔法師準備從附近的魔法場中汲取魔法能量。大魔法師有m個魔法物品,編號分別為1,2,m。每個物品具有乙個魔法值,我們用xi表示編號為i的物品的魔法值。每個魔法值xi是不超過n的正整數,可能有多個物品的魔法值相同。大魔法師認為,當且僅當四個編號為a,b,c,d的魔法物品...
洛谷P2119 魔法陣
六十年一次的魔法戰爭就要開始了,大魔法師準備從附近的魔法場中汲取魔法能量。大魔法師有m個魔法物品,編號分別為1,2,m。每個物品具有乙個魔法值,我們用xi表示編號為i的物品的魔法值。每個魔法值xi是不超過n的正整數,可能有多個物品的魔法值相同。大魔法師認為,當且僅當四個編號為a,b,c,d的魔法物品...
數論 DP 魔法陣
帕秋莉 諾蕾姬,有著 不動的大圖書館 的稱號,擅長使用各種各樣的屬性魔法。東方求聞史記 一如既往地,帕秋莉在圖書館中研究著魔法。今天,她在研究一本魔法書中的法陣。這個法陣可以看成是按下面的規則生成乙個規模為n n 為非負整數 的圖形 1.在直角座標系xoy 中,畫4 條線段 0,0 2 n,0 0,...