Codeforces每日一練 1278C 228E

2022-09-07 19:06:10 字數 2482 閱讀 8315

題目鏈結

一開始想的是雙指標去貪心,然後wa2wa了三發qaq

然後換了思路,士多啤梨果醬還用1,藍莓果醬用-1表示,那麼最終的結果就是現存果醬的總和為0。

並且考慮到左右剩餘的果醬一定是連續的,欸嘿嘿嘿,連續+和,然後就想到可以字首和的思路搞一搞。

左邊就是從1到n求出字首和,右邊n+1~2n求乙個字尾和,顯然就是對左邊任意乙個點的字首和去字尾和裡找與其和為0的點,但是暴力匹配o(n^2),考慮用map存下右邊的字尾和以及對應的剩餘果醬數。然後遍歷左邊字首和即可。(記得考慮任一側果醬數為0的情況)

**如下:

#include

using

namespace std;

typedef

long

long ll;

#define ios ios_base::sync_with_stdio(false);cin.tie(0);

#define maxn 200005

int a[maxn]

,s[maxn]

,b[maxn]

;map<

int,

int> mp;

intmain()

mp[0]

=0;for

(int j =

2*n; j >=n+1;

--j)

if(sum==

0)cout<<

0<

else

} cout<<

2*n-ans<

return0;

}

題目鏈結

很明顯對於任意點,只有取和不取兩種情況(取偶數次周圍情況不變,取n次與取n%2次效果一樣).

考慮每一條邊,如果是1,那麼兩端要麼取,要麼不取,如果是0,則只能取一端。想到這,就聯想到了關押罪犯的思路,乙個傳統並查集+乙個enemy陣列存敵人。邊權為0時,兩個端點互相存乙個enemy。

那麼就是隨便取乙個點,然後取所有和它父親一樣或敵人一樣的。

然後就~

猛男落淚.jpg

然後想到圖可能不是聯通的,需要把每個連通塊裡都任意取乙個點出來,然後神速寫了個dfs染色,結果還是wa43,然後今天早上被大佬指點,發現處理並查集的時候,任意兩個點如果父親相同(取的狀態相同),那麼也應該合併他們敵人的家族。

然後就ac了~

**如下

#include

using

namespace std;

typedef

long

long ll;

#define ios ios_base::sync_with_stdio(false);cin.tie(0);

#define maxn 105

#define for_(i,n) for(ll (i)=1;(i)<=(n);i++)

struct edge

;vector e;

set<

int> ans;

int f[maxn]

,enemy[maxn]

;int

findfa

(int x)

}void

mergefa

(int a,

int b)

}vector<

int> g[maxn]

;int col[maxn]

;void

dfs(

int x,

int fa,

int co)

}int

main()

);}for_

(i,n)

}for

(auto i:e)

elseif(

!enemy[u]

)enemy[u]

=findfa

(v);

else

mergefa

(enemy[u]

,v);if(

!enemy[v]

)enemy[v]

=findfa

(u);

else

mergefa

(enemy[v]

,u);}}

for_

(i,n)}}

for_

(i,n)ans.

insert

(col[i]);

set<

int> sum;

for(

auto i:ans)}}

cout<

size()

<

for(

auto i:sum)cout<

" ";

return0;

}

相比位運算的並查集的確多了不少碼~(原諒蒟蒻沒看懂取異或的並查集做法qaq)

每日一練 1

左連線 以左表為主,右表沒有的填null 公升序 倒序 order by預設公升序 order by xx desc 取最大值 max 函式,例如 select max hire date from employees limit 1,2和limit 1offset 2的含義 limit 1,2第乙...

Codeforces每日一練周賽 1 C G

include using namespace std typedef long long ll define ios ios base sync with stdio false cin.tie 0 define maxn 10005 define inf 1000000002 define fo...

爬蟲每日一練(1)

教程 爬取乙個套圖 加了防盜煉解決方法 coding utf 8 import requests from bs4 import beautifulsoup import os import sys if os.name nt print u 你正在使用win平台 else print u 你正在使...