bzoj 4002: [JLOI2015]有意义的字符串
这个题。。。
1 #include <bits/stdc++.h> 2 #define rep(i, a, b) for (int i = a; i <= b; i++) 3 #define drep(i, a, b) for (int i = a; i >= b; i--) 4 #define REP(i, a, b) for (int i = a; i < b; i++) 5 #define mp make_pair 6 #define pb push_back 7 #define clr(x) memset(x, 0, sizeof(x)) 8 #define xx first #define yy second 9 using namespace std; 10 typedef pair<int, int> pii; 11 typedef unsigned long long ll; 12 const int inf = 0x3f3f3f3f; 13 const ll INF = 0x3f3f3f3f3f3f3f3fll; 14 //************************************************ 15 16 const ll mod = 7528443412579576937LL; 17 ll mul(ll base, ll num) { 18 ll ret(0); 19 while (num) { 20 if (num & 1) ret = (ret + base) % mod; 21 base = (base + base) % mod; 22 num >>= 1; 23 } 24 return ret; 25 } 26 struct matrix { 27 ll s[3][3]; matrix () { clr(s); } 28 matrix operator * (const matrix &B) const { 29 matrix A = *this, C; 30 rep(i, 1, 2) rep(j, 1, 2) rep(k, 1, 2) 31 C.s[i][j] = (C.s[i][j] + mul(A.s[i][k], B.s[k][j]) % mod) % mod; 32 return C; 33 } 34 } ori; 35 36 matrix POW(matrix base, ll num) { 37 matrix ret = ori; 38 while (num) { 39 if (num & 1) ret = ret * base; 40 base = base * base; 41 num >>= 1; 42 } 43 return ret; 44 } 45 46 int main() { 47 ll b, d, n; scanf("%llu%llu%llu", &b, &d, &n); 48 ll a = b, c = (d - b * b) >> 2; 49 ori.s[1][1] = ori.s[2][2] = 1; 50 matrix base; base.s[1][1] = a, base.s[2][1] = c, base.s[1][2] = 1; 51 matrix ans; 52 ans.s[1][2] = 2, ans.s[1][1] = b; 53 ans = ans * POW(base, n); 54 if (d != b * b && n % 2 == 0) ans.s[1][2]--; 55 printf("%llu\n", ans.s[1][2]); 56 }
View Code
转载于:https://www.cnblogs.com/y7070/p/5183768.html
bzoj 4002: [JLOI2015]有意义的字符串相关推荐
- bzoj 4002: [JLOI2015]有意义的字符串(特征根法+矩阵快速幂)
4002: [JLOI2015]有意义的字符串 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 960 Solved: 415 [Submit][S ...
- BZOJ 4002--有意义的字符串(矩阵乘法)
4002: [JLOI2015]有意义的字符串 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 963 Solved: 416 [Submit][S ...
- 【BZOJ】4084: [Sdoi2015]双旋转字符串 哈希
传送门:bzoj4084 题解 题面非常坑!!! 要求的是Si+TjSi+TjS_i+T_j,但实际上任意Tj+SiTj+SiT_j+S_i也可以算. AC的程序跑出的两组数据: input: 1 1 ...
- JLOI2015 解题报告
JLOI2015 真的不愧是NOI出题组出的,题目难度够吊.不过每一道都是结论题和乱搞题真的很不好玩... T1:[JLOI2015]有意义的字符串 首先贴下popoqqq的blog吧 感性的认识就是 ...
- 【整理】有待完成的题目
mobius反演 bzoj2154Crash的数字表格 bzoj2693jzptab bzoj2440[中山市选2011]完全平方数 bzoj3994[SDOI2015]约数个数和 bzoj3930[ ...
- 零基础入门学习Python(13)-字符串
字符串和元组是非常相似的,一旦被定义就不能被轻易修改 非要修改可以用切片和连接符 这样旧的字符串str1还在哦,赋值之后才会覆盖哦,python的垃圾回收机制过会就会把没有标签指向的字符串剔除 字符串 ...
- r 字符串转化为数值_Lua 字符串处理
今天项目中遇到一个字符串处理的通用函数,一时不明白胡乱搜索后才发现原来是字符串处理库里面的通用函数,想着该理一遍字符串. 这个库提供了字符串处理的通用函数.例如字符串查找,子串,模式匹配等.当在Lua ...
- 重温CLR(十) 字符、字符串和文本处理
本章将介绍.net中处理字符和字符串的机制 字符 在.NET Framewole中,字符总是表示成16位Unicode代码值,这简化了国际化应用程序的开发. 每个字符都表示成System.Char结构 ...
- lua如何打印行号_Lua 字符串处理
今天项目中遇到一个字符串处理的通用函数,一时不明白胡乱搜索后才发现原来是字符串处理库里面的通用函数,想着该理一遍字符串. 这个库提供了字符串处理的通用函数.例如字符串查找,子串,模式匹配等.当在Lua ...
最新文章
- 通向未来:物联网+人工智能将成为人类的进化方向
- python的GUI库PyQt5的使用
- MSSQL-字符串分离与列记录合并成一行混合使用
- [react] 写一个react的高阶组件并说明你对高阶组件的理解
- Ubuntu14.04如何使用root登录
- 汉王拉开人脸识别产业化大幕 市场应用前景广阔
- Linux设备驱动程序学习(2)-调试技术
- 最佳黑色背景的Visual Studio 2005/2008配置-尤其适合开发人员使用
- Activity的任务栈Task以及启动模式与Intent的Flag详解
- mysql 数据库内存不足_MySQL数据库内存不足怎么办 MySQL数据库使用教程
- 基于 Amazon SageMaker 利用 MONAI 处理医疗影像数据实践
- A-priori算法的简单实现
- 思科ccna认证怎么样关于思科ccnaDLSW技术简述
- Cisco测试命令和TCP/IP连接故障处理整理集合
- group by 和where可以一起使用吗
- laravel laravel-admin 语言包的问题 trans('demo.user_not_exists'); trans(admin::passwords.password);
- API接口名称(item_get - 根据ID取商品详情)[item_search,item_get,item_search_shop等]
- android 短视频编辑,短视频编辑制作大师
- 转:MATLAB2018b
- 删除网络共享连接凭据的两种方法
热门文章
- WPF如何给窗口设置透明png的图片背景
- Android 用MediaCodec ,MediaExtractor解码播放MP4文件
- linux钩子函数和回调函数,Linux Kernel 学习笔记10:hook函数
- 程序分身:根据不同程序名执行不同函数
- GBK转unicode码查询表的改进
- 【jvm】jvisualvm 离线下载安装插件
- 95-30-010-Broker- Broker上线下线
- 【Elasticsearch】使用真实内存断路器提高节点弹性
- [Elasticsearch] es 6.8 编译成功
- 【Guava】Guava Cache的refresh和expire刷新机制