題意 : 可以選擇操作一串區間,將區間內的某乙個數全部變成乙個新的數字,詢問整個區間中某個數字的出現次數總共有多少個?
思路分析 : 首先最後選的一定是乙個區間,然後 ans = cnt(1, l-1, c)+cnt(r+1, n, c)+cnt(l, r, d)
ans = cnt(1, n, c) - cnt(l, r, c) + cnt(l, r, d)
即,我們只需要最大化 l - r 內的 d - c 的個數,其實就是個最大區間和的變化版本,統計乙個數時,當這個數的的個數小於c的個數時,只需要將它的個數更新到和 d 的個數一樣即可
**示例 :
int n, c;int a[maxn];
int cnt[maxn];
void solve()
printf("%d\n", f+cnt[c]);
}int main()
dp最大區間和最大矩陣
輸入乙個 非空 整型陣列,陣列裡的數可能為正,也可能為負。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 輸入 8 1 2 3 10 4 7 2 5 輸出 18 解析 首先我們因該知道 a i 前乙個位置的區間最大值影響 a i 位置區間最大。我們分析陣列...
乘積最大 (區間DP)
一本通 1275 例9.19 乘積最大 題目描述 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有...
時間複雜度 最大區間和
題目大意 在一維陣列的連續區間找出其總和最大的連續區間。題目不難,但是很有啟迪的一道題目。乙個了解時間複雜度題目,用幾種不同的時間複雜度實現,直觀的感受下幾者的速度與效率。設計乙個演算法時要盡量做到高效。高效之處,就是智慧型之處。先看看o n 的演算法 方法maxsum1,maxsum2都是對陣列的...