题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3981

题意:

第一行三个数字n, m, q表示有m个座位围成一个环,n个队伍,q次A题

接下来n个数表示n个队伍所在位置(1<=ai<=m)

再接下来q行,每行a, b表示第a个队伍在第b秒A了一道题

有一个只会每一秒顺时针移动一个位置的发气球机器人

只要当前队伍有题目已经A了就会给他对应数量的气球(当然每道题最多1个气球)

如果a队伍在b时刻A了一道题,并在c时刻才拿到气球,那么这个队伍就会积累c-b点不开心值

求一个机器人起始位置(一开始是第0秒)使得所有队伍最终不开心值之和最小

假设机器人就在位置1,可以O(n)求出所有人的不开心值,排个序

之后暴力枚举初始位置,每移动1个位置可以使得所有不开心值不为0的队伍不开心值-1,不开心值为0的队伍不开心值变为m,因为排过序所以这个可以O(1)转移

复杂度O(m)

m太大但其实有些位置一定不可能是最优的,所以理论上只用枚举最多q个位置即可

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long
int a[100005], t[100005];
int main(void)
{LL ans, now;int T, n, m, q, i, x, y, time;scanf("%d", &T);while(T--){scanf("%d%d%d", &n, &m, &q);for(i=1;i<=n;i++)scanf("%d", &a[i]);for(i=1;i<=q;i++){scanf("%d%d", &x, &y);if(y%m<=a[x]-1)t[i] = a[x]-1-y%m;elset[i] = m-(y%m-a[x]+1);}sort(t+1, t+q+1);time = now = 0;for(i=1;i<=q;i++)now += t[i];ans = 1e18;for(i=1;i<=q;i++){ans = min(ans, now-(LL)(t[i]-time)*q);if(i<=q-1){now = now-(LL)(t[i]-time+1)*q+m;time = t[i]+1;}}printf("%lld\n", ans);}return 0;
}

ZOJ 3981 2017CCPC秦皇岛 A:Balloon Robot相关推荐

  1. ZOJ 3988 2017CCPC秦皇岛 H:Prime Set(二分匹配)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3988 题意: 给你n个数,如果{i, j}满足i!=j & ...

  2. ZOJ 3987 2017CCPC秦皇岛 G:Numbers(高精度+贪心)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3987 题意: 给你两个数n和m,你要将n拆成m个数,使得这m个数 ...

  3. ZOJ 3993 2017CCPC秦皇岛 M:Safest Buildings

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3993 题意: 给你一个圆心为(0, 0),半径为R的大圈,里面有 ...

  4. ZOJ 3985 2017CCPC秦皇岛 E:String of CCPC

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3985 题意: 给你一个只包含C和P的字符串,你每次可以在其中添加 ...

  5. ZOJ 3983 2017CCPC秦皇岛 C:Crusaders Quest

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3983 这游戏我玩过啊,根据样例猜对题意 题意: 给你9个字母,其 ...

  6. ZOJ 3992 2017CCPC秦皇岛 L:One-Dimensional Maze

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992 题意: 一条长度为n的直线,你一开始在位置m上 其中每个整 ...

  7. 2017CCPC秦皇岛站总结

    2017CCPC秦皇岛站总结 模拟赛出现很多问题,一开始我敲了一道水题,把字母写错了,WA,后来B,C题思路不对,仔细分析一下,大概在最后半个小时过了C,B题高精度,虽然最后几分钟想到了,但没时间写了 ...

  8. 2017 秦皇岛CCPC Balloon Robot (ZOJ 3981)

    题意:给出n个队伍,m个座位,q次A题的队伍与时间,下一行是n个队伍的坐的位置,再下面q行就是第x个队再第y秒A出一道题,然后有一个机器人,开始位置由你选,他每走一步 他就会向右走一格,走到m的时候会 ...

  9. ZOJ 3981(Balloon Robot)

    题目链接 题目意思:n支队伍,一张桌子有m个座位顺时针编号1-m.p个预言.预言a队伍在b时刻ac一道题目.机器人每个时刻都顺时针走一步,有需要气球的就发.每支队伍,ac后多少时刻没收到气球就有多少不 ...

最新文章

  1. memcached基本操作和语法
  2. 化学专业计算机课程设计,分析化学专业课程设计.doc
  3. Kafka controller重设计
  4. Java小结(二)——打印矩形和九九乘法表
  5. 可编程led灯带原理_SCPSD-250-04-27派克真空压力传感器故障和工作原理
  6. 各类监督方法流行趋势分析
  7. cmake BUILD_SHARED_LIB变量
  8. 滴滴图像技术团队招聘计算机视觉工程师和专家
  9. 洛谷P4482 [BJWC2018]Border 的四种求法 字符串,SAM,线段树合并,线段树,树链剖分,DSU on Tree...
  10. Android* 操作系统上的应用程序远程调试
  11. 【python】BMR基础代谢率计算器的设计
  12. android设置默认程序图标,android – 更改默认系统应用程序图标
  13. Android4.4电池电量命令行查看
  14. 海信 Vidda Z100 评测
  15. 2020C语言程序设计1253,1253计算机科学与技术专业C语言程序设计A科目2020年09月国家开 放大学(中央广播电视大学)考试试题及答案.pdf...
  16. 【C++实训】基于MVC模型开发的高校教务管理系统【附完整报告+示例程序+日记+源码】
  17. android app安装的过程,Pm install App流程
  18. 3000字长文为你解读数据仓库与复杂业务数据建模全流程
  19. 某查查app sign算法研究(二)
  20. 2019年最值得关注的五大区块链游戏, 了解DAPP看这一篇就够了

热门文章

  1. python零基础入门视频免费-阿里云免费推出Python零基础入门在线教程视频
  2. 如何系统的自学python-如何系统地自学Python
  3. python基础30个常用代码-Python基础30道测试题(字符串相关)
  4. 韩语识别_韩语文字识别_韩语图片识别 - 云+社区 - 腾讯云
  5. 机器学习--用朴素贝叶斯分类法辨别男女声音
  6. 静态代理,cglib动态代理,jdk动态代理区别以及流程详解
  7. 万能倍投计算器工具_一周总结上证A股市盈率14.83倍,这是机会还是风险呢?
  8. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用
  9. Web API-排他思想及其案例
  10. create-react-app 后需要npm run eject