博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ4868】期末考试 [三分][贪心]
阅读量:5015 次
发布时间:2019-06-12

本文共 1889 字,大约阅读时间需要 6 分钟。

期末考试

Time Limit: 20 Sec  Memory Limit: 512 MB
[][][]

Description

  

Input

  

Output

  

Sample Input

  100 100 2
  4 5
  5 1 2 3
  1 1 2 3 3

Sample Output

  6

HINT

  

Solution

  首先,由于学生需要知道所有的成绩,这意味着即使只有一个成绩不知道,代价也是要算的,那么显然答案只和所有成绩都发出的时间有关。

  显然,如果我们知道了所有成绩都发出的时间,必然是可以算出最小的不愉快度的,对于一个最后日期x,我们运用贪心得到不愉快度:
    1.由于A策略有负面影响,B策略没有,所有在A<B的情况下才有可能用A
    2.如果我们需要用A,显然能用的次数是:所有天数在x前面的 (x-天数),剩下的用B补满。
  然后,我们大胆猜测可以三分!这样我们就能AC啦。

Code

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 typedef long long s64;10 11 const int ONE = 1000001;12 const s64 INF = 1e18;13 14 int A,B,C,n,m; 15 int t[ONE],b[ONE],MaxN;16 s64 Ans = INF;17 int Now;18 19 inline s64 get()20 {21 s64 res=1,Q=1; char c;22 while( (c=getchar())<48 || c>57)23 if(c=='-')Q=-1;24 if(Q) res=c-48; 25 while((c=getchar())>=48 && c<=57) 26 res=res*10+c-48;27 return res*Q; 28 }29 30 s64 Judge(s64 x)31 {32 s64 res = 0, num1 = 0, num2 = 0;33 for(int i=1;i<=n;i++) res += max(x-t[i],0LL) * C;34 for(int i=1;i<=m;i++) num1 += max(x-b[i],0LL), num2 += max(b[i]-x,0LL);35 if(A > B) res += num2 * B;36 else37 {38 res += min(num1,num2) * A;39 res += max((num2-num1) * B,0LL);40 }41 42 Ans = min(Ans,res);43 return res;44 }45 46 int main()47 {48 A=get(); B=get(); C=get();49 n=get(); m=get();50 for(int i=1;i<=n;i++) t[i]=get(), MaxN=max(MaxN,t[i]);51 for(int i=1;i<=m;i++) b[i]=get();52 53 if(C >= 1e16)54 {55 for(int i=1;i<=n;i++) MaxN=min(MaxN,t[i]);56 printf("%lld",Judge(MaxN));57 }58 59 s64 a,b,pass;60 s64 l = 0, r = MaxN+1;61 while(l < r-2)62 {63 pass = (r-l)/3; 64 a = l+pass; b = r-pass;65 if(Judge(a) < Judge(b)) r = b;66 else l = a;67 }68 69 printf("%lld",Ans);70 71 } 72
View Code

 

转载于:https://www.cnblogs.com/BearChild/p/6817361.html

你可能感兴趣的文章
phpstorm查看类的继承关系
查看>>
git create clone(仓库)
查看>>
chmod修改文件权限的命令
查看>>
新博客牵至简书
查看>>
矩阵求逆
查看>>
在 Windows 8、Windows 10 桌面模式下的 .NET Framework 程序中,引用 Windows.Runtime 的 API。...
查看>>
2015 8月24号 工作计划与实行
查看>>
MVC AJAX
查看>>
Google Map API V3开发(6) 代码
查看>>
Kafka初入门简单配置与使用
查看>>
第三章Git使用入门
查看>>
Amd,Cmd, Commonjs, ES6 import/export的异同点
查看>>
cocos2dx-Lua与Java通讯机制
查看>>
上下文管理器之__enter__和__exit__
查看>>
android3.2以上切屏禁止onCreate()
查看>>
winform文件迁移工具
查看>>
paip.输入法编程----删除双字词简拼
查看>>
or1200下raw-os学习(任务篇)
查看>>
Ubuntu 18.04安装arm-linux-gcc交叉编译器
查看>>
.net core i上 K8S(一)集群搭建
查看>>