Codeforce821E Okabe and El Psy Kongroo
题解:可以推出DP式子,对每一条线段使用快速幂
#include <bits/stdc++.h> #define maxn 20 using namespace std; long long mod = 1e9+7, len=20, n, k, sta[110], en[110], c[110]; struct mat{long long m[maxn][maxn];//注意初始化mat friend operator*(mat a,mat b){mat d;memset(d.m, 0, sizeof(d.m));for(int i=0;i<len;i++)for(int j=0;j<len;j++)for(int k=0;k<len;k++)d.m[i][j] = (d.m[i][j]%mod+(a.m[i][k]*b.m[k][j])%mod)%mod;return d;} }; mat f(mat x,long long num){mat t;memset(t.m, 0, sizeof(t.m));for(int i=0;i<len;i++) t.m[i][i] = 1;while(num){if(num&1) t = t*x;x = x*x;num >>= 1;}return t; } int main(){int i,j;mat s, ss;memset(s.m, 0, sizeof(s.m));memset(ss.m, 0, sizeof(ss.m));s.m[0][0] = 1;for(i=0;i<len;i++)for(j=i-1;j<=i+1;j++)if(j>=0&&j<len)ss.m[i][j] = 1;cin>>n>>k;for(i=0;i<n;i++) cin>>sta[i]>>en[i]>>c[i];i = 0;while(i<n&&k>=en[i]){len = c[i]+1;s = s*f(ss, en[i]-sta[i]);i++;}len = c[i]+1;s = s*f(ss, k-en[i-1]);cout<<s.m[0][0]<<endl;return 0; }
转载于:https://www.cnblogs.com/Noevon/p/7102777.html
Codeforce821E Okabe and El Psy Kongroo相关推荐
- E.Okabe and El Psy Kongroo
传送门 E. Okabe and El Psy Kongroo time limit per test 2 seconds memory limit per test 256 megabytes in ...
- codeforce#420 E. Okabe and El Psy Kongroo(图论+矩阵快速幂)
题目链接 E. Okabe and El Psy Kongroo 分析 首先对于坐标为 (x,y)(x,y) 的点,设 f(x,y)f(x,y) 表示从原点到 (x,y)(x,y) 的路径不难得到递推 ...
- 【codeforces 821E】Okabe and El Psy Kongroo
[题目链接]:http://codeforces.com/problemset/problem/821/E [题意] 一开始位于(0,0)的位置; 然后你每次可以往右上,右,右下3走一步; (x+1, ...
- CF821 E. Okabe and El Psy Kongroo 矩阵快速幂
LINK 题意:给出$n$条平行于x轴的线段,终点$k$坐标$(k <= 10^{18})$,现在可以在线段之间进行移动,但不能超出两条线段的y坐标所夹范围,问到达终点有几种方案. 思路:刚开始 ...
- [CF 821E] Okabe and El Psy Kongroo
题目 洛谷 题意 给定一个二维坐标系和一些线段,求从 (0,0)(0,0)(0,0) 走到 (k,0)(k,0)(k,0) 的方案总数.若当前坐标为 (x,y)(x,y)(x,y),下一步可以拓展到 ...
- CF821E Okabe and El Psy Kongroo
一.题目 点此看题 好像某谷还没有翻译,建议翻译看看第一篇题解(还有一个提示比较重要) 二.解法 首先不考虑线段的限制,容易写出式子dp[i][j]=dp[i−1][j]+dp[i−1][j+1]+d ...
- CF821E 【Okabe and El Psy Kongroo】
首先我们从最简单的dp开始 \(dp[i][j]=dp[i-1][j]+dp[i-1][j+1]+dp[i-1][j-1]\) 然后这是一个O(NM)的做法,肯定行不通,然后我们考虑使用矩阵加速 \( ...
- cf 821E Okabe and El Psy Kongroo(矩阵快速幂)
链接:http://codeforces.com/problemset/problem/821/E 分析:由于有边界而且不同段边界还不同,直接算是不行的..k是1e18,dp也不行..用一个16维的向 ...
- EL PSY CONGROO
加粗样式 #include <bits/stdc++.h> using namespace std; int mod = 98319; vector<int> edge[100 ...
最新文章
- C语言 字符串和字符串数组动态分配及赋值
- boost 库 enable_shared_from_this 实现原理分析
- java lambda表达式详解_Java8新特性Lambda表达式详解
- 【转载】java读取.properties配置文件的几种方法
- Codeforces 313
- 动态规划求解装箱问题(洛谷P1049题题解,Java语言描述)
- charcoal editor installation
- 杭电1232(图—并查集)
- Andorid音频工具tinymix,tinyplay,tinycap使用
- Linux svn服务器自身回退版本
- Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)
- 怎样才能压缩PDF文件大小
- 怎么在自己的网站中插入网易云播放器
- 计算机网络常见协议英文全称
- 智慧城市的应用挑战,昇腾AI给出了新解法
- 用Word编辑论文的小经验(转)
- HBase 在滴滴出行的应用场景和最佳实践
- WMS多仓库调拨模块设计
- 阿里巴巴新手,如何入门,该从哪里开始学习-阿里巴巴学习--潭州阿里巴巴
- 易基因:染色质免疫共沉淀测序(ChIP-seq)的数据挖掘思路 |干货系列