期末考试(正解:三分单峰函数 me:暴力水过)

好久没有水过杂题了!

今天lsc终于刚过了三道考试题来水杂题了!

期末考试

首先一看还是一脸mb(这是正常现象,毕竟我不像一些大神可以一眼出正解)然后我就被颓了标签,知道是三分单峰函数,但是自己实在是太弱了,所以并不会使用三分来水题,就只能使用暴力来做;

我们知道最后的恶心度(题里的不愉快度)是只和最后在那天出成绩有关,所以暴力枚举在哪天出成绩,然后使用前缀和就可以做到枚举1000000就可以出答案,其实就是取min就可以了!

如果A<B,那么显然使用第一种方法更优秀,而且我们可以O(1)算

然后就是要前缀和维护可以推迟的天数的和,最后再判一下就行了,注意long long 和 res>ans就跳出;

具体的看代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 const int N=100005;
 5 ll ans=1ll<<62,A,B,C,s1,s2,s3,s4,res=0;
 6 int n,m,t[N],b[N];
 7 int main()
 8 {
 9     scanf("%lld%lld%lld%d%d",&A,&B,&C,&n,&m);
10     for(int i=1,x;i<=n;i++)scanf("%d",&x),t[x]++;
11     for(int i=1,x;i<=m;i++)scanf("%d",&x),b[x]++,s3+=x;
12     for(int T=1;T<=100000;T++)
13     {
14         res+=s1*C;//恶心程度!
15         s1+=t[T];//到这一天期望出分数的个数!其实是等待已经到达极点的人数!
16         if(res>=ans)break;
17         s4+=s2;//小于i天的可以退迟的总天数!
18         s3-=(m-s2);//还没有出分的数目!
19         s2+=b[T];//在这一天之前出分的数目!
20         ll r;
21         if(B<=A)r=s3*B;//显然使用第二种方法好使
22         else if(s3<=s4)r=s3*A;//只有没有出分的小于出分的情况才可以使用一进行搞
23         else r=s4*A+(s3-s4)*B;//不然的话就混合搞!
24         ans=min(ans,res+r);
25     }
26     printf("%lld\n",ans);
27 }

原文地址:https://www.cnblogs.com/hzoi-lsc/p/11465130.html

时间: 2024-08-02 20:03:11

期末考试(正解:三分单峰函数 me:暴力水过)的相关文章

【BZOJ4868】期末考试(整数三分)

题意: 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程 公布成绩,每等待一天就会产生C不愉快度.对于第i门课程,按照原本的计划,会在第bi天公布成绩.有如下两种 操作可以调整公布成绩的时间:1.将负责课程X的部分老师调整到课程Y,调整之后公布课程X成绩的时间推迟一天 ,公布课程Y成绩的时间提前一天:每次操作产生A不愉快度.2.增加一部

Bzoj 1537: [POI2005]Aut- The Bus 题解 [由暴力到正解]

1537: [POI2005]Aut- The Bus Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 387  Solved: 264[Submit][Status][Discuss] Description Byte City 的街道形成了一个标准的棋盘网络 – 他们要么是北南走向要么就是西东走向. 北南走向的路口从 1 到 n编号, 西东走向的路从1 到 m编号. 每个路口用两个数(i, j) 表示(1 <= i <= n, 1 <= j

【BZOJ4868】期末考试 [三分][贪心]

期末考试 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input Output Sample Input 100 100 2 4 5 5 1 2 3 1 1 2 3 3 Sample Output 6 HINT Solution 首先,由于学生需要知道所有的成绩,这意味着即使只有一个成绩不知道,代价也是要算的,那么显然答案只和所有成绩都发出的时间有关. 显然,如果我们知道了所有成绩都发

三分 BZOJ4868 [Sxoi2017] 期末考试

4868: [Sxoi2017]期末考试 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 605  Solved: 270[Submit][Status][Discuss] Description 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程 公布成绩,每等待一天就会产生C不愉快度.对

[BZOJ 4868][SHOI&amp;SXOI2017]期末考试(贪心)

Description 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程 公布成绩,每等待一天就会产生C不愉快度.对于第i门课程,按照原本的计划,会在第bi天公布成绩.有如下两种 操作可以调整公布成绩的时间:1.将负责课程X的部分老师调整到课程Y,调整之后公布课程X成绩的时间推迟一天 ,公布课程Y成绩的时间提前一天:每次操作产生A不愉快

[六省联考2017]期末考试

4868: [Shoi2017]期末考试 2017-09-03 Description 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生C不愉快度.对于第i门课程,按照原本的计划,会在第bi天公布成绩.有如下两种操作可以调整公布成绩的时间:1.将负责课程X的部分老师调整到课程Y,调整之后公布课程X成绩的时间推迟

复旦大学2016--2017学年第二学期高等代数II期末考试情况分析

一.期末考试成绩班级前十五名 林晨(93).朱民哲(92).何陶然(91).徐钰伦(91).吴嘉诚(91).于鸿宝(91).宁盛臻(90).杨锦文(89).占文韬(88).章俊鑫(87).颜匡萱(87).王旭磊(87).王泽斌(87).沈伊南(86).李飞虎(86) 二.总成绩计算方法 平时成绩根据交作业的次数决定,本学期共交作业13次,10次以上(包括10次)100分,少一次扣10分. 总成绩=平时成绩*15%+期中考试成绩*15%+期末考试成绩*70% 三.最终成绩及人数 最终成绩 人数 A

复旦大学2015--2016学年第二学期高等代数II期末考试情况分析

一.期末考试成绩班级前几名 胡晓波(90).杨彦婷(88).宋卓卿(85).唐指朝(84).陈建兵(83).宋沛颖(82).王昊越(81).白睿(80).韩沅伯(80).王艺楷(80).张漠林(80).张子涵(80) 二.总成绩计算方法 平时成绩根据交作业的次数决定,本学期共交作业12次,10次以上(包括10次)100分,少一次扣10分. 总成绩=平时成绩*20%+期中考试成绩*20%+期末考试成绩*60% 三.最终成绩及人数 最终成绩 人数 A 26 A- 1 B+ 14 B 16 B- 20

【百度之星2014~复赛 解题报告~正解】The Query on the Tree

声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载.可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站点,因此.笔者加入此条声明. 郑重声明:这篇记录<[百度之星2014~复赛 解题报告~正解]The Query on the Tree>转载自 http://tiankonguse.com/的这条记录:http://tiankonguse.com/record/record.php?id=674