Nowcoder 北师校赛 B 外挂使用拒绝 ( k次前缀和、矩阵快速幂打表找规律、组合数 )

时间:2022-06-26 09:09:08

题目链接

题意 : 中文题、点链接

分析 :

有道题是问你不断求前缀和后的结果 Click here

这道题问的是逆过程

分析方法雷同、可参考 Click here

--------------------------------------------------------------------------------

正着做的矩阵是一个下三角

1 0 0 0

1 1 0 0

1 1 1 0

1 1 1 1

结合杨辉三角可得

C(k, 0)

C(k+1, 1)      C(k, 0)

C(k+2, 2)      C(k+1, 1)      C(k, 0)

C(k+3, 3)      C(k+2, 2)      C(k+1, 1)     C(k, 0)

......

--------------------------------------------------------------------------------

逆过程是这样一个矩阵

1    0    0    0

-1    1    0    0

0   -1    1    0

0    0   -1    1

结合杨辉三角可得

A[i][j] = (-1)^(i-j) * C(k, i-j)

#include<bits/stdc++.h>
#define LL long long
#define ULL unsigned long long

#define scl(i) scanf("%lld", &i)
#define scll(i, j) scanf("%lld %lld", &i, &j)
#define sclll(i, j, k) scanf("%lld %lld %lld", &i, &j, &k)
#define scllll(i, j, k, l) scanf("%lld %lld %lld %lld", &i, &j, &k, &l)

#define scs(i) scanf("%s", i)
#define sci(i) scanf("%d", &i)
#define scd(i) scanf("%lf", &i)
#define scIl(i) scanf("%I64d", &i)
#define scii(i, j) scanf("%d %d", &i, &j)
#define scdd(i, j) scanf("%lf %lf", &i, &j)
#define scIll(i, j) scanf("%I64d %I64d", &i, &j)
#define sciii(i, j, k) scanf("%d %d %d", &i, &j, &k)
#define scddd(i, j, k) scanf("%lf %lf %lf", &i, &j, &k)
#define scIlll(i, j, k) scanf("%I64d %I64d %I64d", &i, &j, &k)
#define sciiii(i, j, k, l) scanf("%d %d %d %d", &i, &j, &k, &l)
#define scdddd(i, j, k, l) scanf("%lf %lf %lf %lf", &i, &j, &k, &l)
#define scIllll(i, j, k, l) scanf("%I64d %I64d %I64d %I64d", &i, &j, &k, &l)

#define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1
#define lowbit(i) (i & (-i))
#define mem(i, j) memset(i, j, sizeof(i))

#define fir first
#define sec second
#define VI vector<int>
#define ins(i) insert(i)
#define pb(i) push_back(i)
#define pii pair<int, int>
#define VL vector<long long>
#define mk(i, j) make_pair(i, j)
#define all(i) i.begin(), i.end()
#define pll pair<long long, long long>

#define _TIME 0
#define _INPUT 0
#define _OUTPUT 0
clock_t START, END;
void __stTIME();
void __enTIME();
void __IOPUT();
using namespace std;
;
;

LL arr[maxn];
LL A[maxn][maxn];
LL Comb[maxn];
LL inv[maxn];

inline void inv_init()
{
    inv[] = inv[] = ;
    ; i<maxn; i++)
        inv[i] = (LL)(mod - mod / i) * inv[mod % i] % mod;
}

int main(void){__stTIME();__IOPUT();

    inv_init();

    int n, k;
    int nCase;

    sci(nCase);
    while(nCase--){
        scii(n, k);

        LL tmp = ;
        Comb[] = 1LL;
        ; i<=min(k, n); i++){
            Comb[i] = Comb[i-]%mod;
            Comb[i] = ( Comb[i] * (k-i+) ) % mod;
            Comb[i] = ( Comb[i] * inv[i] ) %mod;
        }

        ; i<=n; i++) scl(arr[i]);
        ; i<=n; i++){
            ; j<=i; j++){
                if(i-j > k){
                    A[i][j] = 0LL;
                    continue;
                }

                ) A[i][j] = -1LL;
                else A[i][j] = 1LL;

                A[i][j] = ( ( (A[i][j] * Comb[i-j])%mod) + mod) % mod;
            }
        }

        ; i<=n; i++){
            LL ans = ;
            ; j<=n; j++)
                ans = ((ans + (A[i][j] * arr[j])%mod + mod)%mod)%mod;
            printf("%lld", ans%mod);
            if(i != n) putchar(' ');
        }puts("");
    }

__enTIME();;}

void __stTIME()
{
    #if _TIME
        START = clock();
    #endif
}

void __enTIME()
{
    #if _TIME
        END = clock();
        cerr<<"execute time = "<<(double)(END-START)/CLOCKS_PER_SEC<<endl;
    #endif
}

void __IOPUT()
{
    #if _INPUT
        freopen("in.txt", "r", stdin);
    #endif
    #if _OUTPUT
        freopen("out.txt", "w", stdout);
    #endif
}

Nowcoder 北师校赛 B 外挂使用拒绝 ( k次前缀和、矩阵快速幂打表找规律、组合数 )的更多相关文章

  1. Nowcoder 练习赛 17 C 操作数 &lpar; k次前缀和、矩阵快速幂打表找规律、组合数 &rpar;

    题目链接 题意 :  给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. ...

  2. &OpenCurlyDoubleQuote;盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&amp&semi;&amp&semi;源码【A&comma;水&comma;B&comma;水&comma;C&comma;水&comma;D&comma;快速幂&comma;E&comma;优先队列&comma;F&comma;暴力&comma;G&comma;贪心&plus;排序&comma;H&comma;STL乱搞&comma;I&comma;尼姆博弈&comma;J&comma;差分dp&comma;K&comma;二分&plus;排序&comma;L&comma;矩阵快速幂&comma;M&comma;线段树区间更新&plus;Lazy思想&comma;N&comma;超级快速幂&plus;扩展欧里几德&comma;O&comma;BFS】

    黑白图像直方图 发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M 描述 在一个矩形的灰度图像上,每个 ...

  3. NowCoder数列(矩阵快速幂变式)

    时间限制 3000 ms 内存限制 32768 KB 代码长度限制 100 KB 题目描述 NowCoder最近在研究一个数列: * F(0) = 7 * F(1) = 11 * F(n) = F(n ...

  4. 2019-ACM-ICPC-沈阳区网络赛-K&period; Guanguan&&num;39&semi;s Happy water-高斯消元&plus;矩阵快速幂

    2019-ACM-ICPC-沈阳区网络赛-K. Guanguan's Happy water-高斯消元+矩阵快速幂 [Problem Description] 已知前\(2k\)个\(f(i)\),且 ...

  5. 2019牛客暑期多校训练营(第五场)- B generator 1 (齐次线性递推&plus;矩阵快速幂)

    题目链接:https://ac.nowcoder.com/acm/contest/885/B 题意:已知齐次线性式xn=a*xn-1+b*xn-2,已知a,b,x0,x1,求xn,n很大,n<= ...

  6. 2019 牛客暑期多校 B&Tab;generator 1 (矩阵快速幂&plus;倍增)

    题目:https://ac.nowcoder.com/acm/contest/885/B 题意:给你x0,x1,让你求出xn,递推式时xn=a*xn-1+b*xn-2 思路:这个n特别大,我自己没有摸 ...

  7. &lbrack;BNUZOJ1261&rsqb;&lbrack;ACM&rsqb;&lbrack;2016北理校赛&rsqb;方块消除&lpar;栈&comma;字符串&rpar;

    玩过方块消除游戏吗?现在规定当有两个或两个以上相邻且颜色相同的方块在一起的时候,它们就会产生消除反应.当存在多个消除反应同时产生时,最下的反应先执行.现在只给你其中一列,求最后剩下的方块结果. 输入要 ...

  8. 北邮校赛 I&period; Beautiful Array(DP)

    I. Beautiful Array 2017- BUPT Collegiate Programming Contest - sync 时间限制 1000 ms 内存限制 65536 KB 题目描述 ...

  9. 北邮校赛 H&period; Black-white Tree (猜的)

    H. Black-white Tree 2017- BUPT Collegiate Programming Contest - sync 时间限制 1000 ms 内存限制 65536 KB 题目描述 ...

随机推荐

  1. php sprintf 函数的用法

    sprintf() 函数把格式化的字符串写入变量中. arg1.arg2.++ 参数将被插入到主字符串中的百分号(%)符号处.该函数是逐步执行的.在第一个 % 符号处,插入 arg1,在第二个 % 符 ...

  2. python之初级学习

    一.python安装 1.下载安装包(本人使用python3.5.1) https://www.python.org/downloads/ 2.安装python-3.5.1.exe 本人下载的是pyt ...

  3. Apache Shiro &lpar;一&rpar;

    参考博客: http://jinnianshilongnian.iteye.com/blog/2018398 1.shiro简介 Apache shiro 是一个JAVA框架,可用于身份难和授权.sh ...

  4. 【转】知道创宇研发技能表v2&period;1

    转自:http://blog.knownsec.com/Knownsec_RD_Checklist/v2.1.html# 知道创宇研发技能表v2.1 创建时间:2012/12/1 2013/4/26 ...

  5. PHP版根据经纬度和半径计算出经纬度的范围

    百度地图提供了范围搜索的功能,但是它使用的是百度自己的数据,但是有时候我们需要使用自己的数据,显示在地图上.比如给定两个参数:指定位置(某一处的经纬度lnglat)和搜索半径(r),搜索指定范围内的数 ...

  6. DataGrid&lpar; 数据表格&rpar; 组件&lbrack;9&rsqb;

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  7. HDU 1541 Stars (树状数组)

    Problem Description Astronomers often examine star maps where stars are represented by points on a p ...

  8. InnoDB表要建议用自增列做主键

    InnoDB引擎表是基于B+树的索引组织表(IOT): 每个表都需要有一个聚集索引(clustered index): 所有的行记录都存储在B+树的叶子节点(leaf pages of the tre ...

  9. linux zabbix监控服务器搭建

    搭建Zabbix监控服务器 准备运行环境(lamp) [root@zhuji1 ~]# yum -y install httpd [root@zhuji1 ~]# yum -y install php ...

  10. WC2019游记

    本来不打算写游记的,但后来想了想这么一次难忘的经历总该留下点痕迹吧...... DAY-1 走之前的最后一天,因为前一天晚上打了CF,所以早上9点才到机房.写了一道圆方树深深地体会到了来自仙人掌的恶意 ...