codeforces 801c
題意: n個裝置,第 i個裝置每秒用電a[i],原本儲存電量b[i]。只有乙個充電器,每秒可給乙個裝置充電 p。所有的裝置要同時工作,問最多可以工作多長時間?
tags:就是二分,但寫掛了好多發。。
坑點:
1、右邊界會爆1e9 。。。
2、擔心 double 會丟失精度,用了 long double。
然後long double ,標頭檔案 #include 。一開始用 printf("%.6lf\n", r)輸出,在自己電腦上輸出好好的,交上去就莫名其妙的錯了。然後改用 cout<
#include#include#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
#pragma comment(linker, "/stack:102400000,102400000")
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,b,a) for (int i=b;i>=a;i--)
#define mes(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
#define mp make_pair
#define pb push_back
#define fi first
#define se secondtypedef
long
long
ll;const
int n = 200005
;ll n, p, a[n], b[n];
intmain()
long
double l=0, r=1e10, mid;
while(r-l>0.000001
)
if(ans1<=mid*p) l=mid;
else r=mid;
}if(1e10-r>0.000001) cout<<6)else puts("-1"
);
return0;
}
CodeForces 1169C(二分 思維)
codeforces 1169c 1 思路 每次可以選取任意幾個數字進行 ai 1 m的操作,所以最多m次讓序列變為非遞減序列。讓所有的元素值保持盡可能的小,能使最終的運算元最小。所以可以二分查詢需要進行修改的次數tim。2 include include include includeusing ...
codeforces 835C 二維字首和
題意 給出一些點的值,查詢在乙個時間點一段區間的值。點的值會隨時間每次增加一,然後取 k 1 的模。思路 以為k是 10,所以可以把每個時刻每一段的字首和弄出來,然後查詢的時候就行。ps 乙個點不只是乙個值,在這個地方被卡。二維字首和的構造和維護可以複習一下。includeusing namespa...
codeforces1169C 二分答案 思維
1700的題,然而比賽的時候沒有做出來。題意 給你乙個n表示序列長度為n,還有乙個m表示這個序列的最大值小於m 然後對這個陣列進行多次操作,一次操作為 對ai,aj,ap,等k個數進行 1且對m取模,最後讓這個序列變成乙個不遞減的序列,可以證明通過x次操作你是一定可以使這個陣列符合條件,現在的問題是...