首師大附中集訓第十二天綜合模測

2021-09-25 19:52:00 字數 1127 閱讀 2995

第一題:分則能成

這是之前寫過的blog。

第二題:明辨是非

這題一開始想了很久,腦子裡全是分塊並查集,然後不斷的把關係丟來丟去,很麻煩,其實只用考慮當前的一張關係圖,有一些白邊表示相等,有一些黑邊表示不相等,首先我們可以把白邊聯通的點用並查集縮起來,然後考慮縮點之間的黑邊,直接用set記錄每乙個聯通塊的黑出邊就可以了,合併兩個聯通塊的時候,按照黑邊集合的大小啟發式合併,就可以做到

有幾點需要注意,因為考試的時候也是最後檢查才發現,當合併兩個集合的時候,要把原來的黑邊另一頭指向的集合的黑邊集合刪除這一條邊。具體可以看看**,有點講不清楚。

#include#include#include#include#include#include#includeusing namespace std;

int n;

sets[200010];

mapq;

int f[200010];

struct quesq[100010];

int t[200010];

set::iterator it;

int findpa(int x)

int main()" class="mathcode" src=""/>。所以

所以我們就知道合法的

所以,我們只要讓

具體做法就是開兩個樹狀陣列維護一下即可。

#include#include#include#include#define lowbit(x) (x&(-x))

using namespace std;

int n;

long long k;

int a[100010],p[100010];

int sumx[200010],sumy[200010];

const int data=100001;

int l,r;

void add(int *sum,int x)

}int get_sum(int *sum,int x)

return tot;

}long long check(int x)

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

}

第四題:切方塊

暫時還沒有搞懂證明,今晚爭取寫出證明

首師大附中集訓第四天 雜

今天講的是一些雜題 一開始的是一些搜尋。1.長度為 n的數列,已知 n個字首和以及 n個字尾和共 2n個數打亂後的結果,已知數列中每個數的範圍是不超過 500的整數,求原數列,存在多組時間求字典序最小的。1 n 1000 我們考慮將整個序列從小到大排序,然後第乙個元素一定是f 1 或者g 1 就這樣...

首師大附中OJ系統 0022 併聯電阻

併聯電阻 難度級別 a 執行時間限制 1000ms 執行空間限制 51200kb 長度限制 2000000b 試題描述 從鍵盤分別輸入電阻r1 r2的阻值,編寫程式計算出併聯電阻的阻值。併聯電阻的計算公式是r1 r2 r1 r2 輸入 兩個數,分別表示電阻r1和r2的值,兩數間用乙個空格分隔。輸出乙...

首師大附中OJ系統 0030 購買衣服

購買衣服 難度級別 a 執行時間限制 1000ms 執行空間限制 51200kb 長度限制 2000000b 試題描述 衣服每件 95 元,若消費滿300元,可打八五折。輸入購買衣服的件數,輸出需要支付的金額 單位 元 輸入乙個正整數 n,表示購買衣服的數量。輸出乙個數,表示需要支付的購物款。輸入示...