用系统建购物网站,浙江省建设建材工会网站,泸县手机网站建设,做网站的公司挣钱吗容易想到枚举最晚发布成绩的课哪天发布#xff0c;这样与ti和C有关的贡献固定。每门课要么贡献一些调节次数#xff0c;要么需要一些调节次数#xff0c;剩下的算贡献也非常显然。这样就能做到平方级别了。 然后大胆猜想这是一个凸函数三分就能A掉了。具体的#xff0c;延迟… 容易想到枚举最晚发布成绩的课哪天发布这样与ti和C有关的贡献固定。每门课要么贡献一些调节次数要么需要一些调节次数剩下的算贡献也非常显然。这样就能做到平方级别了。 然后大胆猜想这是一个凸函数三分就能A掉了。具体的延迟最晚时间一方面会增加学生的不愉快度这显然是时间越晚不愉快度增加量越大的导数单增另一方面使需要的调节次数减少这个变化量显然越来越小也即老师的不愉快度减少量越来越小同样导数单增。所以两个函数的和也是导数单增的即是一个凸函数。 注意存在C1016稍微特判一下。 #includeiostream
#includecstdio
#includecmath
#includecstdlib
#includecstring
#includealgorithm
using namespace std;
#define ll long long
#define N 100010
#define inf 2000000000000000000ll
char getc(){char cgetchar();while ((cA||cZ)(ca||cz)(c0||c9)) cgetchar();return c;}
int gcd(int n,int m){return m0?n:gcd(m,n%m);}
int read()
{int x0,f1;char cgetchar();while (c0||c9) {if (c-) f-1;cgetchar();}while (c0c9) x(x1)(x3)(c^48),cgetchar();return x*f;
}
int A,B,n,m,a[N],b[N];
ll C,ansinf;
ll calc(int k)
{ll s0;for (int i1;in;i)if (ka[i]) if (C10000000000000000ll) return infk;else s(k-a[i])*C;ll cnt10,cnt20;for (int i1;im;i)if (b[i]k) cnt1k-b[i];else cnt2b[i]-k;if (BA) s1ll*B*cnt2;else if (cnt1cnt2) s1ll*A*cnt2;else s1ll*A*cnt11ll*B*(cnt2-cnt1);return s;
}
int main()
{
#ifndef ONLINE_JUDGEfreopen(bzoj4868.in,r,stdin);freopen(bzoj4868.out,w,stdout);const char LL[]%I64d\n;
#elseconst char LL[]%lld\n;
#endifcinABC;nread(),mread();int l1,r0;for (int i1;in;i) a[i]read();for (int i1;im;i) rmax(r,b[i]read());while (l3r){int mid1lr1,mid2mid11;if (calc(mid1)calc(mid2)) rmid2;else lmid1;}for (int il;ir;i) ansmin(ans,calc(i));coutans;return 0;
} 转载于:https://www.cnblogs.com/Gloid/p/10015878.html