问题描述

在 DotA 游戏中,帕吉的肉钩是很多英雄最害怕的东西。钩子由连续若干段的等长金属棒制成。
现在帕吉对钩子由一些操作:
我们将金属棒 1~n 依次编号,帕吉可以把编号 x~y 的金属棒变成铜棒、银棒、金棒。
每段铜棒的价值是 1;每段银棒的价值是 2;每段金棒的价值是 3。
肉钩的总价值是 n 段金属棒价值之和。
帕吉想知道若干操作以后钩子的总价值。
输入格式
第一行一个整数 N(1≤N≤10^5),表示肉钩金属棒的数量,初始状态为 铜棒。
第二行一个整数 Q(1≤Q≤10^5),表示操作数。
接下来 Q 行,一行三个整数,X,Y,Z(1≤X≤Y≤N,1≤Z≤3)
输出格式
一行一个整数,表示钩子的总价值,用样例中的格式。
样例输入

10
2
1 5 2
5 9 3

样例输出

The total value of the hook is 24.

AC代码

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX_N=(1e5)+50;
int p[MAX_N*4];
int col[MAX_N*4];void up(int n){p[n]=p[n*2]+p[n*2+1];return;
}void down(int n,int l,int r){if(col[n]){int mid=(l+r)/2;p[n*2]=col[n]*(mid-l+1);p[n*2+1]=col[n]*(r-mid);col[n*2+1]=col[n];col[n*2]=col[n];col[n]=0;}
}void molify(int n,int l,int r,int x,int y,int v){if(x<=l&&y>=r){col[n]=v;p[n]=v*(r-l+1);return;}down(n,l,r);int mid=(l+r)/2;if(x<=mid)molify(n*2,l,mid,x,y,v);if(y>mid)molify(n*2+1,mid+1,r,x,y,v);up(n);return ;
}long long int query(int n,int l,int r,int x,int y){if(x<=l&&y>=r)return p[n];down(n,l,r);long long int res=0;int mid=(l+r)/2;if(x<=mid)res+=query(n*2,l,mid,x,y);if(y>mid)res+=query(n*2+1,mid+1,r,x,y);return res;
}int main(){int N,Q;cin>>N>>Q;memset(col,0,sizeof(col));molify(1,1,N,1,N,1);for(int i=1;i<=Q;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z); molify(1,1,N,x,y,z);}cout<<"The total value of the hook is "<<query(1,1,N,1,N)<<".";return 0;
}

计蒜客习题:帕吉的肉钩相关推荐

  1. 计蒜客习题:蒜厂年会

    问题描述 蒜厂要开年会了,所有的员工都要参加. 每两个员工之间都有一个亲密度.在同一个项目工作过的员工之间的亲密度为 1.如果 A 和 B.B 和 C 均在同一个项目中工作过,而 A 和 C 没有,那 ...

  2. 计蒜客习题:幼儿园买玩具

    问题描述 蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m 个玩具.已知玩具商店一共卖 k 种玩具,编号为 1,2,3,- ...

  3. 计蒜客习题:新年礼物

    问题描述 新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,其中有一份神秘大奖,但却不知道应该发给谁.于是,蒜厂 BOSS 打算让大家玩一个游戏. 一共有 n 个字符串排成一排,蒜头需要从中按顺序选取一 ...

  4. 【计蒜客习题】消除字符串

    问题描述 蒜头君喜欢中心对称的字符串,即回文字符串.现在蒜头君手里有一个字符串 SS,蒜头君每次都会进行这样的操作:从 SS 中挑选一个回文的子序列,将其从字符串 SS 中去除,剩下的字符重组成新的字 ...

  5. 计蒜客习题:恋爱纪念日(C语言)

    蒜头君和花椰妹谈恋爱啦.祝福他们吧. 蒜头君想知道第他们的第 100100 天,200200 天 ... 纪念日.输入格式输入 44 个整数 y,m,d,ky,m,d,k,表示他们在一起的日期,保证是 ...

  6. 计蒜客习题:迷阵突围

    问题描述 蒜头君陷入了坐标系上的一个迷阵,迷阵上有 n 个点,编号从 1 到 n.蒜头君在编号为 1 的位置,他想到编号为 n 的位置上.蒜头君当然想尽快到达目的地,但是他觉得最短的路径可能有风险,所 ...

  7. 计蒜客习题:骑车比赛

    问题描述 蒜头君准备去参加骑车比赛,比赛在 n 个城市间进行,编号从 1 到 n.选手们都从城市 1 出发,终点在城市 n. 已知城市间有 m 条道路,每条道路连接两个城市,注意道路是双向的.现在蒜头 ...

  8. 计蒜客习题:修建大桥

    问题描述 蒜头君来到一个由 n 个小岛组成的世界,岛与岛之间通过修建桥,来让岛上的居民可以去其他的小岛.已知已经修建了 m 座桥,居民们想让蒜头君帮忙计算,最少还要在修建几座桥,居民们才能去所有的岛. ...

  9. 【二分法】计蒜客习题 切割钢管

    思路: 切割刚拐和洛谷木材加工一样,在一个区间内找最大值(整数).二分答案+check #include <iostream> using namespace std; int n,k; ...

最新文章

  1. SQL大圣之路笔记——PowerDesigner之新建table、view、proc
  2. 工作212:不能改变父组件值
  3. React之回调函数形式的ref
  4. Perl 字符串操作
  5. 买二手房已经过户等待银行放款,应该没有变数了吧?
  6. python工资一般多少p-Python里的黄金库,学会了你的工资至少翻一倍
  7. SQL Server数据库技术大全——15讲 死锁
  8. mysql 线程内存 回收_【MySQL】InnoDB后台线程与内存缓存池
  9. 打造全自动的NOD32升级服务器
  10. WinHex license添加(v19测试可用)
  11. ibm服务器刷主板系统,IBM X3850 X5服务器更换主板后修改主板信息
  12. click事件修改css_CSS Click事件
  13. lpad与rpad函数
  14. 8小时 用kotlin开发一款app
  15. 超星网站服务器,云服务器 超星
  16. 国产的开源电子表格web网页电子表格
  17. 黑马程序员_Java高新技术3(框架,JavaBeans与内省(Introspector)) - 伊秋
  18. 视觉SLAM十四讲学习笔记-第三讲-旋转向量、欧拉角、四元数
  19. Java 百度地图 根据名称获取坐标(经纬度)
  20. python在屏幕上画画_想学画画?python满足你!

热门文章

  1. New Bing使用教程【直接使用无需申请候补】
  2. 列变位法解密(2016百度之星 - 测试赛(热身,陈题))
  3. linux 僵尸进程deffunc,subprocess.Popen引起的僵尸进程[sh] defunct
  4. 202009-4星际旅行 ccf java 90分
  5. 青年不愿老去,“养生+奶茶”却撑不起这份骄傲倔强
  6. ROS1/2参数之YAML
  7. 小玉在游泳小鱼的航程(改进版)
  8. 产品经理基础入门课程
  9. 【Whole Word Mask】中文 bert wwm 预训练代码,预训练你自己的模型
  10. 2022长安杯的网站重构及部分题解