2020 10 13 聯賽模擬測試15

2022-04-12 05:42:36 字數 2146 閱讀 1786

把每個**的兩個屬性連上邊,即將**看作邊,將屬性看做點。

對於樹聯通塊,顯然不選最大的節點(屬性)。

對於非樹聯通塊,因為每個**可以選兩個相鄰節點之一,顯然每個節點(屬性)都可以被選。

n個人,每次報到m的死

初始ans = 0, 列舉 2 <= i <= n, 每次 (ans+=m)%=i;

最後 ans + 1 即答案

本題n達到了1e9顯然o(n)不可過,於是考慮優化

n 很大, m 相對較小

對於每次取模,發現,當i很大時,取模很可能沒用上,所以可以將加法轉化為乘法

#include #include #include #include using namespace std;

int n,m,ans,siz;

int main()

printf("%d\n",ans+1);

} return 0;

}

開方得:\(\sum\limits_^ \sum\limits_^r x_i^2 y_j^2 x_j^2 y_i^2 -2*x_i y_i x_j y_j\)

發現如果 將\(i,j\)都在\([l,r]\)內列舉,即\(\sum\limits_^r \sum\limits_^r x_i^2 y_j^2 + x_j^2 y_i^2 - 2 x_i y_i x_j y_j\)

恰好為原式2倍

\(\sum\limits_^r \sum\limits_^r 2 x_i^2 y_j^2 - \sum\limits_^r \sum\limits_^r 2 x_i y_i x_j y_j\)

原式就是:

\(\sum\limits_^r \sum\limits_^r x_i^2 y_j^2 - \sum\limits_^r \sum\limits_^r x_i y_i x_j y_j\)

\((\sum\limits_^x_i^2)\times(\sum\limits_^y_i^2) - (\sum\limits_^x_iy_i)^2\)

用樹狀陣列維護

\(\sum\limits_^x_i^2 和 \sum\limits_^y_i^2 和 \sum\limits_^ x_i*y_i\) 即可

每次單點修改,區間查詢

最長公共上公升子串行 , \(f[i][j]\)表示對於\(a\)的前\(i\)個,\(b\)的前\(j\)個,且以\(b[j]\)結尾的最大長度

\(a[i]!=b[j] : f[i][j]=f[i-1][j];\)

\(a[i]==b[j] : f[i][j]=f[i-1][k]+1 (0<=k

\(o(n^3)\)的

考慮優化:

可以發現列舉\(k\)時\(a[i]\)是不變的,只要\(b[j]==a[i]\),\(f[i][j]\)就會被前面的最優決策點+1更新

那麼我們只需要在列舉j的時候順便更新乙個最優決策點即可避免列舉k

複雜度 \(o(n^2)\)

#include#include#include#includeusing namespace std;

const int maxn=5e3+5;

int n,a[maxn];

int m,b[maxn];

int f[maxn][maxn];

int fr[maxn][maxn];

int sta[maxn],top;

int ans;

void back(int i,int j)

int main()

else

if(b[j]val)

} }int ans=0;

for(int i=1;i<=m;++i) if(f[n][i]>f[n][ans]) ans=i;

printf("%d\n",f[n][ans]);

back(n,ans);

for(int i=top;i>=1;--i) printf("%d ",sta[i]);

return 0;

}

聯賽模擬測試34

考場打表 rand 正解可以根據乙個倍數往上翻 如果乙個數b是a的n倍,那麼b可以由a貼上n次得到 開乙個佇列按照每個因數倍增幾次取最小即可 藍書原題 csp考試之前還看來著 然後考場假了 打了暴力滾粗 下來之後一點就透了 等比數列求和 對於唯一一組hack資料 是mod完階乘出0了 特判一次直接往...

聯賽模擬測試33

區間dp g i j 表示從第i位到第j位中間有多少不重複出現的數字 f i j 表示合併i到j能獲得的收益之和 特隊兒在寫的時候 正序遍歷掛成零分 原來是沒有學習經驗 還是要注意遍歷方法 眾所周知,乙個合格的oier不僅要會數奧,物奧,生奧 甚至還要會一點點美術 考試的時候畫了好久 打表拿到了 5...

聯賽模擬測試32

a.迴圈依賴 思路對了 dfs 判環打掛了沒啥好說的 下午來了 tarjan 一遍碼過 但還是學習了一下凱爹的 dfs 可能魔改過了一些地方?總之學廢了,注意判自環 b.a開始迴圈依賴 20pts 暴力隨便打 考場上本來想按照值域預處理一下 看到 10000 就爪巴了 至於 a i 1 的情況只想出...