如果单点而不是求 sigma 的话还是比较好办的.

遇到这种前缀和相减的矩阵乘法可以增设一个 0 使得后面的能先加到前面,然后再算.

这样的话可以使的最后算出的是前缀和相加的形式.

code:

#include <bits/stdc++.h>
#define ll long long
#define mod 1000000007
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
struct data
{ll v[9][9];    data() { memset(v,0,sizeof(v));}   ll *operator[](int a) { return v[a]; }   data operator*(data &a) {data ans;   int i,j,k; for(i=0;i<=8;++i) for(j=0;j<=8;++j) for(k=0;k<=8;++k) ans[i][j]=(ans[i][j]+v[i][k]*a[k][j]%mod)%mod;   return ans;    }
}A,T;
data pow(data x,int y)
{data ans; int i;  for(i=0;i<=8;++i) ans[i][i]=1;   while(y) {if(y&1) ans=ans*x;  x=x*x; y>>=1; } return ans;
}
void init()
{for(int i=0;i<=8;++i) A[i][0]=1;   A[1][5]=A[1][7]=1; A[2][5]=A[2][7]=1;   A[3][6]=A[3][8]=1; A[4][6]=A[4][8]=1;    A[5][1]=A[5][3]=1; A[6][1]=A[6][3]=1;    A[7][2]=A[8][4]=1;
}
ll calc(int x)
{if(!x) return 0;   data tmp=pow(A,x-1);    ll ans=tmp[0][0]*4;    for(int i=1;i<=8;++i) ans+=tmp[i][0];   return ans%mod;
}
int main()
{  // setIO("input");  int i,j,l,r; scanf("%d%d",&l,&r),--l;  init(); printf("%lld\n",((calc(r) + calc((r+1)/2) - calc(l) - calc((l+1)/2)) * 500000004 % mod + mod)%mod);        return 0;
}

  

BZOJ 5082: 弗拉格 矩阵乘法相关推荐

  1. 【bzoj5082】弗拉格 矩阵乘法

    题目描述 给你n个flag,你要把每个染色成红黑白黄四色之一,满足: 1.相邻旗不能同色 2.白不能和黄相邻,红不能和黑相邻 3.不能存在连续三个球依次是"黑白红"或"红 ...

  2. bzoj5082 弗拉格 矩阵乘法

    Description "如果明天进了面试,我就去爆妹子的照"--有妹子的丁相允作为一个oier,自然不能立太多flag,让我们来看 一道和flag有关的题目吧 给你n个flag, ...

  3. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  4. BZOJ 3329 Xorequ (数位DP、矩阵乘法)

    BZOJ 3329 Xorequ (数位DP.矩阵乘法) 手动博客搬家: 本文发表于20181105 23:18:54, 原地址https://blog.csdn.net/suncongbo/arti ...

  5. BZOJ 1444 [JSOI2009]有趣的游戏 (AC自动机、概率与期望DP、矩阵乘法)

    诶这题洛谷居然没有??? 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1444 题解: 我见到主要有两种做法. 一是矩阵乘法.设\(d ...

  6. 【BZOJ 3326】[Scoi2013]数数 数位dp+矩阵乘法优化

    挺好的数位dp-- 先说一下我个人的做法: 经过观察,发现这题按照以往的思路从后往前递增,不怎么好推,然后我就大胆猜想,从前往后推,发现很好推啊,维护四个变量,从开始位置到现在有了i个数 f[i]:所 ...

  7. BZOJ 2738: 矩阵乘法 [整体二分]

    给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 愚蠢的名字...... 整体二分,影响因子就是矩阵里的数 把$\le mid$的矩阵元素加到二维树状数组里然后询问分成两组就行 ...

  8. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  9. [BZOJ]4180: 字符串计数 SAM+矩阵乘法+二分

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

最新文章

  1. vs2008与IIS 7.0使用在vista上时出现的问题及解决方法(Internet Explorer 无法显示该页面)(VS2008: IE Cannot Display Web Page)...
  2. 广西卫生职业技术学院计算机考试,广西卫生职业技术学院单招2021年春招分数线...
  3. 2016年全球芯片市场或衰退2.13%
  4. 使用C# lock同时访问共享数据
  5. 安卓动画知识总结 Animation AnimationSet LayoutAnimation
  6. Java动态代理模拟spring的AOP
  7. 用 Mars Remote API 轻松分布式执行 Python 函数
  8. axios_的基本使用_使用axios()方法来发送请求---axios工作笔记004
  9. [Firefox] 方便实用的firefox 插件
  10. 【TJOI2016】【bzoj4552】排序(二分答案+线段树01排序)
  11. 台式计算机m9870t,新闻中心 ——驱动之家:您身边的电脑专家
  12. 在Android上加载具有AI危害检测的TensorFlow模型
  13. 关于KNX/IP 网关协议报文解析以及几个注意事项
  14. 阿里云部署vmware报错
  15. 常用电子元器件介绍 齿轮规格的参数
  16. python pdf书籍领取
  17. 监控平台(J2EE)声音告警程序功能设计与实现
  18. (线段树)洛谷 P2471 [SCOI2007]降雨量
  19. 什么是模块化?为什么要模块化
  20. 【移动端】滑动验证致使整个屏幕都在动

热门文章

  1. 【小程序】如何获取微信小程序代码上传密钥?
  2. 疫情期间网络攻击花样翻新,全年 81748 起安全事件背后暗藏规律
  3. SQL注入漏洞的攻击与防御
  4. 因变量顺序类别的回归(R语言)
  5. MySQL 8.0.20zip下载安装教程
  6. python tkinter按键显示打印内容
  7. 求生之路2 游戏资料详细与细节
  8. Linux目录及常用命令
  9. 运维人生攻城狮的第一次搬家
  10. tarjan算法总结 (强连通分量+缩点+割点),看这一篇就够了~