v>
wxy 4.12 牛客練習賽61 重現
5317
a簽到題
對於特殊情況的判斷條件要考慮全面,且如果有除的情況的話要考慮是否有浮點儲物的可能。
簽到題如果wa了的話,不要太care,不要影響心情。
b猜中結論順利a題,這種題一般就是快速找到結論,然後小心求證是否需要分類討論,賽後再去求證結
論的正確性。
2(n-x)=m-x 2n-m=x
c看到資料範圍很小,只有12,勇敢暴力。
首先用並查集把要求一樣的放到乙個集合中去,而且要求小頂堆做該集合的標記,然後dfs如果是和集
合一樣的或者本身乙個集合的且當前該選項的數目也沒有超出限制則dfs下一道題
# include
using namespace std;
int fa[20],num[20],now[20],ch[20];
int ans=0;
void make_set()
int find(int x)
void join(int x,int y)
void dfs(int tid)
for(int i=0;i<4;++i)}}
}int main()
dfs(1);
printf("%d",ans);
return 0;
}二分最長的可以劃分的長度,其中check的寫法使用乙個u_map,第一維是hash值,第二維是pair,
fifirst存該雜湊值上一次出現的位置,second存改雜湊值出現的次數,每乙個i取i為結尾,長度是x的字元
串計算其雜湊值,如果該雜湊值上一次出現的位置和當前的位置相差超過x,那麼就修改fifirst和second,然
後如果當前的second>=k則判斷可行
f線段樹+點分治
# include
using namespace std;
typedef unsigned long long ull;
const int maxn=2e5+100;
int n,k;
char s[maxn];
ull hash[maxn],power[maxn],base=131;
unordered_map> mp;
int check(int x)
return 0;
}int main()
int l=1,r=n,mid,ans=0;
while(l<=r)
printf("%d\n",ans);
wxy 4 9 牛客訓練賽50重現
v wxy 4.9 牛客訓練賽50重現 5220 a給乙個字串,如果相同的字母都連在一起,那麼就是令人心情愉悅。如果前面和現在是同乙個字母,那麼就更新該字母的位置,如果前面不是該字母但是該字母的,f陣列之前更新過,那麼就說明這個字母 不只一段。題解從總長度入手。b模擬hash雜湊表的操作過程,採用記...
牛客練習賽61 a 打怪
題目鏈結 題目描述 你是乙個勇士,現在你準備去森林刷毛球怪,你有兩個屬性 血量,攻擊力 毛球怪也有這兩個屬性。當你遭遇乙隻毛球怪時你們會進入戰鬥,然後你和毛球怪輪流攻擊 你先手 每次使對方的血量減去自己攻擊力的數值,當一方的血量小於等於 0 時死亡。現在你想知道在自己活著的前提下最多殺死幾隻毛球怪。...
牛客練習賽61 A 打怪
你是乙個勇士,現在你準備去森林刷毛球怪,你有兩個屬性 血量,攻擊力 毛球怪也有這兩個屬性。當你遭遇乙隻毛球怪時你們會進入戰鬥,然後你和毛球怪輪流攻擊 你先手 每次使對方的血量減去自己攻擊力的數值,當一方的血量小於等於 0 時死亡。現在你想知道在自己活著的前提下最多殺死幾隻毛球怪。第一行乙個正整數 t...