我只能說一句話:這才是$noip$難度吧……(神$tm$聯賽考$fft$)
題意:$n$根板子長度是$1~n$全排列,找出一種方法,使得板子組成的容器容量恰好為定值。
眼瞪十分鐘$+$$coding$ $15$分鐘 $+$ $debug$ $5$分鐘 $=$ $ac$。
首先我們可以知道,整個容器容量最大的情況就是兩根最長的板子夾在兩邊,中間全是相對較短的板子,這樣獲得的最大的容量就是\[\frac\]。那麼我們就可以知道大於這個的一定不合法。
確定合法之後,我們就可以愉快的貪心了,不斷選取當前可抽出的板子中最短的放在左側並按照遞增順序擺放,避免出現額外容量。合格後直接兩個長板放在兩邊,中間沒放過的隨意放即可。
1 #include2 #include3 #include4 #include5a題意:求出所有長度為$k$子串行的最大元素之和。using
namespace
std;
6const
int maxn=(int)1e6+5;7
int ord[maxn],n;long
longx;8
bool
used[maxn];
9int
haha()
1018
int cur=1,cn=1,nn=1;19
while(res>x)
2029
else
30for(;nn1;nn++)
3138}39
}40 ord[cur]=n;ord[n]=n-1;cur++;
41 used[n]=used[n-1]=1;42
int now=1;43
while(cur
44for(;now<=n;now++)
45if(!used[now])
4650
for(int i=1;i<=n;i++)printf("
%d "
,ord[i]);51}
52int sb=haha();
53int main()
撕烤了十五分鐘認為不太可能是第二個思博題,但是又想不到風險係數更低的想法,於是敲了上去。事實證明,正解就是這個……
我們可以發現乙個子串行的貢獻只與最大元素有關。那麼我們就可以只觀察最大元素的變化。我們先對序列從小到大排序,對於排序後的序列,從第$k$個開始都是可能的。對於第$i$個元素可以發現它成為最大元素的情況有 $\binom$種。
直接計算組合數肯定會超時,那麼我們考慮前後項之間關係。我們可以看到,前項與後項關係是 $\binom=\binom*(i-1)/(i-k)$。那麼我們遞推計算即可。
1 #include2 #include3 #include4 #include5b題意:給出一棵二叉樹,問最少修改幾次可以轉化為$bst$。$bst$特點是,左兒子元素$using
namespace
std;
6const
int maxn=100005,mod=(int)1e9+7;7
long
long c=1,ans=0;8
intn,k,a[maxn];
9long
long qpow(int val,int
tim)
1016
inthaha()
1727 printf("
%lld\n
",ans);28}
29int sb=haha();
30int main()
這道題考試時候坑壞我了……剛開始以為這個題是個樹歸,但是考慮了很久並沒有發現什麼樹形關係……後來在紙上畫了畫,發現這個東西其實是個什麼呢……就像下面這個圖:
噹噹噹噹!就是這個!我意識到$bst$中序遍歷之後就可以變成乙個序列,這個序列之中最長上公升子串行的長度就是不需要修改的長度。於是我就這麼敲了一發。
但是交卷後我出了一組資料,發現不太對:
就是這張圖。如果說單純求最長上公升子串行長度是$3$,但是這個序列是$2、3、5$,顯然中間存在問題,因為$2$、$3$之間存在乙個數,這兩個數不可能作為最優情況連續出現,正確情況是修改$3$次。但是已經交卷了,再加之腦子很亂,並沒有想出怎麼解決。
直到看見題解,我的腦子真的是炸裂……每一項中序遍歷之後都減去這個數所在位置,問題轉化為求出新序列的最長不下降子串行……說不太明白,還是直接**送上吧……
1 #include2 #include3 #include4 #include5cusing
namespace
std;
6const
int maxn=100005;7
int son[maxn][2
],ord[maxn],cnt,n,a[maxn];
8long
long
g[maxn];
9void middle(int
root)
1015
inthaha()
1625 middle(1
);26
for(int i=1;i<=n;i++)g[i]=2147483648ll;
27int ans=0;28
for(int i=1;i<=n;i++)
2934 printf("
%d\n
",n-ans);35}
36int sb=haha();
37int main()
2017 8 9 考試吐槽
感覺現在自己最弱的地方不是在於思維活性上,而是在於那些本不應該出現在我身上的問題,比如說什麼看出正解打不出來啦 打出正解莫名其妙被卡分啦 莫名其妙少些什麼導致爆零啦 讀不懂題啦 讀不懂題啦 讀不懂題啦 反正問題太多了 題意 求出所有順序對的貢獻,定義順序對貢獻為這兩個數之間比前者大比後者小數的個數。...
2017 7 30 考試吐槽
一句話 原來oi是個文科競賽 吐槽 尼瑪啊 我為什麼要曠了heoi2017 day1講評 題解 就是那個畢老師的 相逢是問候 思路啊 觀察數列可以意識到這個數列的指數是 fibonacci 數列,因此乙個矩陣快速冪日翻 然而它的增長速度過快,需要減小冪次。這時我們請出完美錯過的尤拉定理,降次之後再套...
吐槽大會4 《吐槽大會4》是《吐槽大會》的終點嗎?
1月18日,吐槽大會4 最新一期如約開播。導演徐崢作為 主咖 帶著自己即將於大年初一上映的電影 囧媽 參加節目。節目播出之後,徐崢吐槽郭京飛 李誕讚吐槽大會沒有下一季 李庚希跟徐崢要易烊千璽演唱會門票 等話題接連登上微博熱搜榜,而在這之中最為觀眾注意的則是思文不僅喊話 囧系列 不要繼續了,同時也調侃...