題意:將長為n的序列分成連續的4個非空區間,求出每個區間的和,使得max(區間和)-min(區間和) 最小
思路:割3刀,很自然想到列舉第二刀i,正常做法o(n^3),注定要涼。 我們將區間[1,i-1]劃分成2個非空區間l1,l2,為了劃分後,使得有:最大值盡可能小,最小值盡可能大,則有l1和l2的差距越小越好。並且有i+1劃分時,只需要把i的l1繼續使用。對於劃分區間[i+1,n]同理
#include#define pi acos(-1.0)
#define pb push_back
#define f first
#define s second
using namespace std;
typedef long long ll;
const int n=2e5+5;
const int mod=1e9+7;
ll a[n];
ll sum[n];
//ll ans[n];
ll gao(int l,int r)
int main(void)
cout << ans << endl;
return 0;
}
cf B Pairs(思維 列舉)
題意 給你m組二元組 x,y 問你是否可以找到兩個點,使得每個二元組裡都含有這連個點之一。思路 首先,我們先分析下題意。讓找兩個點,使得每個二元組都含有這兩個之一,那麼任意乙個二元組中都含有這兩個點之一。我們不妨列舉第乙個二元組。下面分類討論,1 這個二元組的兩個點恰好是要找的那兩個點。2 這個二元...
貪心 思維 列舉
題目大意 左括號和右括號數量相等的個數 思路 從開始列舉,用兩個標記指標,乙個記錄左括號和右括號的數量,出現乙個左括號 出現乙個右括號 出現乙個?號的話我們先把它當成右括號 所以 左括號 但是問號也要記錄下來 所以問號 當 左括號的數量為零的時候說明左括號和右括號的數量相等,所以答案加1,但是如果左...
Maximum Value (二分 思維列舉)
you are given a sequence a consisting of n integers.find the maximum possible value of i divided by a j where 1 i,j n and a i a j.input the first line...