小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最后得到的黄金的数量.游戏规则是这样的:假设道路长度为米(左端点为,右端点为),同时给出一个数(下面会提到的用法)设小a初始时的黄金数量为,小b初始时的黄金数量为小a从出发走向,小b从出发走向,两人的速度均为假设某一时刻(必须为整数)小a的位置为,小b的位置为,若且,那么小a的黄金数量会变为,小b的黄金数量会变为当小a到达时游戏结束小a想知道在游戏结束时的值答案…
链接:https://ac.nowcoder.com/acm/contest/317/D 来源:牛客网 题目描述 小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最后得到的黄金的数量. 游戏规则是这样的: 假设道路长度为nn米(左端点为00,右端点为nn),同时给出一个数kk(下面会提到kk的用法) 设小a初始时的黄金数量为AA,小b初始时的黄金数量为BB 小a从11出发走向n−1n−1,小b从n−1n−1出…
题目链接:传送门 思路:欧拉函数的性质:前n个数的欧拉函数之和为φ(n)*n/2,由此求出结果. 参考文章:传送门 #include<iostream> #include<cmath> #include<cstdio> #include<cstring> using namespace std; typedef long long LL; ; LL POW(LL a,LL b) { LL ans=; while(b) { ) ans=ans*a%MOD; a…
链接:https://www.nowcoder.com/acm/contest/181/F来源:牛客网 题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘积相乘的结果 输入描述: 第一行一个整数T,表示数据组数.对于每组数据,第一行两个整数N,k,含义如题所示 接下来一行N个整数,表示给出的序列 保证序列内的数互不相同 输出描述: 对于每组数据,输出一个整数表示答案,对 取模每组数据之间以换行分割 输入例子: 3 4 3 5 3 1 4 5 4 3…
题意: 给定$x_0,x_1,a,b,n,mod, x_i=a*x_{i-1}+b*x_{i-2}$ ,求$x_n % mod$ n最大有1e6位 题解: 矩阵快速幂. 巨大的n并不是障碍,写一个十进制的矩阵快速幂就行了. $ \begin{bmatrix}x_n \\ x_{n-1} \end{bmatrix}=\begin{bmatrix}a &b \\ 1 &0 \end{bmatrix} *\begin{bmatrix}x_{n-1} \\ x_{n-2} \end{bmatrix…
题目地址:https://www.nowcoder.com/acm/contest/136/F 树状数组.快速幂.逆元的模板运用: #include<iostream> #include<cstdio> using namespace std; #define LL long long #define lowbit(x) x&-x ; ; int n, m; LL sum[N]; void read(int &x) { ; x = ; char ch = getch…
目录 题目链接 思路 代码 题目链接 传送门 思路 十进制矩阵快速幂. 代码 #include <set> #include <map> #include <deque> #include <queue> #include <stack> #include <cmath> #include <ctime> #include <bitset> #include <cstdio> #include &l…
B - generator 1 题意 给你\(x_{0}.x_{1}.a.b.b.mod\),根据\(x_{i} = a*x_{i-1} + b*x_{i-2}\)求出\(x_{n}\) 思路 一般看到这种题就会想到矩阵快速幂,但是这次的\(n\)太大了,所以要用十进制倍增来算,但是单单用十进制倍增来算应该还会\(TLE\),然后就要用二进制倍增来优化了. 我们要先求出矩阵快速幂的通项式 \[ \begin{pmatrix}x_{n+1} \\x_{n}\end{pmatrix}= \begin…
参考:http://blog.csdn.net/qq_33229466/article/details/70174227 看这个等式的形式就像高精gcd嘛-所以随便算一下就发现每次修改(a,b)影响到的都是横纵坐标gcd为gcd(a,b)的,进而发现可以把gcd(i,j)==d的一部分都归到d上,f(a,b)=f(d,d)ab/d/d ,这样二维就变成一维了,设为f. 然后答案就是: \[ ans=\sum_{d=1}^{k}f(d)\sum_{i=1}^{k}\sum_{j=1}^{k}[gc…
Problem 1 [题目大意] 给出 多组数据 ,给出  求出 . 题解 证明:  除了 以为均为偶数, 所以互质的个数成对. 由 得 . 所以对于每对的和为 , 共有 对 . 则 Problem 2 [题目大意] 在第一个圆上写入  ,在第二个圆上写入 ,此后每一次在前一个圆的基础上,每两个数之间写上他们的和,定义 为第i个圆中数字i的个数. 给出 ,求 . 题解 证明: 则 ,圆中的数字相邻两两互质. 对于一个数字 只可能由与他互质的两个数 相加而成并且每一种构造方法是唯一的. 所以 .…