題:
題意:給出n個點m條邊的圖,逐一刪除每個指定點,問每次刪除前圖是否連通。
分析:把指定的序列反過來做就行,對於每個加進來的點,看原本集合中有無進來點的連邊,有就用並查集聯絡起來,表示倆者所處連通塊連通,(正著切斷,反著就判斷連通與否就行),每次檢查當前集合是否連通即可,複雜度:o(nlogn)
#includeusingview codenamespace
std;
typedef
long
long
ll;const
int inf=0x3f3f3f3f
;const ll inf=1e18;
const
int m=3e5+6
;#define pb push_back
#define lson root<<1,l,midd
#define rson root<<1|1,midd+1,r
intf[m],sz[m],a[m],ans[m];
sets;
vector
g[m];
int find(int
x)void unite(int u,intv)}
intmain()
for(int i=1;i<=n;i++)
cin>>a[i];
int sign=a[n];
for(int i=n;i>=1;i--)
if(sz[find(sign)]==s.size())
ans[i]=1
; }
for(int i=1;i<=n;i++)
if(ans[i])
cout
<
yes"
<
;
else
cout
<
<
;
return0;
}
題:題意:給定序列,你能執行這樣的操作:當相鄰的值是相同的時候就可講倆者合併成當前值加1,問最大合併出的值是多少
分析:區間dp,dp[i][j]表示區間[i,j]能合併成的最大值;
#includeusingview codenamespace
std;
typedef
long
long
ll;const
int inf=0x3f3f3f3f
;const ll inf=1e18;
const
int m=300
;#define pb push_back
#define lson root<<1,l,midd
#define rson root<<1|1,midd+1,r
intdp[m][m];
intmain()
}cout
return0;
}
題:題意:找出n的排列中滿足相鄰相鄰互質的個數
分析:咕咕咕
make安裝軟體一鍵三連
configure檔案是乙個可執行的指令碼檔案,主要作用是對安裝的軟體進行配置,檢查當前的環境是否滿足要安裝軟體的依賴關係。它有很多選項,在待安裝的原始碼目錄下使用命令 configure help可以輸出詳細的選項列表。其中 prefix 選項是配置安裝目錄,如果不配置該選項,安裝後可執行檔案預設...
UWP 模仿嗶哩嗶哩的一鍵三連
什麼是一鍵三連?去年在雲之幻大佬的 嗶哩 專案裡看到一鍵三連的 uwp 實現,覺得挺有趣的,這次參考它的 重新實現一次,最終成果如下 下面這些是一鍵三連的核心功能 這篇文章將介紹如何使用自定義控制項實現上面的功能。寫簡單的自定義控制項的時候,我推薦先寫完 然後再寫控制項模板,但這個控制項也適合一步步...
單身三連之一
乙個讓單身狗們崩潰的題 題目大意 有n件物品,一共取d次,一次取的必須少於m件,問共有多少種取法。每個物品相同,有多測,對998244353取模 題解 30 演算法 n,d 20,m 10 簡單的dp。設f i j 為取了i次,共取了j件物品的方案數,則有如下狀態轉移方程 f i j kk max ...