开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 776|回复: 4
收起左侧

[闲聊] 为什么很多题答案取模的数是这个?

[复制链接]
结帖率:90% (161/179)
发表于 2023-8-26 22:08:34 | 显示全部楼层 |阅读模式   广东省佛山市
1e9+7,还有998244353。这两个,为啥啊?那么特殊??



结帖率:100% (13/13)

签到天数: 9 天

发表于 2023-8-26 22:44:29 | 显示全部楼层   广东省清远市
998244353=( 114514 * ( 54-1+114 * (1+14*5+1+4) ) ) + ( 4+11451 * (4-1-15+14) ) + ( 11+41*54 + (141+541) ) + (4-1-15+14);
它的二进制表达是:111011100000000000000000000001
它是一个质数。
它是一个奇数。
它可以表达为两个数的平方和:998244353 = 3943^2 + 31348^2
它是勾股数之一:998244353^2 = 247210328^2 + 967149855^2
它可以被表达为:998244353 = 7 * 17 * 2^23 + 1



作者:SuperFashi
链接:https://www.zhihu.com/question/62218999/answer/196335335
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

回复 支持 反对

使用道具 举报

结帖率:97% (56/58)

签到天数: 11 天

发表于 2023-8-26 22:18:15 | 显示全部楼层   四川省成都市
为什么要对1000000007取模大数阶乘,大数的排列组合等,一般都要求将输出结果对1000000007取模 为什么总是1000000007呢= =大概≖‿≖✧是因为:(我猜的,不服你打我呀~) 1. 1000000007是一个质数2. int32位的最大值为2147483647,所以对于int32位来说1000000007足够大3. int64位的最大值为2^63-1,对于1000000007来说它的平方不会在int64中溢出 所以在大数相乘的时候,因为(a∗b)%c=((a%c)∗(b%c))%c,所以相乘时两边都对1000000007取模,再保存在int64里面不会溢出 。◕‿◕。
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 7 天

发表于 2023-8-26 22:18:00 | 显示全部楼层   湖南省邵阳市
回复 支持 反对

使用道具 举报

结帖率:90% (161/179)

签到天数: 3 天

 楼主| 发表于 2023-8-26 22:11:38 | 显示全部楼层   广东省佛山市
# [HYOI R8] 一棵小桃树(peachtree)

## 题目背景

# 本题要求输出答案模 1e9+7 后最小的非负整数

为防止有同学不知道 OI 中最常见的取模,这里普及一些知识:
- 令 $P=10^9+7$
- 则 $(a+b)\bmod P=((a\bmod P)+(b\bmod P))\bmod P$
- 也有 $(a\times b)\bmod P=((a\bmod P)\times (b\bmod P))\bmod P$
- 对于负数 $x$,它的取模结果应该写成 $(x\bmod P+P)\bmod P$ 即 `(x%P+P)%P`。

---

$$\text{一棵小桃树}$$

$$\text{贾平凹}$$

我常常想要给我的小桃树写点文章,但却终没有写就一个字来。是我太爱怜它吗?是我爱怜得无所谓了吗?我也不知道是什么怪缘故儿,只是常常自个儿忏悔,自个儿安慰,说:“我是该给它写点什么了呢。”

今天的黄昏,雨下得这般大,使我也有些吃惊了。早晨起来,就淅淅沥沥的,我还高兴地说:春雨贵如油,今年来得这么早!一边让雨湿着我的头发,一边吟些杜甫的“随风潜入夜,润物细无声”,甚至想去田野悠悠地踏青呢。那雨却下得大了,全不是春的温柔,一直下了一个整天。我深深闭了柴门,伫窗坐下,看我的小桃树儿在风雨里哆嗦。纤纤的生灵儿,枝条已经慌乱,桃花一片一片地落了,大半陷在泥里,三点两点地在黄水里打着旋儿。啊,它已经老了许多呢,瘦了许多呢,昨日楚楚的容颜全然褪尽了。可怜它年纪儿太小了,可怜它才开了第一次花儿!我再也不忍看了,我千般儿万般儿地无奈何。唉,往日多么傲慢的我,多么矜持的我,原来也是个孱头儿。

好多年前的秋天了,我们还是孩子。奶奶从集市上回来,带给了我们一人一颗桃子,她说:“都吃下去吧,这是一颗‘仙桃’;含着桃核儿做一个梦,谁梦见桃花开了,就会幸福一生呢。”我们都认真起来,全含了桃核爬上床去。我却无论如何不能安睡,想这甜甜的梦是做不成了,又不肯甘心不做,就爬起来,将桃核儿埋在院子角落的土里,想让它在那蓄着我的梦。

秋天过去了,又过了一个冬天,孩子自有孩子的快活,我竟将它忘却了。一个春天的早晨,奶奶扫扫院子,突然发现角落的地方,拱出一个嫩绿儿,便叫道:这是什么呀?我才恍然记起了是它:它竟从土里长出来了!它长得很委屈,是弯了头,紧抱着身子的。第二天才舒开身来,瘦瘦儿的,黄黄儿的,似乎一碰,便立即会断了去。大家都笑话它,奶奶也说:这种桃树儿是没出息的,多好的种子,长出来,却都是野的,结些毛果子,须得嫁接才成。我却不大相信,执着地偏要它将来开花结果哩。
因为它长的太不是地方,谁也不再理会,惹人费神的倒是那些盆景儿。爷爷是喜欢服侍花的,在我们的屋里、院里、门道里,摆满了各种各样的花草。春天花事一盛,远近的人都来赞赏,爷爷便每天一早喊我们从屋里一盆一盆端出来,一晚又一盆一盆端进去;却从来不想到我的小桃树。它却默默地长上来了。
它长得很慢,一个春天,才长上二尺来高,样子也极猥琐。但我却十分地高兴了:它是我的,它是我的梦儿中长的。我想我的姐姐弟弟,他们那含着桃核做下的梦,或许已经早忘却了,但我的桃树却使我每天能看见它。我说,我的梦儿是绿色的,将来开了花,我会幸福呢。

也就在这年里,我到城里上学去了。走出了山,来到城里,我才知道我的渺小:山外的天地这般儿大,城里的好景这般儿多。我从此也有了血气方刚的魂魄,学习呀,奋斗呀,一毕业就走了上了社会,要轰轰烈烈地干一番我的事业了;那家乡的土院,那土院里的小桃树儿便再没有去思想了。

但是,我慢慢发现我的幼稚,我的天真了,人世原来有人世的大书,我却连第一行文字还读不懂呢。我渐渐地大了,脾性儿也一天一天地坏了,常常一个人坐着发呆,心境似乎是垂垂暮老了。这时候,奶奶也去世了,真是祸不单行。我连夜从城里回到老家去,家里人等我不及,奶奶已经下葬了。看着满屋的混乱,想着奶奶往日的容颜,不觉眼泪流了下来,对着灵堂哭了一场。天黑的时候,在窗下坐着,一抬头,却看见我的小桃树了;它竟然还在长着,弯弯的身子,努力撑着的枝条,已经有院墙高了。这些年来,它是怎么长上来的呢?爷爷的花事早不弄了,一垒一垒的花盆堆在墙根,它却长着!弟弟说:“那桃树被猪拱过一次,要不早就开了花了。”他们曾嫌它长得不是地方,又不好看,想砍掉它,奶奶却不同意,常常护着给它浇水。啊,小桃树儿,我怎么将你遗在这里,而身漂异乡,又漠漠忘却了呢?看着桃树,想起没能再见一面的奶奶,我深深懊丧对不起我的奶奶,对不起我的小桃树了。

如今,它开了花了,虽然长得弱小,骨朵儿不见繁,一夜之间,花竟全开了呢。我曾去看过终南山下的夹竹桃花,也去领略过马嵬坡前的水蜜桃花,那花儿开得火灼灼的,可我的小桃树儿,一颗“仙桃”的种子,却开得太白了,太淡了,那瓣片儿单薄得似纸做的,没有肉的感觉,没有粉的感觉,像患了重病的少女,苍白白的脸,又偏苦涩涩地笑着。我忍不住几分忧伤,泪珠儿又要下来了。

花幸好并没有立即谢去,就那么一树,孤孤地开在墙角。我每每看着它,却发现从未有一只蜜蜂去恋过它,一只蝴蝶去飞过它。可怜的小桃树!

我不禁有些颤抖了:这花儿莫不就是我当年要做的梦的精灵吗?
雨却这么大地下着,花瓣儿纷纷零落去。我只说有了这场春雨,花儿会开得更艳,香味会蓄得更浓,谁知它却这么命薄,受不得这么大的福分,受不得这么多的洗礼,片片付给风了,雨了!我心里喊着我的奶奶。

雨还在下着,我的小桃树千百次地俯下身去,又千百次地挣扎起来,一树的桃花,一片,一片,湿得深重,像一只天鹅,眼睁睁地羽毛剥脱,变得赤裸的了,黑枯的了。然而,就在那俯地的刹那,我突然看见那树儿的顶端,高高的一枝儿上,竟还保留着一个欲绽的花苞,嫩黄的,嫩红的,在风中摇着,抖着满身的雨水,几次要掉下来了,但却没有掉下去,像风浪里航道上的指示灯,闪着时隐时现的嫩黄的光,嫩红的光。

我心里稍稍有些了安慰。啊,小桃树啊!我该怎么感激你,你到底还有一朵花呢,明日一早,你会开吗?你开的是灼灼的吗?香香的吗?我亲爱的,你那花是会开得美的,而且会孕出一个桃儿来的;我还叫你是我的梦的精灵儿,对吗?

## 题目描述

你有 $n$ 个整数组成的数列 $a$,$m$ 次询问,每次给定 $p$,求 $\sum_{i=1}^n |i-p|\cdot a_i$,对 $10^9+7$ 取模。

## 输入格式

第一行输入两个整数 $n,m$。

第二行输入 $n$ 个整数,第 $i$ 个表示 $a_i$。

接下来 $m$ 行,每行输入一个整数 $p$,表示这次询问的 $p$。

## 输出格式

输出 $m$ 行,每行一个整数,表示每次询问的回答,即 $\sum_{i=1}^n |i-p|\cdot a_i$ 对 $10^9+7$ 取模的结果。

## 样例 #1

### 样例输入 #1

```
6 10
1 1 4 5 1 4
-1000000000
0
1
2
3
4
5
6
7
1000000000
```

### 样例输出 #1

```
999999959
64
48
34
22
18
24
32
48
999999831
```

## 样例 #2

### 样例输入 #2

```
10 10
-802366452 -405213901 237468511 -779187544 -174606592 193890085 404563196 -71722998 -617934776 170102710
-442808289
109833389
953091341
994454001
322957429
216874735
-606986750
-455806318
-663190696
3793295
```

### 样例输出 #2

```
549703338
625630957
551387670
369984406
522465052
890189442
936041248
334870517
93093347
663286926
```

## 提示

### 样例解释
- 当 $p=0$ 时,答案为 $1\times 1+2\times 1+3\times 4+4\times 5+5\times 1+6\times 4=64$;
- 当 $p=1$ 时,答案为 $0\times 1+1\times 1+2\times 4+3\times 5+4\times 1+5\times 4=48$;
- 当 $p=2$ 时,答案为 $1\times 1+0\times 1+1\times 4+2\times 5+3\times 1+4\times 4=34$;
- 当 $p=3$ 时,答案为 $2\times 1+1\times 1+0\times 4+1\times 5+2\times 1+3\times 4=22$;
- 当 $p=4$ 时,答案为 $3\times 1+2\times 1+1\times 4+0\times 5+1\times 1+2\times 4=18$;
- 当 $p=5$ 时,答案为 $4\times 1+3\times 1+2\times 4+1\times 5+0\times 1+1\times 4=24$;
- 当 $p=6$ 时,答案为 $5\times 1+4\times 1+3\times 4+2\times 5+1\times 1+0\times 4=32$;
- 当 $p=7$ 时,答案为 $6\times 1+5\times 1+4\times 4+3\times 5+2\times 1+1\times 4=48$。

### 数据范围
对于 $60\%$ 的数据,$n,m\leq 2000$;

对于 $100\%$ 的数据,$n,m\leq 10^5,|a_i|,|p|\leq 10^9$。

### 提示
在 `C++` 中,如果你想要将一个负数 $x$ 对 $p$ 取模,请使用 `(x%p+p)%p`,非负整数亦可如此操作。


卡老半天了(一天),结果发现就一前缀和!!服啦!~~发现这些题的取模都是这两数,有什么特殊的意义吗!!还有题目背景也挺有意思的,我还特意看了下

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表