首先感謝抱抱熊dalao的題解,提供了一種比較簡單的思路。
[抱抱熊dalao的題解](
[題目鏈結](
簡單的說每次最小值+1都會讓這個值已經這個數左邊的元素處於這個數左邊的元素和這個數右邊的元素直接,所以我們就列舉出最大的左邊元素,然後除以元素數量。至於為什麼要向下取整,是因為如果有小數,則左邊這組數的最小值與「左邊元素相差1」,這時候向下取整就是最小的元素。最大值同理向上取整。
#include#include#include#include#include#include#include#include#include#include#include#include#define inf 233333333333333using namespace std;
typedef long long ll;
typedef pairp;
const int maxn = 100005;
int num[maxn];
int main(void)
cout << max(0, (int)(ceil(sum2/c2) - floor(sum1/c1) + 1e-10)) << endl;
//計算最小值的最大值並向下取整&&計算最大值的最小值並向上取整,如果最小值大於最大值
//則說明陣列能達到最小值與最大值相等的狀態
} return 0;
}
ZZULI OJ 1898 985的數字難題
time limit 1 sec memory limit 128 mb submit 255 solved 84 submit status web board 985有n個數,已知每次操作可以將其中不相同的兩個數乙個加 一 乙個減一,操作次數不限。問他最多可以得到多少個相同的數。第一行輸入乙個整...
zzulioj 1898 985的數字難題
time limit 1 sec memory limit 128 mb submit 279 solved 100 submit status web board985有n個數,已知每次操作可以將其中不相同的兩個數乙個加 一 乙個減一,操作次數不限。問他最多可以得到多少個相同的數。第一行輸入乙個整...
zzuliOJ 1898 985的數字難題(思維)
time limit 1 sec memory limit 128 mb submit 255 solved 84 submit status web board 985有n個數,已知每次操作可以將其中不相同的兩個數乙個加 一 乙個減一,操作次數不限。問他最多可以得到多少個相同的數。第一行輸入乙個整...