题意:

给一个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);
}

hdu 5084 HeHe (观察思考题)的更多相关文章

  1. HDU 5084 HeHe --找规律

    题意: 给出矩阵M,求M*M矩阵的r行c列的数,每个查询跟前一个查询的结果有关. 解法: 观察该矩阵得知,令ans = M*M,则 ans[x][y] = (n-1-x行的每个值)*(n-1+y列的每 ...

  2. hdu 5084 前缀和预处理

    http://acm.hdu.edu.cn/showproblem.php?pid=5084 给出矩阵M,求M*M矩阵的r行c列的数,每个查询跟前一个查询的结果有关. 观察该矩阵得知,令ans = M ...

  3. hdu 4639 Hehe

    http://acm.hdu.edu.cn/showproblem.php?pid=4639 每一段 "hehe..... " 相互独立  将每一段 "hehe..... ...

  4. 【斐波那契DP】HDU 4639——HeHe

    题目:点击打开链接 多校练习赛4的简单题,但是比赛的时候想到了推导公式f(n)=f(n-1)+f(n-2)(就是斐波那契数列),最后却没做出来. 首先手写一下he(不是hehe)连续时的规律.0-1 ...

  5. hdu 4639 Hehe (dp)

    一道dp题,转移方程不是自己推出来的. 题目的意思是用‘qnmlgb’替换‘hehe’,可以替换也可以不替换,问有多少种情况. 如果结尾不是‘hehe’,那么dp[i]=dp[i-1],如果是是‘he ...

  6. HDU 4639 Hehe 2013 Multi-University Training Contest 4

    题意大致如下:屌丝找女神聊天,女神回了一句 hehe ,而我们都知道 Hehe 有两个意思,一个就是 Hehe ,另外一个则是 wqnmlgb (我去年买了个表) ,所以屌丝很纠结,于是开始思考到底女 ...

  7. HDU 4639 hehe 杭电2013多校联赛第四场1008题

    解题报告:题目的意思是输入一个字符串,并规定,里面的“hehe”可以用"wqnmlgb"来代替,也可以不代替,问输入的这个字符串在经过相关的代替之后可以有多少种不同的形态.先打一个 ...

  8. HDU 4639 Hehe (2013多校4 1008 水题)

    Hehe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  9. hdu 5084(矩阵操作)

    HeHe Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

随机推荐

  1. POJ2352 Stars (静态二叉检索树)

    https://vjudge.net/problem/POJ-2352 分析: 由于是按照y坐标的升序,y坐标向等的按x的升序的顺序给出星星.那么某个星星的等级数就是在他前面x坐标小于等于他的x坐标的 ...

  2. C# lambda 实现 Ascii 排序

    var dir = new Dictionary<string, string>();            dir.Add("channelId", "1& ...

  3. 虚拟机乌班图系统安装 VMware tools 工具

    在VMware虚拟机中安装完毕Linux操作系统之后,我们经常会发现桌面不能全屏显示或者windows主机系统与linux操作系统之间无法创建共享文件夹.这是因为我们还没有安装VMware tools ...

  4. Ubuntu怎么开启/关闭防火墙

    在Ubuntu中,使用sudo ufw status命令查看当前防火墙状态. 不活动,是关闭状态. 在Ubuntu中,使用sudo ufw enable命令来开启防火墙. 在Ubuntu中,使用sud ...

  5. pyQt5设计无边框窗口(二)

    无边框,自定义窗口背景 from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * impor ...

  6. [转载]解决虚拟机中Centos7出现错误:Failed to start LSB: Bring up/down networking

    1.执行 service network restart 出现以下错误 Restarting network (via systemctl):  Job for network.service fai ...

  7. Java面试总结 Boss沟通过:500+,面试:20,已投简历130+

    1 概述 1 介绍 最近换工作,对最近面试的过程进行总结,总结每个公司的面试流程和问到的面试题,记录自己,也供大家参考. 我是一名Java开发,工作经验10年,所以面试一名高级Java开发工程师. 简 ...

  8. ARC122C-Calculator【乱搞,构造】

    正题 题目链接:https://atcoder.jp/contests/arc122/tasks/arc122_c 题目大意 一个数对开始是\((0,0)\),每次可以选择一个数加一或者让一个数加上另 ...

  9. 高级测试必备技能,Jenkins

    Jenkins安装 前言 Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的"自动化"编译.打包.分发部署,将以前编译.打包.上传.部署到Tomcat中的过程 ...

  10. fastjson将json转为Map<String,String>踩坑

    字符串 对于一个json字符串 String str = "{"specItem":"[红, 大]","specName":&qu ...