Okabe and El Psy Kongroo

题意:有n条平行x轴的线段,每条线段的起点为(ai,ci),终点为(bi,ci),且满足ai=b(i-1),从起点出发,每次可以往3个方向走,分别为 (x + 1, y + 1), (x + 1, y), or (x + 1, y - 1),且走的过程必须满足0>=y>=ci,求走到(k,0)有多少种走法

思路:dp+矩阵快速幂,

dp[i][0]=dp[i-1][0]+dp[i-1][1]

...........

dp[i][j]=dp[i-1][j]+dp[i-1][j+1]+dp[i-1][j-1]

...........

dp[i][c]=dp[i-1][c]+dp[i-1][c-1]

得到

dp[i][0]        dp[i][1]    ... dp[i][j]  ...     dp[i][c]

s矩阵 [                                                         ]

dp[i+1][0]   dp[i+1][1] ... dp[i+1][j] ... dp[i+1][c]

每段线段用一次矩阵快速幂

AC代码:

#include "iostream"
#include "string.h"
#include "stack"
#include "queue"
#include "string"
#include "vector"
#include "set"
#include "map"
#include "algorithm"
#include "stdio.h"
#include "math.h"
#define ll long long
#define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
#define mem(a) memset(a,0,sizeof(a))
using namespace std;
const int N=20;
ll M,Mod=1e9+7;
struct Mat{ll m[N][N];Mat(){mem(m);}Mat friend operator* (Mat a, Mat b){Mat c;for(int i=0; i<M; i++)for(int j=0; j<M; j++)for(int k=0; k<M; k++)c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%Mod;return c;}
};
Mat PowMod(Mat a, ll b){Mat c;for(int i=0; i<M; ++i) c.m[i][i]=1;while(b){if(b&1) c=c*a;a=a*a;b>>=1;}return c;
}
ll n,k,a[105],b[105],c[105];
int main(){cin>>n>>k;for(int i=0; i<n; ++i){cin>>a[i]>>b[i]>>c[i];}Mat t;for(int i=0;i<16;i++)for(int j=i-1;j<=i+1;j++)if(j>=0&&j<16)t.m[i][j] = 1;Mat ans;ans.m[0][0]=1;for(int i=0; i<n; ++i){k-=(b[i]-a[i]);M=c[i]+1;if(k>=0){ans=ans*PowMod(t,b[i]-a[i]);}else{k+=(b[i]-a[i]);ans=ans*PowMod(t,k);}}cout<<ans.m[0][0];return 0;
}
/*
1 3
0 3 3
2 6
0 3 0
3 10 2
*/

转载于:https://www.cnblogs.com/max88888888/p/7102892.html

Codeforces Round #420 E相关推荐

  1. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

    [题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...

  2. Codeforces Round #420 (Div. 2)

    这一场PP说很简单,我就闲来无事敲一敲好了,反正也考完了(雾,不过只剩数据结构和c++ A. Okabe and Future Gadget Laboratory time limit per tes ...

  3. codeforces round 420 div2 补题 CF 821 A-E

    A Okabe and Future Gadget Laboratory 暴力 #include<bits/stdc++.h> using namespace std; typedef l ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

  6. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  7. Codeforces Round #270

    Codeforces Round #270 题目链接 A:我是筛了下素数.事实上偶数仅仅要输出4和x - 4,奇数输出9和x - 9就可以 B:贪心的策略,把时间排序后.取每k个的位置 C:贪心.每次 ...

  8. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  9. [Educational Codeforces Round 16]A. King Moves

    [Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...

最新文章

  1. Sql年月日计算方法
  2. 算力大战是BCH最坏的一种处理方式
  3. 云极知客开放平台接口调用方法(C#)
  4. python requests下载文件很慢-python requests 下载大文件不完整
  5. easyui combobox设置只读属性
  6. error: 'for' loop initial declarations are only allowed in C99 or C11 mode
  7. jzoj4051-序列统计【NTT】
  8. cmd命令不识别exp_cmd 命令行exp 命令导出数据库文件
  9. Nginx初探索之安装、启动、关闭和重启
  10. 学习SQLite之路(二)
  11. 如何清除vsphere主机提示“此主机当前没有管理网络冗余”
  12. 华为荣耀3x畅玩版解锁
  13. 龙芯芯片CPU的产品路线说明
  14. quick-cocos2d-x 绑定C++自定义类
  15. Linux模拟试题及答案(全)
  16. cuBLAS使用(4)
  17. MBR与GPT分区扫盲,希捷2T、3T硬盘测评(多图杀猫)
  18. 【已补蓝奏云链接】PyTorch中MNIST数据集(附datasets.MNIST离线包)下载慢/安装慢的解决方案
  19. 软件测试项目交付,成功交付离岸项目的三个步骤
  20. 童年中的电视剧你还记得几个?

热门文章

  1. OpenFOAM安装教程(史上最全:OpenFOAM、ParaView、OpenFOAM多版本共存)
  2. ps怎么一下选中多个图层_超实用!50个非常实用的PS快捷键命令大全分享
  3. high severity error mysql_pg将运行日志导入表中的方法及时区问题解决
  4. jsp获取当前时间存入mysql数据库_jsp获取当前时间插入Mysql数据库?
  5. 二叉树的锯齿形层序遍历Python解法
  6. python如何安装wordcloud_不知如何利用Python中wordcloud的安装和使用?这里手把手教你...
  7. mysql id会用完吗_数据库自增ID用完了会怎样?
  8. php判断是否为数字_PHP将英文数字转换为阿拉伯数字
  9. 计算机网络网关作用,默认网关的作用
  10. 干货总结:SPI总线详细要点