(留坑)

/*
不知道为什要找的循环节TM这么长
*/
#include<cstdio>
#include<cstdlib>
#include<cstring> using namespace std; #ifdef unix
#define LL "%lld"
#else
#define LL "%I64d"
#endif const int maxn=;
const long long mo=;
const long long mo2=mo*+;
const long long mo3=mo2*; char s[maxn]; struct matrix
{
long long z[][];
matrix()
{
memset(z,,sizeof(z));
}
matrix operator*(const matrix &a)const
{
matrix ans;
for (int b=;b<=;b++)
for (int c=;c<=;c++)
for (int d=;d<=;d++)
ans.z[b][c]=(ans.z[b][c]+z[b][d]*a.z[d][c]%mo)%mo;
return ans;
}
matrix operator+(const matrix &a)const
{
matrix ans;
for (int b=;b<=;b++)
for (int c=;c<=;c++)
for (int d=;d<=;d++)
ans.z[b][c]=(ans.z[b][c]+z[b][d]*a.z[d][c]%mo2)%mo2;
return ans;
}
}m1,m2; struct bign
{
int z[maxn],l;
void init()
{
memset(z,,sizeof(z));
scanf("%s",s+);
l=strlen(s+);
for (int a=;a<=l;a++)
z[a]=s[l-a+]-'';
}
long long operator%(const long long &a)const
{
long long b=;
for (int c=l;c>=;c--)
b=(b*+z[c])%a;
return b;
}
}z; long long get(long long v)
{
if (v==) return ;
m1.z[][]=;
m1.z[][]=;
m2.z[][]=;
m2.z[][]=m2.z[][]=m2.z[][]=;
while (v)
{
if (v&) m1=m1*m2;
m2=m2*m2;
v>>=;
}
return m1.z[][];
} long long get1(long long v)
{
if (v==) return ;
m1.z[][]=;
m1.z[][]=;
m2.z[][]=;
m2.z[][]=m2.z[][]=m2.z[][]=;
while (v)
{
if (v&) m1=m1+m2;
m2=m2+m2;
v>>=;
}
return m1.z[][];
} int main()
{
freopen("na.in","r",stdin);
freopen("na.out","w",stdout); int t;
scanf("%d",&t);
for (int a=;a<=t;a++)
{
z.init();
long long v1=z % mo3;
v1=get1(v1);
printf(LL "\n",get(v1));
} return ;
}

清北国庆day1 (脑)残的更多相关文章

  1. 清明培训 清北学堂 DAY1

    今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#in ...

  2. 4.4清北学堂Day1 主要内容:数论,数学

    Day 1; 1.常见的高精 输入输出都用字符数组: 字符数组的实际长度用strlen()来求: 运算时倒序运算,把每一个字符都-‘0’ 进位的处理上也要注意: 小数减大数时先判断大小然后加负号 只能 ...

  3. 五一培训 清北学堂 DAY1

    今天是冯哲老师的讲授~ 1.枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素. 用题目中给定的检验条件判定哪些是无用的,哪些是有用的.能使命题成立的即为其解. 例一一棵苹果树上有n ...

  4. 清北合肥day1

    题目: 1.给出一个由0,1组成的环 求最少多少次交换(任意两个位置)使得0,1靠在一起 n<=1000 2.两个数列,支持在第一个数列上区间+1,-1 每次花费为1 求a变成b的最小代价 n& ...

  5. 2017 五一 清北学堂 Day1模拟考试结题报告

    预计分数:100+50+50 实际分数:5+50+100 =.= 多重背包 (backpack.cpp/c/pas) (1s/256M) 题目描述 提供一个背包,它最多能负载重量为W的物品. 现在给出 ...

  6. 2017.10.1 国庆清北 D1T1 zhx的字符串题

    题目背景 2017国庆清北D1T1 题目描述 你是能看到第一题的 friends 呢. ——hja 何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为 字符串定义了新的权值计算方法 ...

  7. 清北学堂 2020 国庆J2考前综合强化 Day7

    目录 1. 题目 T1 魔力石 题目描述 Sol T2 和 题目描述 Sol T3 数对 题目描述 Sol T4 海豹王国 题目描述 Sol 考场策略 1. 题目 T1 魔力石 题目描述 题目描述 小 ...

  8. 清北Day4

    版权声明:如需转载请标明出处,未得到本人许可请勿转载. 今天就可以看到传说中的 数据结构 嘿嘿嘿嘿 都有什么呢 链表 队列 栈 st表 hash 线段树 树链剖分 一.栈: 放出来这个看烂了的图 值得 ...

  9. 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)

    清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描 ...

随机推荐

  1. Windows_7_休眠按钮没有了_如何找回?

    1. 在运行中输入:   powercfg -h on或者在命令行下输入:   powercfg.exe /hibernate on注意:执行这个命令需要管理员权限. “休眠”回来了   2. 还是没 ...

  2. 如何解决Response.Redirect方法传递汉字丢失或乱码问题?

    为了确保传递的汉字被正确地接收,可以在传值之前使用Server对象的UrlEncode方法对所传递的汉字进行URL编码.代码如下: String name = Server.UrlEncode(&qu ...

  3. POJ 2785 4 Values whose Sum is 0(想法题)

    传送门 4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 20334   A ...

  4. 网络存储(三)之ISCSI搭建的入门

    搭建iscsi 我们就拿两台linux服务器来做吧, 服务器系统均为CentOs6.6 64位的,信息如下 IP 安装的软件 192.168.22.142 iscsi target端:scsi-tar ...

  5. jquery 图片浏览功能实现

    效果展示: HTML代码: <div id="no3"> <img src="./img/last.png" id="last&qu ...

  6. WinForm------字段不能为空错误

    错误信息: "System.Data.ConstraintException"类型的异常在 EntityFramework.dll 中发生,但未在用户代码中进行处理 其他信息: T ...

  7. Linux下interface文件修改

    我们来通过一些例子,来记录interfaces文件的书写.详情可参照man interfaces. 设置常用ethernet参数 auto lo iface lo inet loopback # Th ...

  8. docker快速启动脚本

    #!/bin/sh PID=$(docker inspect --format "{{.State.Pid}}" $1) nsenter -t $PID -u -i -n -p n ...

  9. 斗鱼的sidebar的实现简陋的demo

    斗鱼的sidebar的实现简陋的demo <!DOCTYPE html> <html> <head lang="en"> <meta ch ...

  10. js获取某个ID的class名称

    .HTML结构 <div id = "test" class="test_class">我的类名为test_class</div> &l ...