算法训练 Beaver's Calculator

 时间限制:3.0s   内存限制:256.0MB
问题描述
  从万能词典来的聪明的海狸已经使我们惊讶了一次。他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0"。它非常特别,并且被计划使用在各种各样的科学问题中。
  为了测试它,聪明的海狸邀请了n位科学家,编号从1到n。第i位科学家给这个计算器带来了 ki个计算题。第i个科学家带来的问题编号1到n,并且它们必须按照编号一个一个计算,因为对于每个问题的计算都必须依赖前一个问题的计算结果。
  每个教授的每个问题都用一个数 ai, j  来描述,i(1≤i≤n)是科学家的编号,j(1≤j≤ ki )是问题的编号, ai, j  表示解决这个问题所需资源单位的数量。
  这个计算器非常不凡。它一个接一个的解决问题。在一个问题解决后,并且在下一个问题被计算前,计算器分配或解放资源。
  计算器中最昂贵的操作是解放资源,解放远远慢于分配。所以对计算器而言,每一个接下来的问题所需的资源不少于前一个,是非常重要的。
  给你关于这些科学家所给问题的相关信息。你需要给这些问题安排一个顺序,使得“坏对”尽可能少。
  所谓“坏对”,就是相邻两个问题中,后一个问题需求的资源比前一个问题少。别忘了,对于同一个科学家给出的问题,计算它们的相对顺序必须是固定的。

输入格式
  第一行包含一个整数n,表示科学家的人数。接下来n行每行有5个整数,ki, ai, 1, xi, yi, mi (0 ≤ ai, 1 < mi ≤ 109, 1 ≤ xi, yi ≤ 109) ,分别表示第i个科学家的问题个数,第1个问题所需资源单位数,以及3个用来计算 ai, j 的参量。ai, j = (ai, j - 1 * xi + yi)mod mi。
输出格式
  第一行输出一个整数,表示最优顺序下最少的“坏对”个数。
  如果问题的总个数不超过200000,接下来输出  行,表示解决问题的最优顺序。每一行两个用空格隔开的整数,表示这个问题所需的资源单位数和提供这个问题的科学家的编号。

样例输入
2
2 1 1 1 10
2 3 1 1 10

样例输出
0
1 1
2 1
3 2
4 2

数据规模和约定
  20%的数据 n = 2, 1 ≤ ki ≤ 2000;
  另外30%的数据 n = 2, 1 ≤ ki ≤ 200000;
  剩下50%的数据 1 ≤ n ≤ 5000, 1 ≤ ki ≤ 5000。
代码
#include<stdio.h>
#include<algorithm>
#define maxn 300010
using namespace std;struct node
{long long value,name,ceng;
}people[maxn];bool cmp(node a,node b)
{if(a.ceng==b.ceng){if(a.value==b.value)return a.name<b.name;elsereturn a.value<b.value;} elsereturn a.ceng<b.ceng;
}int main()
{long long n,p,ans;long long k,a,x,y,m,b;while(scanf("%lld",&n)!=EOF){p=0;ans=0;for(long i=1;i<=n;i++){long long t=0;scanf("%lld %lld %lld %lld %lld",&k,&a,&x,&y,&m);for(long j=1;j<=k;j++){if(p<=2e5)people[p++]=(node){a,i,t}; b=(a*x+y)%m;if(b<a && j!=k)t++;a=b;}ans=max(ans,t);}printf("%lld\n",ans);if(p<=2e5)//这个条件异常重要,没有就错误或超时 {sort(people,people+p,cmp);for(int i=0;i<p;i++)printf("%lld %lld\n",people[i].value,people[i].name);}}return 0;
}

几个注意点:

  1. 在取余那一步,数值可能超出int范围
  2. 题目给出的“如果问题的总个数不超过200000,接下来输出......”,所以加一个判断,否则就是超时或者错误

具体思路参考http://blog.csdn.net/HowardEmily/article/details/54912973

Beaver's Calculator(蓝桥杯 算法训练)sort排序相关推荐

  1. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  2. 蓝桥杯算法训练合集十三 1.P06022.P07033.逗志芃的危机4.唯一的小可爱5.JOE的矩阵

    目录 1.P0602 2.P0703 3.逗志芃的危机 4.唯一的傻子 5.JOE的矩阵 1.P0602 问题描述 编写一个程序,输入一个4位的自然数,将组成该数的各位数字重新排列,形成一个最大数和一 ...

  3. 蓝桥杯算法训练sticks

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀. 文章目录 题目 题解 数据传送阵 代码传送阵 题目 George took sticks of the same length and cut th ...

  4. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  5. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  6. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  7. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

  8. 蓝桥杯算法训练-强力党逗志芃

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...

  9. 蓝桥杯 算法训练 逗志芃的危机

    蓝桥杯 算法训练 逗志芃的危机 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和 ...

  10. 蓝桥杯算法训练-过河马

    蓝桥杯算法训练题解有兴趣的可以支持下. 题目 问题描述 在那个过河卒逃过了马的控制以超级超级多的走法走到了终点之后,这匹马表示它不开心了-- 于是,终于有一天,它也过河了! 由于过河马积累了许多的怨念 ...

最新文章

  1. 你真正了解什么是 Cloud Native 吗?
  2. django简单实现文件上传
  3. 数据库-优化-MYSQL数据库设计规范
  4. P3992 [BJOI2017]开车
  5. Python基础——positional argument vs keyword argument
  6. GitLab non-standard SSH port
  7. Mediator(中介者)
  8. gbase数据库中快速备份数据用法
  9. 三级数据库考mysql_计算机三级MySQL数据库试题及答案
  10. linux b类地址设24位掩码,LINUX中的网络配置
  11. 2021-12-23 714. 买卖股票的时机含手续费(动态规划)
  12. pascal学习小记(六)---VMT
  13. 第七章 线程的活性故障--《java多线程编程实战指南-核心篇》
  14. Linux两台主机之间建立信任关系
  15. 一批脑洞大开的CSS特效
  16. 国庆中秋除了发月饼,企业更应该做什么?
  17. 细说嵌入式系统下的驱动程序设计
  18. qls的魔法(区间dp)
  19. D型环血压计袖带的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 浅谈对Python的理解和优缺点

热门文章

  1. OPPO手机备份微信数据文件到电脑本地方法教程
  2. 使用python解压缩rar、zip文件
  3. oracle添加删除磁盘,oracle11gR2 ASM添加和删除磁盘
  4. psp测试电池软件,PSP 电池使用时间测试
  5. 全新圣诞节头像框制作生成微信小程序源码下载支持多模板
  6. 【学习笔记】ACP敏捷项目管理
  7. 软件测试 - 功能测试Ⅱ
  8. 如何在微信小程序中实现实时会话(聊天)系统
  9. iOS 自带地图详解
  10. 【单片机笔记】基于STM32的8通道的开源无线遥控器手柄