首页 > TAG信息列表 > 題解
[題解](迭代加深)POJ2248_Addition Chains
發現m不會特別大,也就是層數比較淺,所以採用迭代加深 由於xi+xj可能相同,所以開一下vis數組判斷重複 #include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=10009;int n,x[maxn],ceil;bool c[109];bool dfs(int dep,int now){ if(dep>ceil)ret[題解](枚舉/二分/單調隊列)積木大賽(考試)
2.积木大赛 (block.pas/c/cpp) 【问题描述】 春春幼儿园举办了一年一度的“积木大赛”。 在2013年NOIP大赛中,平平同学己经搭建了宽度为n的大厦,其中第i块高度为hi。今年比赛的内容是对其NOIP2013搭建大厦进行扩建,使用的材料也都是体积为1正方体积木。 今年搭建的规则是:如果要在[題解](水/數學)luogu_P1147連續自然數和
尺取法a掉 然而數學解法為 等差數列求和公式: sum(L,R)=(L+R)(R-L+1)/2=M 即(L+R)(R-L+1)=2M 可以把2M分解成两个数之积,假设分成了两个数K1,K2,且K1<K2时, 可以列一个二元一次方程组 R-L+1=K1 L+R=K2 解得L=(K2-K1+1)/2, R=(K1+K2-1)/2 当K1,K2一奇一偶时,L,R才有自然数解. 不过有一种[題解](DP)CF713C_Sonya and Problem Wihtout a Legend
對於不嚴格單調的我們可以n^2DP,首先每個數一定在原數組中出現過,如果沒出現過不如減小到出現過的那個花費更小,效果相同 所以f[i][j]表示把i改到離散化后j的最小代價,每次維護前一狀態最小值mn再加上這次的值就是答案 圖像沒看懂:https://blog.csdn.net/lycheng1215/article/details/80[題解](二分答案/單調隊列)luogu_P1419尋找段落
果然又抄的題解... 顯然答案具有單調性,而對于平均數計算的式子我們移一下項, 若s[l..r]>mid*(r-l+1)无解, 於是我們把每個數都減去一個mid,看和的正負即可,如果為正就可能有更大的平均數, 求子串和最大值可以用單調隊列維護, #include<bits/stdc++.h>using namespace std;const int maxn=[題解](縮點)luogu_P2341受歡迎的牛
對於每個強聯通分量,這些牛一定都互相喜歡,所以縮點(我也不知道怎麼想到的) 接下來就是統計答案,最後縮成了一個DAG圖,如果這個點是明星的話,其他每個點一定直接或間接的鏈接這個點 也就是說其他點一定有出度,把關係傳遞給其他點了,如果某個點沒有出度,那麼這個點沒有傳遞出他們的愛慕關係,[題解]luogu_P1144最短路計數
1.無權圖最短路邊權為1 2.如果兩個點恰好不能被更新(d[y]==d[x]+1)那麼就能通過x的所有最短路到達y,所以ans[y]+=ans[x] 3.如果兩個點不能恰好被更新(d[y]>d[x]+1)那麼到達y的最短路目前只有通過x到達,所以ans[y]=ans[x] #include<iostream>#include<cstdio>#include<queue>#include[題解](最短路/二分)luogu_P1462通往奧格瑞瑪的道路
看到最大的最小值應該想到二分答案,這樣就解決了最小點權的問題,判血量就很好說,直接比較就行, 一個點是二分點權數組,複製一份然後排序,二分下標,速度較快 這麼簡單的題我竟然寫了這麼長時間 #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#de[題解]積木城堡
luogu P1504動態規劃 來源:題解 题目描述 XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时