题目链接 

题解链接

版权属于以上链接

#include <iostream>

#define mod(a, m) ((a) % (m) + (m)) % (m)

using namespace std;

typedef long long ll;

const int MAGIC = ;

ll n, k, l, m;

struct matrix
{
ll c[][];
} a; ll f[]; void ans_cf(matrix a)
{
f[] = mod(a.c[][] + a.c[][], m);
f[] = mod(a.c[][] + a.c[][], m);
} matrix matrix_cf(matrix a, matrix b)
{
matrix ans;
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
ans.c[i][j] = ;
for (int k = ; k < ; k++)
{
ans.c[i][j] += a.c[k][i] * b.c[j][k];
ans.c[i][j] = mod(ans.c[i][j], m);
}
}
} return ans;
} matrix matrix_pow(matrix a, ll n)
{
matrix ans;
ans.c[][] = ans.c[][] = ;
ans.c[][] = ans.c[][] = ;
while (n)
{
if (n & )
{
ans = matrix_cf(ans, a);
}
n = n >> ;
a = matrix_cf(a, a);
} return ans;
} ll qpow(ll a, ll b)
{
ll ans = ;
while (b)
{
if (b & )
{
ans = mod(ans * a, m);
}
b = b >> ;
a = mod(a * a, m);
} return ans;
} void init()
{
a.c[][] = a.c[][] = a.c[][] = ;
a.c[][] = ;
} int main(int argc, const char * argv[])
{
cin >> n >> k >> l >> m; unsigned long long t = 1ULL << l;
if (m == || (k >= t && l != MAGIC))
{
cout << << '\n';
return ;
} init();
a = matrix_pow(a, n);
ans_cf(a);
ll x = f[], y = mod(qpow(, n) - x, m); int cnt_0 = , cnt_1 = ;
while (k)
{
if (k % )
{
cnt_1++;
}
else
{
cnt_0++;
}
k >>= ;
}
cnt_0 += l - cnt_0 - cnt_1; ll ans = mod(mod(qpow(x, cnt_0), m) * mod(qpow(y, cnt_1), m), m);
cout << ans << '\n'; return ;
}

51Nod-1436 方程的解数的更多相关文章

  1. POJ 1186 方程的解数

    方程的解数 Time Limit: 15000MS   Memory Limit: 128000K Total Submissions: 6188   Accepted: 2127 Case Time ...

  2. 计蒜客 方程的解数 dfs

    题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...

  3. NOI2001 方程的解数

    1735 方程的解数 http://codevs.cn/problem/1735/ 2001年NOI全国竞赛  时间限制: 5 s  空间限制: 64000 KB     题目描述 Descripti ...

  4. [ NOI 2001 ] 方程的解数

    \(\\\) \(Description\) 已知一个 \(N\) 元高次方程: \[ k_1x_1^{p_1}+k_2x_2^{p_2}+...+k_nx_n^{p_n}=0 \] 要求所有的 \( ...

  5. cogs 304. [NOI2001] 方程的解数(meet in the middle)

    304. [NOI2001] 方程的解数 ★★☆   输入文件:equation1.in   输出文件:equation1.out   简单对比时间限制:3 s   内存限制:64 MB 问题描述 已 ...

  6. P5691 [NOI2001]方程的解数

    题意描述 方程的解数 求方程 \(\sum_{i=1}^{n}k_ix_i^{p_i}=0(x_i\in [1,m])\) 的解的个数. 算法分析 远古 NOI 的题目就是水 类似于这道题. 做过这道 ...

  7. [Swust OJ 166]--方程的解数(hash法)

    题目链接:http://acm.swust.edu.cn/problem/0166/ Time limit(ms): 5000 Memory limit(kb): 65535   有如下方程组: A1 ...

  8. 【poj1186】 方程的解数

    http://poj.org/problem?id=1186 (题目链接) 题意 已知一个n元高次方程:   其中:x1, x2,…,xn是未知数,k1,k2,…,kn是系数,p1,p2,…pn是指数 ...

  9. NOI2001 方程的解数(双向搜索)

    solution 一道非常经典的双向搜索题目,先将前3个未知数枚举一遍得到方程的前半部分所有可能的值,取负存入第一个队列中再将后3个未知数枚举一遍,存入第二个队列中.这样我们只要匹配两个队列中相同的元 ...

  10. 计蒜客 方程的解数(DFS)

    问题描述 输出格式 输出一行,输出一个整数,表示方程的整数解的个数. 样例输入 - 样例输出 #include <stdio.h> #include <string.h> #i ...

随机推荐

  1. PAT L2-001 紧急救援

    https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840 作为一个城市的应急救援队伍的负责人,你有一张 ...

  2. CSS响应式网站开发

    <html> <head> //当设备屏幕最大宽度小于1024px时加载如下CSS内容 @media screen and (max-width: 1024px){       ...

  3. 防止xss攻击。

    function htmlEscape(text){ return text.replace(/[<>&\"=]/g,function(match,pos,origina ...

  4. Oracle 的ORION工具简单使用

    1. 下载地址: http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html 2. linux x64 还有 windows的 ...

  5. ubuntu美化 mac风格

    安装tweak sudo apt install gnome-tweak-tool sudo apt install chrome-gnome-shell https://extensions.gno ...

  6. 流程控制之if判断,while循环,for循环

    if判断? 什么是if判断? 判断一个条件如果成立则做...不成立则... 为什么要有判断? 让计算机像人一样具备判断的能力 如何用if判断 if 条件1: code1    code2    cod ...

  7. JS中var声明与function声明两种函数声明方式的区别

    JS中常见的两种函数声明(statement)方式有这两种: // 函数表达式(function expression) var h = function() { // h } // 函数声明(fun ...

  8. CodeForces 464E The Classic Problem | 呆克斯歘 主席树维护高精度

    题意描述 有一个\(n\)点\(m\)边的无向图,第\(i\)条边的边权是\(2^{a_i}\).求点\(s\)到点\(t\)的最短路长度(对\(10^9 + 7\)取模). 题解 思路很简单--用主 ...

  9. emwin 解决在A窗口上新建B窗口后‘只激活’B窗口问题

    @2018-08-08 问题来源: 要实现A窗口上的参数修改,通过A窗口上新建的B窗口小键盘实现数据录入,但结果是只要点击A窗口上的任何地方(包括B窗口上的任意位置),则B窗口就消失了 解决办法: 使 ...

  10. bzoj4817/luogu3703 树点涂色 (LCT+dfs序+线段树)

    我们发现,这个染色的操作他就很像LCT中access的操作(为什么??),然后就自然而然地想到,其实一个某条路径上的颜色数量,就是我们做一个只有access操作的LCT,这条路径经过的splay的数量 ...