原创 bzoj3406 [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵

題目 BFS經典例題吧。 從起點開始入隊,就好了。 值得注意的是,可以向八個方向拓展。。 #include<cstdio> struct sb{ int x,y,day }; const int dx[8]={1,0,-1

原创 bzoj4742 [Usaco2016 Dec]Team Building

題目 一眼dp題,對吧,然後就是考慮狀態的表示與轉移了。 有兩個數組,f[i][j]是肯定要有的,然後選k個,最終狀態就爲f[i][j][k]就好了。表示a中前i個與b中前j個,選出了k個的方案數。(當然順序對於這道題沒有影響,但

原创 [hdu1599]find the mincost route

一句話題意:求無向圖的最小環的長度。 emm,這應該算是模板題或者叫floyd的經典應用吧。 #include<bits/stdc++.h> #define inf 100000000 using namespace std; i

原创 bzoj3018 [Usaco2012 Nov]Distant Pastures

題目 一開始還被嚇了一跳,但是,仔細想想也很簡單。 題目翻譯有毒。。 D(S,T)是S到T的最短距離。。 這樣,我們只需要枚舉起點,然後跑一邊最短路,求一下最大值就好了。 #include<bits/stdc++.h> usin

原创 [poj2369]Permutations

一句話題意:求一個排列的所有循環的最小公倍數。 正好前幾天因爲牛排序而知道了這個東西,做一做模板題練一練手。 其主要思想就是兩個數組互相迭代,可以用簡單的例子來模擬一下也是可以的。 #include<cstdio> #includ

原创 bzoj2134 單選錯位

題目 博客要開始更新了。畢竟noip也算過去了。 這差不多又是一道數學題,我們這樣考慮: 對於一道答案有a種情況,會選b種可能的題,兩兩排一下,一共有ab種情況,而符合條件的只有min(a,b)種,那麼,期望爲(1/ab)*min

原创 bzoj3438 小M的作物

題目 一眼最小割,其實和大多模型是一樣的。 也比較套路,就是用總價值減去最小割就好了,對於這道題。 源點連向耕地再連向匯點,對於每一個額外收益,然後拆成兩個點,之後的連法也就差不多了。 #include<bits/stdc++.h

原创 bzoj2760 [JLOI2011]小A的煩惱

題目 大模擬題,這種題就是要細心才行,比如noip2017的d1t2就是這樣的,沒什麼難度。 對於這道題,可以用STL來優化,這也不失爲一種好辦法來加快代碼速度。STL就是要多練。 #include<bits/stdc++.h>

原创 bzoj2764 [JLOI2011]基因補全

題目 大概又是一道dp題吧,把鹼基先處理一下,就成爲匹配方案數了,就是簡單dp。 f[i]表示前j個的方案數。 轉移就是: f[j]=f[j]+f[j−1](A[i]==B[j]) 注意枚舉順序,m要從後面開始。 比較麻煩的是,要

原创 hdu5929 Basic Data Structure

題目 咋一看是很毒瘤的數據結構,但是仔細觀察一下nand這個運算,可以得到一個結論:答案只和末尾的1的個數的奇偶性有關,這樣的話,就可以隨便做了。 我寫的是二分加樹狀數組,可能比較慢。 實現的細節很多,比如處理只有一個數的情況,還

原创 bzoj3994 [SDOI2015]約數個數和

題目 反演的經典套路題目。 對於這種題,套路無非就是先用狄利克雷卷積一下,然後交換求和順序,最後就能化爲一個 n√ 的求和了。 對於交換順序這個事,只要注意一下各個變量的依賴關係就好了。 對於這道題來說: ∑ni=1∑mj=1d(

原创 bzoj3239 Discrete Logging

題目 離散對數裸題,這道題中p是素數,所以用一般BSGS就好了,這個東西十分巧妙呀。 ax≡b(mod p) 我們可以設x=Ap√+B ,其中,0≤A≤p√ ,0≤B<p√ 。 那麼,我們可以得到aAp√≡ba−B(mod p)

原创 hdu1542 Atlantis

題目 矩形面積並基礎題。 考慮把每一個矩形按照邊界分成小矩形,用掃描線就好了,然後就是統計另一個方向上的長度,這個用線段樹維護一下就好了。 比如這張圖,大概就是這樣分割的,對於x軸的一段,對應了y軸上的一部分。 這樣,就可以x軸

原创 [Usaco]麥香牛塊

說實話,我也不知道這道題我到底對不對,反正各個網站的數據都過了,但是還是有些虛。 我們首先知道,對於a,b兩個數,設d=gcd(a,b),那麼對於任意c>=ab且d|c,一定存在正整數x,y,使得ax+by=c成立。 對於這道題,

原创 bzoj2480 Spoj3105 Mod

題目 擴展BSGS,當時調了我很久,原因竟是p可以等於1,233。太慘了,這個可得好好注意一下呀。 大致思路和一般BSGS差不多,就是要多推幾步,然後就一樣了。 //ex_BSGS #include<bits/stdc++.h>