题目名称 2579. [HZOI 2016]剩蛋节的礼物
输入输出 Rabbit_gift.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatar_Itachi 于2016-12-24加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:7, 提交:34, 通过率:20.59%
Gravatar_Itachi 100 2.867 s 183.40 MiB C++
GravatarONCE AGAIN 100 3.074 s 183.40 MiB C++
Gravatar金身人面兽 100 3.256 s 53.72 MiB C++
GravatarGo灬Fire 100 3.268 s 76.62 MiB C++
GravatarNew World 100 3.278 s 76.62 MiB C++
GravatarHzoi_chairman 100 3.310 s 53.72 MiB C++
Gravatar沉迷学习的假的Keller 100 3.326 s 76.62 MiB C++
Gravatar_Itachi 80 2.907 s 183.40 MiB C++
GravatarONCE AGAIN 80 3.002 s 183.40 MiB C++
GravatarHzoi_chairman 80 3.788 s 53.72 MiB C++
关于 剩蛋节的礼物 的近10条评论(全部评论)
inline就是快
GravatarHzoi_chairman
2017-01-25 12:17 17楼
求管理员加星
GravatarNew World
2017-01-04 21:21 16楼
GravatarGo灬Fire
2017-01-04 21:02 15楼
回复 @Go灬Fire :
Orz
Gravatar沉迷学习的假的Keller
2017-01-04 10:19 14楼
回复 @Ezoi_HelenKeller :
终于再有人写董大神的这一道题了
GravatarGo灬Fire
2017-01-04 10:14 13楼
尼克搞到大象冰棍再也不用费劲做成小冰棍卖了...直接送给朱迪~收获一堆卡车的礼物2333333333
Gravatar沉迷学习的假的Keller
2017-01-04 08:10 12楼
这道题出的背景是这样子的:
身为同桌三人的我、lrd(cogs榜6联赛585的神牛)、ysf(cogsUID5196的大神)在一起讨论人生。
我:为什么老班把信奥的放在教室最后一排?
ysf:因为咱们就剩5个人,已经降格为兴趣小组了。对了,我新YY了一道题:O(1)求C(n,m)的奇偶性(一个1星神题就此诞生)。
我:Lucas和勒让得都是log的,不会不会,%%%
lrd:%%%
ysf:你菜爆了!达哥也菜爆了!
lrd:太神了!太神了!ysf都会树套树套主席树了!我还只会联赛前的知识!
ysf:达哥菜爆了!
lrd:太神了!太神了!ysf都会使用一维数组了,然而你为什么联赛连“天天爱跑步”都没A?
ysf:。。。
我(在心中):ysf根本不会用一维数组!
于是就有了这道一维数组题,考查知识为联赛前的知识,而且一看就知道是在考什么。
最后,祝各位OIer剩蛋快乐!
Gravatar_Itachi
2016-12-31 09:25 11楼
神TM大冬天送冰激凌
GravatarYGOI_真神名曰驴蛋蛋
2016-12-31 08:24 10楼
好吧现在成第一排了,还不如最后一排...
线段树有些勉强,最后两个点0.9秒多的..........
好强的数据%%%
GravatarGo灬Fire
2016-12-30 20:19 9楼
成功被暴力线段树踩...
其实这是一道树状数组+一维数组题
Gravatar_Itachi
2016-12-30 19:56 8楼

2579. [HZOI 2016]剩蛋节的礼物

★★   输入文件:Rabbit_gift.in   输出文件:Rabbit_gift.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】


剩蛋节到了,小兔子朱迪得到了来自尼克的礼物:大象冰淇凌!

朱迪当然很开心,因为二人第一次见面就是在大象的冰淇凌店(只不过当时朱迪被尼克骗了。)

于是朱迪决定也送礼物回赠尼克。朱迪的家人知道了这件事,他们也想送一份礼物给尼克,于是朱迪决定将一家人的礼物全部打包在一起送给尼克。

然而,要知道朱迪家有众多的小兔子(为朱迪的父母点个赞),所以礼物非常多。

现在朱迪不得不用n辆卡车来搬运这些礼物,于是朱迪的兄弟姐妹们都积极的帮朱迪将礼物装在卡车上,每次,一只小兔子会将在[l,r]的卡车上每辆卡车放a个礼物,总共m只小兔子。

接下来,在完成装车工作后,要运到尼克的住处

这时,麻烦又来了:卡车在运送路上会自由组队,但路上会通过一些桥,一些连续的卡车会同时通过一座桥,很可能会超载!

所以,朱迪需要询问同时通过一座桥的一些连续的卡车总共载了多少礼物。

同时,由于卡车司机很粗心,有时有一辆卡车会丢失一些礼物,不过卡车司机都很诚实,他们会立即告诉朱迪他们丢了多少东西。

另外,由于朱迪的兔缘很好,一路上也会有一些小动物在一辆卡车上放一些礼物,司机也会立刻告诉朱迪。

由于动物城分为很多个城区,所以,每到一个城区检查站,朱迪都要上报每辆卡车上装了多少礼物。

这实在太麻烦了,所以朱迪决定请树懒-闪电来帮忙(没错,就是你!)。

【输入格式】


输入两个数n,m,意义如上述。(n<=1,000,000,m<=1,000,000)

接下来为十五个数:a,b,c,M1,l0,d,e,f,M2,r0,g,h,i,M3,v0

表示第i只小兔子的礼物将会装载[li,ri]上,并且每辆车会装vi个

其中vi=(g*v[i-1]*v[i-1]+h*v[i-1]+i)%M3

li=(a*l[i-1]*l[i-1]+b*l[i-1]+c)%M1+1

ri=(d*r[i-1]*r[i-1]+e*r[i-1]+f)%M2+1

(假如li>ri那么请交换li和ri)


接下来一个数T,表示发生了T个事件:(T<=1,000,000)

接下来T行,会有三种情况:

1 num l r 表示查询在第num个小兔子装完礼物后l到r之间的卡车上共有多少礼物。

2 x a 表示有小动物在第x辆卡车上放了a件礼物。

3 x a 表示第x辆卡车丢失了a件礼物。

4 l r 表示查询l到r之间的卡车上现在有多少礼物。

5 表示到了一个城区检查站,需要得知每一辆卡车上有多少礼物(本操作出现次数不超过5次)

为了减少你的输出量,第5种操作只需要输出所有卡车上的礼物个数的乘积(mod 1e9+7)。


【输出格式】

每行一个数对应一个询问。

【样例输入】

3 3

3 10 8 1 5 1 3 10 3 6 2 6 7 3 7

10

3 1 73

3 2 9

1 2 1 1

4 2 3

1 2 2 3

4 2 2

2 1 92

2 2 62

3 1 90

4 2 3

【样例输出】

1

-7

2

-8

55

【提示】


数据保证任何时候卡车上的礼物总数不超过C++的int的范围,但有可能会出现负数的情况(因为在动物城,任何事情都有可能实现!)


【来源】

一只名字很长的蒟蒻。