题目链接

题目意思:n支队伍,一张桌子有m个座位顺时针编号1~m。p个预言。预言a队伍在b时刻ac一道题目。机器人每个时刻都顺时针走一步,有需要气球的就发。每支队伍,ac后多少时刻没收到气球就有多少不开心的值,问机器人起始位置在哪里可以使得总的不高兴值最小。输出最小的不高兴值。

思路:把每次预言转一下,a,b。那就让a队伍位置往前推b的位置值加一。那么不高兴值就是机器人花费时间乘以值求和。然后换起始点可以O(1)转。

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <vector>
#include <map>using namespace std;
typedef long long int LL;const int maxn=1e6+10;
int n,m,p;
map<int,int>val;
int pos[maxn];int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d%d",&n,&m,&p);val.clear();for(int i=1;i<=n;i++) scanf("%d",&pos[i]);for(int i=1;i<=p;i++){int x,y;scanf("%d%d",&x,&y);LL p=((pos[x]%m)*1ll-y+(1000000000ll/m+1)*m)%m;val[(int)(p)]++;}LL sum=0,base=0,ans;int st=val.begin()->first;;for(map<int,int>::iterator i=val.begin();i!=val.end();i++){sum+= i->second;base+=(1ll*i->second*(i->first - st));}ans=base;int prekey;map<int,int>::iterator it=val.begin();prekey=it->first;int preval=it->second;it++;for(;it!=val.end();it++){int dt=it->first-prekey;base=base-((sum-preval)*dt)+(m-dt)*preval;ans=min(base,ans);prekey=it->first;preval=it->second;}cout<<ans<<endl;}return 0;
}

转载于:https://www.cnblogs.com/coded-ream/p/7762718.html

ZOJ 3981(Balloon Robot)相关推荐

  1. ZOJ 3981 2017CCPC秦皇岛 A:Balloon Robot

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3981 题意: 第一行三个数字n, m, q表示有m个座位围成一个 ...

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

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

  3. Problem solved list

    Time: 2017.11.7 :(tot solved 4) 组队训练(CCPC秦皇岛)solved 5 : ZOJ - 3981 Balloon Robot 思维 ZOJ - 3987 Numbe ...

  4. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  5. 2021-10-30

    算法 Brackets Sequence 题目描述 Let us define a regular brackets sequence in the following way: Empty sequ ...

  6. ZOj 2104——Let the Balloon Rise

    老师在上课的时候讲过这道题,不过当时做这道题时还是纠结了许久,那时stl不熟,老是想着用数组,去重很麻烦,学了STL后,用map就简单多了. code : #include <iostream& ...

  7. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

  8. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

    水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法:        (1)枚举 (1753,2965)       (2)贪心(13 ...

  9. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

最新文章

  1. java 程序运行时注入方法_Spring入门(九):运行时值注入
  2. oracle部署部分整理
  3. Windows 64位驱动 关闭内存保护
  4. faster rcnn论文_faster-rcnn论文思路及代码编译
  5. 矩阵连乘 动态规划_Java动态规划
  6. 靠谱测试人员需要具备BUG洞察能力
  7. python怎么清理垃圾_python清理内存
  8. opencv matlab配置,Matlab下运行c++程序的配置(包含opencv的c++程序)
  9. sklearn.preprocessing.Imputer
  10. 蚂蚁金融科技守护金融安全,蚂蚁风险大脑助阵
  11. 40年间,“国货”如何崛起
  12. 关于这个DOS或者是C++中的左右斜杠问题
  13. OpenLayers官方教程二:实现简单的地图显示
  14. 子集生成算法 之 位向量法和增量构造法
  15. 希腊神话、罗马神话与中国神话人物大比拼
  16. ssh / sftp 远程登录出现:RSA host key for *.*.*.* has changed...的解决办法
  17. 短视频剪辑自学需要掌握的小技巧,初学者可收藏
  18. 淘宝小二腐败案,到底谁是黑幕?
  19. 丰田生产方式及其应用(zt)
  20. Win10 安裝pytorch 的坑

热门文章

  1. 计算机专业二本可以考cfa,计算机专业的CFA考生的备考经验分享
  2. 推荐系统实践读书笔记-08评分预测问题
  3. vue中使用Ueditor编辑器
  4. Azure基础:什么是云计算(2) NIST云计算模型定义
  5. 图案设计灵感怎么写_设计的灵感来源
  6. 移动互联网终端策略研究
  7. 移动互联网终端的touch事件,touchstart, touchend, touchmove
  8. SpringBoot项目中使用set方法后,自动保存问题
  9. 安卓火狐导出书签_firefox火狐浏览器中怎么导出书签备份收藏夹?
  10. Firefox for Android 代理设置