来源:题目提供者

八云蓝 萌萌JS式神

复制Markdown  展开

题目背景

铃瑚和清兰是从月之都到达幻想乡的两只月兔。正因为降落到了幻想乡进行调查,因此她们通过开团子屋制作团子出售的方式,在幻想乡生活。

为了应对越发繁荣的市场,她们向河城荷取购置了一台团子机器,可以高效地生产出五颜六色的团子。不同颜色的团子的售价不尽相同。由于每天顾客数量很多,购买的团子数量也不少,所以清兰总是搞不清楚一大堆团子的售价如何。

清兰找到了你,希望你能告诉她每次售出团子时,这些团子的总价格。

题目描述

清兰使用河童的机器可以生产出各种各样颜色的团子。她发现,对于颜色为 �c 的团子,它的售价为 �c。同时,团子机器有个特性,那就是生产出来的团子的颜色必然是一段连续的整数。

为了储存已经生产出来的团子,清兰使用了一种类似于「栈」的结构。在一天的开始,这个栈为空栈。现在有 �n 次操作,分为两种:

  1. 1 l r1 l r​ :团子机器生产出来了颜色为 �,�+1,⋯�−1,�l,l+1,⋯r−1,r 的团子。清兰将这些团子依次入栈。也就是在栈顶依次加入 �,�+1,�+2,⋯�−1,�l,l+1,l+2,⋯r−1,r 。
  2. 2 k2 k​ :有一位客人想要购买 �k 个团子。此时清兰会依次从栈顶取出 �k 个团子并售出。保证 �k 不大于当前栈内的团子个数。

你要做的,就是对于每个操作 22 输出这些团子的总价格。

输入格式

第一行有一个整数 �n,表示操作的个数。
接下来 �n 行描述一组询问。第一个整数 ��op 表示询问的种类,若为 11 则为操作 11,为 22 则为操作 22。

  • 对于操作 11,接下来有两个整数 �,�l,r,含义如题面所示。
  • 对于操作 22,接下来有一个整数 �k,含义如题面所示。

输出格式

若干行。对于每次操作 22,输出这些团子的售价之和。

输入输出样例

输入 #1

6
1 1 14
2 5
1 14 19
1 1 9
2 8
2 10

输出 #1

60
44
124

这题用队列来做:

#include <bits/stdc++.h>using namespace std;typedef unsigned long long ll;const int N = 3e6 + 7;
const int inf = 0x3f3f3f3f;#define int llint n, pos = 0;struct Array {int l;int r;int len;ll sum;
}a[N];signed main () {scanf ("%llu", &n);for (int i = 1; i <= n; i ++) {int op, l, r;ll k;scanf ("%llu", &op);if (op == 1) {scanf ("%llu%llu", &l, &r);a[++ pos].l = l;a[pos].r = r;a[pos].len = r - l + 1;a[pos].sum = (a[pos].r + a[pos].l) * a[pos].len / 2;}else if (op == 2) {scanf ("%llu", &k);ll ans = 0;while (k) {if (k >= a[pos].len) {k -= a[pos].len;ans += a[pos].sum;pos --;}else {ans += (a[pos].r + a[pos].r - k + 1) * k / 2;a[pos].r -= k;a[pos].len = a[pos].r - a[pos].l + 1;a[pos].sum = (a[pos].l + a[pos].r) * a[pos].len / 2;k = 0;}}printf ("%llu\n", ans);}}return 0;
}

or:

#include<bits/stdc++.h>
#define up(l,r,i) for(int i=l,END##i=r;i<=END##i;++i)
#define dn(r,l,i) for(int i=r,END##i=l;i>=END##i;--i)
using namespace std;
typedef long long i64;
const int INF =2147483647;
const int MAXN=1e6+3;
i64 qread(){i64 w=1,c,ret;while((c=getchar())> '9'||c< '0') w=(c=='-'?-1:1); ret=c-'0';while((c=getchar())>='0'&&c<='9') ret=ret*10+c-'0';return ret*w;
}
int n,p; pair<int,int> P[MAXN];
int main(){n=qread(); up(1,n,i){int op=qread();if(op==1){int l=qread(),r=qread(); P[++p]=make_pair(l,r);} else {i64 k=qread(); i64 ans=0;while(k){int l=P[p].first,r=P[p].second,t=r-l+1;if(t<=k) ans+=1ll*t*(l+r)/2,k-=t,--p;else {ans+=1ll*k*(r-k+1+r)/2;P[p]=make_pair(l,r-k),k=0;}}printf("%lld\n",ans);}}return 0;
}

都是可以的.

好了,886~

P7870 「Wdoi-4」兔已着陆相关推荐

  1. 「YGG Japan」宣布已完成约 295 万美元的新股权私募

    ForN(总部位于东京都港区:CEO 藤原哲哉:以下简称 "ForN" )今天宣布,与 ForN 合作的区块链游戏平台 YGG Japan 已完成价值约 295 万美元的私募轮融资 ...

  2. 英特尔回应杨笠代言争议;天弘基金称已处理在支付宝上「无故扣款」问题;Eclipse 4.19 发布 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  3. 何以为「我来」?全方位解读笔记新秀高速增长

    谈到国内的云端笔记协作平台,不得不提到国内的新秀产品--「我来」,自去年 9 月份上线至今,「我来」用户已超过 20 万,每月正以 200%-300% 的速度持续增长中,活跃用户日均使用时长超过 30 ...

  4. 建成 5000 多间「梦想中心」后,他们决定将技术开源

    | 转载自:腾源会 | 编辑:李佳阳 | 责编:王玥敏 | 设计:宋传琪 「有书读是一件很幸福的事」. 20 年前,在甘肃.云南.川北--这片土地上,一群孩子坐在破破烂烂,风吹即倒的「教室」里大声朗诵 ...

  5. 噢,我这该死的魅力,国潮新锐品牌「二某某」她来了她来了

    做工厂做产品的人不浪漫?人称「彭老师」的彭伊朵并不同意,彭伊朵毕业于北师大,曾是中学语文老师,深耕制造业数十年后毅然创立「二某某」,成为品牌创始人.彭伊朵与她的团队深谙产品的结构原理.生产流程及外观设 ...

  6. 从游戏智能到疾病诊断,腾讯「绝悟」AI 从虚拟走向现实

    感谢阅读腾讯 AI Lab 微信号第 160 篇文章.本文介绍腾讯 AI Lab 决策智能AI「绝悟」从虚拟走向现实,首次验证了强化学习用于超大尺寸全片扫描病理图像诊断的可能性. 近年,游戏 AI 大 ...

  7. 腾讯AI Lab研发「智能显微镜」 抢先布局病理分析领域

    感谢阅读腾讯AI Lab微信号第50篇文章,我们将分享今日在南京「腾讯全球合作伙伴大会」上介绍的「智能显微镜」研究项目. 腾讯 AI Lab 今日在南京举办的「腾讯全球合作伙伴大会」上宣布,其AI+医 ...

  8. 【Access】win 10 / win 11:Access 下载、安装、使用教程(「管理信息系统」实践专用软件)

    目录 一.前言 二.卸载 Office 三.下载 Office Tool Plus 四.安装 Office(内含 Access) (1)启动 Office Tool Plus (2)部署 (3)安装  ...

  9. MIT录取不再参考「美国高考」学科测验成绩:美国大学已全部宣告脱钩

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:机器之心@微信公众号 这会是标准化考试消亡的开始吗?全球顶尖学府麻省理工学院 ...

最新文章

  1. Bottle源码阅读(3) HeaderDict
  2. mongodb 输出数组字段_JMeter之Groovy对MongoDB操作
  3. java获取文件编码_java如何获取文件编码格式
  4. [Kaggle] Heart Disease Prediction
  5. CSS中的URL_CSS中的URI
  6. Standard C++ Episode 10
  7. 如何在vue项目中修改less变量,多主题项目解决方案
  8. md5后得到的32位字符串存储到mysql中太占空间了_面试官:你对MySQL高性能优化有什么规范建议?...
  9. 使用select模型详细介绍并使用此模型来监视标准输入缓冲区stdin里是否还有数据
  10. display: inline-block;为什么会撑开父div
  11. win7计算机 管理缺失文件夹,win7缺失dll文件一键修复的方法
  12. 随机过程中均值、方差、协方差和相关函数的计算
  13. 微信小程序—智能停车
  14. VS2019无法启动程序 系统找不到指定文件解决办法
  15. 电脑中EXE文件关联的修复方法
  16. Java 下载Excel打不开是什么鬼
  17. 360浏览器各历史版本大全和bug汇总(及历史版本官方下载地址)
  18. linux mint回收站,Autotrash:定时自动删除旧垃圾的命令行工具
  19. 数据库启动报ORA-03113错误
  20. ​2020年,又一波技术类书籍推荐,不能错过哟~

热门文章

  1. 计算机机房建设几级资质是什么,机房建设需要哪些资质和建设过程要求
  2. CMMI认证分为几个等级,分别是什么?
  3. 盘点智能风控中的机器学习技术
  4. 数据库修改字段类型但是有旧数据处理步骤
  5. 华硕笔记本快速启动项里面没有usb设备解决办法
  6. 植物神经紊乱找对方法
  7. 压缩感知算法_走向纳米光子鼻:一种压缩传感增强型中红外光谱仪
  8. 微信公众号开发及运营(二)——自动回复与自定义菜单
  9. 斯坦福Dan Boneh密码学——04 流密码
  10. 13.Django中几大常用模板标签讲解及实战使用 【for循环;if判断;页面跳转;开启关闭自动转义;url携带参数传递;注释】