U28036 Nagisa loves Tomoya

题目描述:

可爱的古河渚得到了一个序列。她定义一次操作为将所有的ai变为ai+a(i mod n+1)

然后她会向你进行Q次询问,每次问你x,y意义为在第x次操作后位置y的元素是多少。

这个问题太简单了,我们的Nagisa轻易地就解决了这个问题。请问您能解决这个问题吗?

输入格式:

一个整数n,表示序列的长度。

接下来一行n个整数,表示这个序列。

接下来一行一个整数Q,表示询问次数

接下来Q行,每行两个整数x,y意义如题所示。

输出格式:

共Q行,每行一个整数表示询问的答案,请注意对998244353取膜。

题解:

找到翻x次每个数字被统计的次数的规律,即杨辉三角。

当k>n的时候,就拐回来,即第一项加上最后一项。

代码:

 1 const
 2   mo=998244353;
 3 var
 4   n,q:longint;
 5   a,f:array [0..1000001] of int64;
 6   x,y,ans,b:array [0..10001] of int64;
 7 function min(o,p:longint):longint;
 8 begin
 9   if o<p then exit(o);
10   exit(p);
11 end;
12
13 procedure init;
14 var
15   i:longint;
16 begin
17   fillchar(ans,sizeof(ans),0);
18   fillchar(f,sizeof(f),0);
19   readln(n);
20   for i:=1 to n do
21     read(a[i]);
22   a[0]:=a[n];
23   readln(q);
24   for i:=1 to q do
25     begin
26       readln(x[i],y[i]);
27       b[i]:=i;
28     end;
29 end;
30
31 procedure qsort(l,r:longint);
32 var
33   i,j,t,mid:longint;
34 begin
35   if l>r then exit;
36   i:=l; j:=r;
37   mid:=x[(l+r) div 2];
38   repeat
39     while x[i]<mid do inc(i);
40     while x[j]>mid do dec(j);
41     if i<=j then
42       begin
43         t:=x[i]; x[i]:=x[j]; x[j]:=t;
44         t:=y[i]; y[i]:=y[j]; y[j]:=t;
45         t:=b[i]; b[i]:=b[j]; b[j]:=t;
46         inc(i); dec(j);
47       end;
48   until i>j;
49   qsort(i,r);
50   qsort(l,j);
51 end;
52
53 procedure main;
54 var
55   i,j,k,t:longint;
56 begin
57   f[0]:=1;
58   i:=1; k:=0;
59   while i<=q do
60     begin
61       while x[i]=k do
62         begin
63           for j:=0 to min(k,n-1) do
64             ans[b[i]]:=(ans[b[i]]+f[j]*a[(y[i]+j) mod n]) mod mo;
65           inc(i);
66         end;
67       while k<x[i] do
68         begin
69           t:=f[n-1];
70           for j:=min(n,k) downto 1 do
71             f[j]:=(f[j]+f[j-1]) mod mo;
72           f[0]:=(f[0]+t) mod mo;
73           inc(k); f[k]:=1;
74         end;
75     end;
76 end;
77
78 procedure print;
79 var
80   i:longint;
81 begin
82   for i:=1 to q do
83     writeln(ans[i]);
84 end;
85
86 begin
87   init;
88   qsort(1,q);
89   main;
90   print;
91 end.

转载于:https://www.cnblogs.com/zyx-crying/p/9428787.html

2018洛谷8月月赛第一题_U28036 Nagisa loves Tomoya相关推荐

  1. Mdoi R2 洛谷4月月赛I

    Mdoi R2 洛谷4月月赛I DIV2 A Car 题目描述 在MDOI市, 为了推行环保, 一辆车是否被限行的依据时车牌号和当天的日期. 车牌号的编码方式是这样的: **·**前三位均为大写字母, ...

  2. 洛谷10月月赛 2 t2 深海少女与胖头鱼

    洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 ( ...

  3. 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心

    题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi​,地面的高度是 h_0 = 0 ...

  4. 洛谷11月月赛(284pts rank85)

    https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...

  5. P8318 『JROI-4』淘气的猴子(【LGR-108】洛谷 5 月月赛 I JROI R4 Div.2)

    众所周知,jockbutt 是一个可爱的女孩纸. 题目描述 jockbutt 有一个正整数序列,长度为 n,分别为 a1,a2...an,她非常喜欢这个序列,平时都非常爱惜它们. 可是有一天,当 jo ...

  6. 【洛谷月赛】洛谷11月月赛·Day1

    洛谷2614 计算器弹琴 本题地址: http://www.luogu.org/problem/show?pid=2614 题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参 ...

  7. 洛谷 2 月月赛 I 『MdOI R4』 (Div2) A ~ D 四题全,也许会有六题,超高质量题解 (Div.1E、F下辈子一定补)【每日亿题2 / 9】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.P7337 『MdOI R4』Fun B.P7338 『MdOI R4』Color C.P7 ...

  8. 洛谷10月月赛II题解

    Solution T1 首先,可以一眼看出这是一个完全图的一笔画问题.然后开始挖性质: ①根据欧拉图的性质,如果将我们一笔画中没有经过的边删去,那么剩下的节点的度数一定有000个或222个是奇数. 通 ...

  9. 洛谷9月月赛 康娜的线段树

    题目描述 小林是个程序媛,不可避免地康娜对这种人类的"魔法"产生了浓厚的兴趣,于是小林开始教她OI. 今天康娜学习了一种叫做线段树的神奇魔法,这种魔法可以维护一段区间的信息,是非常 ...

最新文章

  1. 没听说过这些,就不要说你懂并发了,three。
  2. 阿里都在用的绩效管理聚能环,一篇文章学会
  3. 网络营销——网络营销专员浅析网站快照更新要点
  4. 实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293
  5. 修改boot.ini
  6. java快速排序泛型,如何进行对C# .NET通用泛型进行快速排序?
  7. 解读GAN及其 2016 年度进展
  8. 【Java】日期/事件字符串包含TZ
  9. execl用宏查询mysql_关于EXCEL能否用宏直接连到oracle数据库然后取数据
  10. 【机器学习】NMF(非负矩阵分解)
  11. Jsoup代码解读之二-DOM相关对象
  12. c++中友元函数详解
  13. python opencv输出mp4_Python玩转视频处理(四):视频按场景进行分割
  14. java算法题走楼梯,程序员必学算法「动态规划」:爬楼梯(完全背包解法)
  15. X264_最简单的视频编码实现(YUV420编码H264)
  16. Java 图片验证码的实现和模拟简单的登录
  17. Python RE模块中search()和match()的区别
  18. 79. 基于 PHP 的用户认证
  19. 《程序员之禅》一一2.2 佛教中的“小鬼”
  20. java爬虫模拟登陆_java爬虫模拟登陆的实例详解

热门文章

  1. CRM ORDER_MAINTAIN
  2. js 数组遍历符合条件跳出循环体_Js数组遍历方法对比总结
  3. matlab中图像边缘提取,Matlab图像处理(五)——图像边缘提取
  4. 3.13课·········冒泡排序
  5. oracle数据库添加外键约束
  6. 海康工业相机SDK+OpenCV实例(2):RawDataFormatConvert详解
  7. 计算机二级ppt云计算,2021年全国计算机等级考试二级officeppt演示文稿题目.docx
  8. 仓储+调度,YOGO智能配送站能否改变外卖配送格局?...
  9. conda常用指令-持续更新中
  10. 最全面性能测试方案模板