题意:

给一个n行n列的矩阵M。这个矩阵M由2n-1数构成。分别是t1,t2,....t(2n-1)。

m个query。每个query形式:ri, ci。

第i个query的答案 ans[i]=E[(ri+ans[i-1])%n ][(ci+ans[i-1])%n]      E=M*M

求m个query的答案和。即ans[1]+...ans[m]的答案。

矩阵形式:

t3  t4  t5                          t4  t5  t6  t7

t2  t3  t4                          t3  t4  t5  t6

t1  t2  t3                          t2  t3  t4  t5

               t1  t2  t3  t4

思路:

直接算M*M,时间复杂度是n^3,会超时。考虑到矩阵具有特殊性,找出规律。

ans[x][y]=t[n+1-x](增)*t[n-1+y](减)+....+a[2n-x]*a[y]

ans[x+1][y+1]=ans[x][y] + 某个东西 - 某个东西    (这里不写出,在记事本上写一下便可观察出)

这样算M*M大约时间复杂度大约是n^2

代码:

int n,m,r,c;
int t[2500];
int ans[1005][1005]; int main(){
//freopen("test.in","r", stdin); while(scanf("%d",&n)!=EOF){
rep(i,1,2*n-1) scanf("%d",&t[i]);
mem(ans,0);
rep(i,1,n) rep(j,1,n){
if(i-1<1 || j-1<1)
rep(k,0,n-1) ans[i][j]+=t[n+1-i+k]*t[n-1+j-k];
else{
ans[i][j]=ans[i-1][j-1];
ans[i][j]-=t[2*n-(i-1)]*t[j-1];
ans[i][j]+=t[n+1-i]*t[n-1+j];
}
} ll sum=0;
int ANS;
scanf("%d",&m);
scanf("%d%d",&r,&c); ANS=ans[r+1][c+1]; sum+=ANS;
rep(i,2,m){
scanf("%d%d",&r,&c);
ANS=ans[(r+ANS)%n+1][(c+ANS)%n+1];
sum+=ANS;
}
printf("%I64d\n",sum);
} //fclose(stdin);
}

最新文章

  1. XE2:查看Extended Events收集的数据
  2. 【2016-11-3】【坚持学习】【Day18】【我认识的ORM】
  3. (2016弱校联盟十一专场10.3) B.Help the Princess!
  4. 鼠标滚轮控制侧边div上下翻动效果
  5. 基于Retrofit+RxJava的Android分层网络请求框架
  6. linux进程查找及杀死
  7. 实例源码--Android理财工具源码
  8. WCF - IIS Hosting
  9. Xutils 源码解析【转】
  10. ArrayList的toArray
  11. ubuntu14.04英文环境下安装中文输入法
  12. 【RAC】RAC相关基础知识
  13. GIT归纳整理
  14. 【系统监控】性能监测 vmstat,mpstat,iostat
  15. KafKa记录
  16. Pyperclip could not find a copy/paste mechanism for your system.
  17. Ionic2 App Import BrowserAnimationsModule or NoopAnimationsModule问题
  18. King&#39;s Quest POJ - 1904(强连通分量)
  19. BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞
  20. Python 一行代码实现并行

热门文章

  1. DP之背包经典三例
  2. PHP中使用if的时候为什么建议将常量放在前面?
  3. python学习笔记(十五)-unittest单元测试的一个框架
  4. P5825-排列计数【EGF,NTT】
  5. Phalcon多模块如何实现连接不同数据库 《Phalcon入坑指南系列 五》
  6. Docker里面没有你期望的命令、甚至没有yum怎么办?
  7. 从零入门 Serverless | SAE 的极致应用部署效率
  8. 解决npm : 无法加载文件 D:\Code\renren-fast-vue\node_modules\.bin\npm.ps1,因为在......
  9. Frida高级逆向-Hook Java
  10. LuckySheet一款在线Excel使用心得