洛谷 U28036 Nagisa loves Tomoya(推式子) 题解
题目来源:
https://www.luogu.org/problemnew/show/U28036
题目描述:
题目描述
可爱的古河渚得到了一个序列。她定义一次操作为 将所有的 a_iai 变为 a_i+a_{(i\ mod \ n+1)}ai+a(i mod n+1)
然后她会向你进行 QQ 次询问,每次问你 x,yx,y ,意义为在第 xx 次操作后位置 yy 的元素是多少。
这个问题太简单了,我们的Nagisa轻易地就解决了这个问题。请问您能解决这个问题吗?
输入输出格式
输入格式:
一个整数 nn ,表示序列的长度。
接下来一行 nn 个整数,表示这个序列。
接下来一行一个整数 QQ ,表示询问次数
接下来 QQ 行,每行两个整数 x,yx,y ,意义如题所示。
输出格式:
共 QQ 行,每行一个整数表示询问的答案,请注意对 998244353998244353 取膜。
输入输出样例
输入样例#1: 复制
5 1 2 3 4 5 2 1 2 2 2
输出样例#1: 复制
5 12
说明
对于 30 \%30% 的数据,满足: 1 \leq n \leq 1001≤n≤100
1 \leq x \leq 1001≤x≤100
1 \leq Q \leq 1001≤Q≤100
对于 50\%50% 的数据:
1\leq n \leq 1000001≤n≤100000
1 \leq x \leq 5001≤x≤500
1 \leq Q \leq 1001≤Q≤100
对于 100 \%100% 的数据,满足
1 \leq n \leq 10^61≤n≤106
1 \leq a_i \leq 10^91≤ai≤109
1 \leq x \leq 20001≤x≤2000
1 \leq Q \leq 10^41≤Q≤104
解题思路:
可以用手推数据较小的情况,会发现一些规律,比如
a1 a2 a3 a4 a5,
a1+a2 a2+a3 a3+a4 a4+a5 a5+a1
a1+2*a2+a3 a2+2*a3+a4 a3+2*a4+a5 a4+2*a5+a6 a5+2*a1+a2
a1+3*a2+3*a3+a4 a2+3*a3+3*a4+a5 a3+3*a4+3*a5+a1 a4+3*a5+3*a1+a2 a5+3*a1+3*a2+a3
通过观察,可以知道操作n次的第i个元素是ai...ai+n,然后每个元素就是乘以C(n,1).....C(n,n);然后就可以了。。
代码:
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
#include<stack>
#include<vector>
#include<cstdio>
#define ll long long
#define inf 1e9
using namespace std;
const int mod=998244353;
const int maxn=1e6+10;
int n,m,su[maxn],sj[2005][2005];
void cl()
{for(int i=1;i<=2001;i++)sj[i][1]=1,sj[i][i]=1;for(int i=3;i<=2001;i++)for(int j=2;j<=i-1;j++)sj[i][j]=((sj[i-1][j]%mod)+(sj[i-1][j-1]%mod))%mod;return ;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&su[i]);cl();scanf("%d",&m);for(int i=1;i<=m;i++){int a,b;scanf("%d%d",&a,&b);ll ans=0;int cs=a+1,tt=1;while(cs--){ans+=1ll*su[b++]*sj[a+1][tt++]%mod;while(ans>mod)ans-=mod;if(b>n)b=1;}printf("%lld\n",ans%mod);}return 0;
}
洛谷 U28036 Nagisa loves Tomoya(推式子) 题解相关推荐
- 洛谷 4828 Nagisa loves Tomoya 题解
博客观赏效果更佳](https://lightninguz2.github.io/2019/11/02/洛谷-4828-Nagisa-loves-Tomoya-题解/) 题意简述 给定一个序列aaa, ...
- 洛谷月赛2018.8 T1题解(U28036 Nagisa loves Tomoya)
[题解] 我们设原来的数组为a1,a2,a3..., 那么一次操作之后的数组变为a1+a2,a2+a3,a3+a4..., 两次操作之后数组变为a1+2a2+a3,a2+2a3+a4,a3+2a4+a ...
- 2018洛谷8月月赛第一题_U28036 Nagisa loves Tomoya
U28036 Nagisa loves Tomoya 题目描述: 可爱的古河渚得到了一个序列.她定义一次操作为将所有的ai变为ai+a(i mod n+1) 然后她会向你进行Q次询问,每次问你x,y意 ...
- 洛谷P2851 [USACO06DEC]The Fewest Coins G 题解
洛谷P2851 [USACO06DEC]The Fewest Coins G 题解 题目链接:P2851 [USACO06DEC]The Fewest Coins G 题意: Farmer John ...
- 洛谷P4799 [CEOI2015 Day2] 世界冰球锦标赛 题解
洛谷P4799 [CEOI2015 Day2] 世界冰球锦标赛 题解 题目链接:P4799 [CEOI2015 Day2] 世界冰球锦标赛 题意: 译自 CEOI2015 Day2 T1「Ice Ho ...
- 洛谷P4390 [BOI2007]Mokia 摩基亚 题解
洛谷P4390 [BOI2007]Mokia 摩基亚 题解 题目链接:P4390 [BOI2007]Mokia 摩基亚 题意:摩尔瓦多的移动电话公司摩基亚(Mokia)设计出了一种新的用户定位系统.和 ...
- 洛谷P4831 Scarlet loves WenHuaKe
这道题告诉我们推式子的时候头要够铁. 题意 问一个\(n\times m\)的棋盘,摆上\(n\times 2\)个中国象棋的炮使其两两不能攻击的方案数,对\(998244353\)取模. \((n\ ...
- [洛谷2397]yyy loves Maths VI
题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 他让redbag找众数 他还特 ...
- [洛谷]CON1466 洛谷2017春节联欢赛 Hello Dingyou题解 Bzoj4763雪辉
题目来源:https://www.luogu.org/contest/show?tid=1466 创建时间:2017/3/13 18:33 镇楼图: 猜猜她是谁~ 解题思路: 春节居然也有 ...
最新文章
- 微软私有云系列----证书配置
- 【杂谈】有三AI专业版学习扑克牌上线,一副扑克,看懂AI核心技术
- python快速求EXCEL数据权重
- DELPHI中操作ACCESS数据库
- 笔试+面试信息整理----面向笔试学习、面向面经编程
- 可视化驱动治理:公共交通系统的可视化实践
- python安卓app下载_【Python教学视频手机下载】Python教学app下载 v1.0 安卓版-趣致软件园...
- 计算机系统动态库修复,win10系统提示dll动态链接库出现故障修复的处理步骤
- lammps教程:原子平动和振动的设置方法
- JAVA架构图的设计与画法
- WindowsXP_KB909667_x86_ENU
- 我的保研之路-哈工大计算机,中科院信工所,复旦大数据学院
- 微信小程序怎么用?小程序有什么用?之501~600
- 关于 Photoshop 图层
- 四足机器人站立姿态解算-几何方法
- 【翻译】DataDog Kafka运维经验谈
- 微信返利机器人开发制作
- 爬取京东笔记本电脑销量榜每件商品详情页url,并存入云服务器中的mysql库
- python开源论坛 商城_python 开源商城安装
- 【scratch】class_6_植物大战僵尸(一)