1019: B06-贪心-零件加工[提高组]

时间限制: 1 Sec  内存限制: 128 MB
提交: 24  解决: 7
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

工匠小K最近有n个零件需要加工。每个零件都需要ti天的时间来完成,每个零件每延迟一天加工都要缴纳一定的罚金si。延迟的天数为从今天算起到该工作开始的那天,第一个零件加工没有罚金。现在小K想知道怎样安排加工顺序可以使他要交的罚金最少,最少是多少。
      这个数可能会很大,请输出这个数对m取模后的结果。

输入

输入文件名为process.in。
输入第一行为一个整数n,表示需要加工的零件总数。
第二行为一个整数m,表示答案要对m取模。
第3~n+2行,每行两个整数ti和si。

输出

输出文件名为process.out。
输出仅一行,一个整数,表示小K最少要缴纳的罚金对m取模的结果。

样例输入

2
100
2 33
33 2

样例输出

4

提示

【输入输出样例解释1】

先加工第一个,需要2天时间,再加工第二个。需要缴纳的罚金为2×2=4。

【输入输出样例2】process.in                       

4

100

3 3

6 4

2 2

8 5

process.out

81

 

【输入输出样例解释2】

如果按照1→2→3→4的顺序进行加工,需要缴纳的罚金为0×3+3×4+(3+6)×2+

(3+6+2)×5=85;

最佳方案是3→1→2→4,此时需要缴纳的罚金为0×2+2×3+(2+3)×4+(2+3+6)×5=81。

【数据范围】

对于40%的数据,0<n≤10,000,0<ti,si≤10,000;

对于80%的数据,0<n≤100,000,0<ti,si≤2×109,0<m≤108
对于100%的数据,0<n≤100,000,0<ti,si≤2×109,0<m≤1018

来源/分类

B06-贪心 

这一道题看上去好难的样子鸭 加油哦

上面是老师发的一段讲解()(《若有》《所思》)

那么既然正解都出来了 卡一卡试试吧

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct Node{ll t,s;
}arr[100005];
int cmp(Node a,Node b){if(a.t*b.s<b.t*a.s)return 1;return 0;
}
ll cheng(ll a,ll b,ll m){ll ans=0,t=a;while(b!=0){if(b&1) ans=(ans+t)%m;t=(t+t)%m;b>>=1;}return ans;
}
int main(){ll n,m;cin>>n>>m;for(ll i=1;i<=n;i++)scanf("%lld%lld",&arr[i].t,&arr[i].s);sort(arr+1,arr+n+1,cmp);ll sum=0,ans=0;for(int i=1;i<=n;i++){ans=(ans+cheng(arr[i].s,sum,m))%m;sum+=arr[i].t;}cout<<ans;return 0;
}

转载于:https://www.cnblogs.com/Tidoblogs/p/11260264.html

零件加工 贪心 题解相关推荐

  1. C++——NOIP模拟题——零件加工

    零件加工 题目描述 工匠小 K 最近有 n 个零件需要加工.每个零件都需要 ti 天的时间来完成,每个零件每延迟一天加工都要缴纳一定的罚金 si .延迟的天数为从今天算起到该工作开始的那天,第一个零件 ...

  2. 如何解决编程的误差问题_柏威机械丨高精密零件加工是如何解决误差精度问题的?...

    机械的快速发展,对于设备零件的精度就有了更高的要求,而高精度的零件加工需求,就需要广东零件加工企业(柏威机械)对加工工艺进行改进. 机械加工工艺是根据图纸对零件进行加工的过程,加工工艺不止一种,对于一 ...

  3. HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格

    HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () Imag ...

  4. AOJ 15951 零件加工问题二

    题目传送门 Description 有个国有中型企业,接到一批需要加工零件的订单,员工们非常高兴,工厂领导为了鼓 励员工尽快地完成加工任务,出台了奖励政策:"如果在保证质量要求的前提下,每完 ...

  5. 车床零件加工调度问题

    目录 题目 思路 代码 运行结果 题目 某车间需要用一台车床和一台×××加工A,B,C,D4个零件.每个零件都需要先用车床加工,再用×××加工.车床和×××加工每个零件所需的工时(包括加工前的准备时间 ...

  6. 拨叉零件加工工艺及钻18孔夹具设计(说明书+CAD图纸+solidworks三维图+工序卡+过程卡)

    摘  要 本次设计内容涉及了机械制造工艺及机床夹具设计.金属切削机床.公差配合与测量等多方面的知识. 弯臂加工工艺规程及钻孔的夹具设计是包括零件加工的工艺设计.工序设计以及专用夹具的设计三部分.在工艺 ...

  7. K626-弯臂拨叉零件加工工艺及钻Φ18孔夹具设计(说明书+CAD图纸+SW三维图+工序卡+过程卡)

    摘  要 本次设计内容涉及了机械制造工艺及机床夹具设计.金属切削机床.公差配合与测量等多方面的知识. 弯臂加工工艺规程及钻孔的夹具设计是包括零件加工的工艺设计.工序设计以及专用夹具的设计三部分.在工艺 ...

  8. K626-弯臂拨叉零件加工工艺及钻18孔夹具设计(说明书+CAD图纸+solidworks三维图+工序卡+过程卡)

    摘  要 本次设计内容涉及了机械制造工艺及机床夹具设计.金属切削机床.公差配合与测量等多方面的知识. 弯臂加工工艺规程及钻孔的夹具设计是包括零件加工的工艺设计.工序设计以及专用夹具的设计三部分.在工艺 ...

  9. solidworks钣金插件_高效掌握SolidWorks钣金零件加工设计概念

    钣金零件是以金属板为原料,通过折.弯.冲.压等工艺实现的一类零件,其最大的特点是零件的壁厚均匀. 一.钣金零件的特点 钣金零件一般可分为三类: (1)平板类:指一般的平面冲裁件 (2)弯曲类:由弯曲或 ...

最新文章

  1. Lync 小技巧-34-通过Lync Server 2013的URI批量启用UM
  2. 《重构,改善既有代码的设计》读书笔记
  3. mqtt连接失败_Netty实战:如何让单机下Netty支持百万长连接?
  4. yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】
  5. Linux服务器中木马(肉鸡)手工清除方法
  6. (转)基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录...
  7. springMvc + websocket 实现点对点 聊天通信功能
  8. Kubernetes CKA认证运维工程师笔记-Kubernetes存储
  9. php拼接二维码,文字和二维码进行合并
  10. 微信浏览器 视频小窗 播放 微信网页
  11. 【Go语言】动态库和静态库详解
  12. Linux下 df 命令查看磁盘空间
  13. 学习之学习--混沌大学商学院--第一课--HHR计划
  14. gitter 卸载_最佳Gitter频道:转到
  15. va_list 、va_start、 va_arg、 va_end 使用说明
  16. 苹果Mac安装win10双系统
  17. 算是我看源码时的一个小技巧吧~
  18. python--异常捕获
  19. python计算平均绩点_【python】以五分制绩点为基础的绩点计算器,可计算学分加权平均...
  20. 3 步完全掌握 LoRaWAN Server,让你拥有自己的物联网

热门文章

  1. ByVal和ByRef的区别
  2. 交互媒体专题设计------《The Wiley Handbook of Human Computer Interaction》之观后感
  3. 蒲公英 · JELLY技术周刊 Vol.29: 前端智能化在阿里的那些事
  4. 【Shotcut】开源免费视频编辑软件 - 微信视频编辑利器
  5. facenet 搭建人脸识别库
  6. 我的世界服务器怎么弄无限矿物,minecraft mod教程:在世界上生成矿石:GameRegistry的使用5...
  7. python成功爬取拉勾网——初识反爬(一个小白真实的爬取路程,内容有点小多)
  8. 问题 F: 猜球球 XUPT2019 哈夫曼树
  9. CPP全面总结(涵盖C++11标准)
  10. 厦门大学研究生计算机复试分数线,关于2018厦门大学研究生考试复试分数线的一些公告...