2020多校第一场1005

【2020CCPC网络赛】1005 Lunch(HDU6892) 题目链接 大致题意 有 nnn 堆石头,每堆有 mim_imi​ 个石头,两个人轮流进行操作,如果有谁不能操作了,则游戏结束 而操作为:选择其中一个堆,将这个堆的分为 t(t≠1)t(t \neq 1)t(t​=1) 堆,且每堆的石头数量相同 思路 交换胜负手的关键 考虑石头个数为 8 的情况 石头个数为 888 的时候,可以做如下拆分 个数 值 直接转为 1 还需要几次操作 2 4 2 4 2 4 8 1 0 可以注意到,888 只能拆出偶数个值,当然这与它的质因数只有 22 阅读详情

思路

利用斐波拉契数列的通项公式。
先利用二次剩余和逆元得出三个常数。
将式子多项式展开,发现等比数列的规律。
遍历k,等比求和,用逆元求组合数。

代码

#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;
typedef long long LL;
const int N = 100005;
const LL MOD = 1000000009;

LL fac[N],A[N],B[N];

void Init()
{
    fac[0] = 1;
    for(int i=1; i<N; i++)
        fac[i] = fac[i-1] * i % MOD;
    A[0] = B[0] = 1;
    for(int i=1; i<N; i++)
    {
        A[i] = A[i-1] * 691504013 % MOD;
        B[i] = B[i-1] * 308495997 % MOD;
    }
}

LL quick_mod(LL a,LL b,LL MOD)
{
    LL ans = 1;
    a %= MOD;
    while(b)
    {
        if(b & 1)
        {
            ans = ans * a % MOD;
            b--;
        }
        b >>= 1;
        a = a * a % MOD;
    }
    return ans;
}

LL Solve(LL n,LL k)
{
    LL ans = 0;
    for(int r=0; r<=k; r++)
    {
        LL t = A[k-r] * B[r] % MOD;
        LL x = fac[k];
        LL y = fac[k-r] * fac[r] % MOD;
        LL c = x * quick_mod(y,MOD-2,MOD) % MOD;
        LL tmp = t * (quick_mod(t,n,MOD) - 1) % MOD * quick_mod(t-1,MOD-2,MOD) % MOD;
        if(t == 1) tmp = n % MOD;
        tmp = tmp * c % MOD;
        if(r & 1) ans -= tmp;
        else      ans += tmp;
        ans %= MOD;
    }
    LL m = quick_mod(383008016,MOD-2,MOD);
    ans = ans * quick_mod(m,k,MOD) % MOD;
    ans = (ans % MOD + MOD) % MOD;
    return ans;
}

int main()
{
    int T;
    LL n,k;
    Init();
    scanf("%d",&T);
    while(T--)
    {
        cin>>n>>k;
        cout<<Solve(n,k)<<endl;
    }
    return 0;
}
地平线天工开物AI开发平台实战:从量化训练到模型部署的完整指南 本文提供了地平线天工开物(OpenExplorer)AI开发平台的实战指南,详细解析了从量化训练到模型部署的完整流程。文章重点对比了量化感知训练(QAT)与训练后量化(PTQ)两条核心路径的优劣与适用场景,并分享了图像分类模型PTQ部署的实战经验与常见问题调试技巧,旨在帮助开发者高效地将AI模型部署到地平线AI芯片上。 阅读详情

相关推荐

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 447

2020杭电多校第一场部分题解(1004, 1005, 1006, 1009, 1011)

1004 Distinct Sub-palindromes 前置知识点:无 题意:问本质不同的回文子串个数最少的长度为n的字符串有多少种,答案对1e9+7取模 解题思路:其实是一个思维题,先考虑n很大的时候,如果是如abcabc…这样排列,本质不同的回文子串个数就是3,稍微画一画会当n>=4的时候本质不同回文子串个数不可能小于3个,而如果是3个就最多有3个字母. 当是3个字母的时候,肯定不可以有相邻的相同字母,也不能有一个位置左右两边是同一个字母,那么就只能是abcabc……这种形式了。所以n&gt

积极的防守者的博客 1679

剑灵解包器修改xml.dat文件修改乳量方法

本篇内容是基于单机版网游改单机版游戏剑灵的内容,主要针对关于单机版进行数据修改,当然了对于网端有关于剑灵已有很多,像小助手等多种可以更改,但是存在有封号危险,好,下面我们是在单机版中来进行乳量的修改教程。

灵魂学者的博客 3313

杭电多校第一场1005 path(最大流)

题意为给定一个有向图,删掉一条边的代价为边权,要求以尽可能少的总代价删掉一些 边,使得最短路增加。 先求出最短路,然后保留所有满足 dey −dex = ew 的边,对于新的图求 1 到 n 的最小 割即为答案。 #include<iostream> #include<cstring> #include<cstdio> #include<queue>...

zufesatoshi的博客 219

01-SA8155P 冷启动强制进入EDL模式

冷启动EDL模式

静虚待令,有物混成 3090

Win11显卡驱动安装失败的全面解决方案

Windows 11显卡驱动安装失败是一个比较常见的问题,但通过上述方法,我们可以有效地解决这一问题。方法一通过调整组策略编辑器的驱动程序安装策略,可能解决一些因签名问题导致的安装失败;而方法二则通过重装Windows 11系统,为系统提供一个全新的、干净的环境,从而可能解决更复杂的安装问题。在实际操作中,用户可以根据具体情况选择合适的方法来解决显卡驱动安装失败的问题。

nntxthml的博客 2662

杭电多校第一场05 杭电6755:Fibonacci Sum【斐波那契通项公式】

题目 事先说一下:我是多校的时候ac的,比赛一停就当场换机子了,赛时是1800ms过的,赛后就TLE了,自己加速一下。 题目就是求斐波那契的: 这个题我和队友思索了很长时间,从各种性质到代换式子都不能解决。然后最后一点时间刚一下通项公式就做出来了。 通项公式:Fn=(5)5∗((1+(5)2)n+(1−(5)2)n)F_n=\frac {\sqrt(5)}{5}*((\frac{1+\sqrt(5)}{2})^n+(\frac{1-\sqrt(5)}{2})^n)Fn​=5(​5)​∗((21+(​5)​

DevourPower的博客 713

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

2020 HDU多校赛第一场

在多校赛开始的前一天晚上看到了这么一条消息,我就知道这第一场比赛肯定不简单了。 果不其然。今天多校又是罚坐的一天。在开局了一个多小时后,大部分才A了一道题。 最后靠着队友才过了两题。 1004 Distinct Sub-palindromes 要求组一个长度为n的字符串。要求子回文串要尽可能的少。 这题的题面太具有迷惑性。明明结果最大也才26*25*24。还说最后结果要取模。 一开始以为长度为n的字符串,子回文串个一定是n,那么最后结果就是26^n。但是看到一群人wa了之后。就像事情没这么简单。 后

江小举的博客 2613

AUTOSAR-SOMEIP配置总结

导入arxml之后someip信号一般以“pduSomeIp”开头或者“SomeIp”开头。以某个pdu为例,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。在导入arxml之后someip信号中有三个特殊的信号,形如“SdInstance”开头的信号,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。“EcuC”模块主要关注“EcucPduCollection”中的“Pdus”下面的配置。

xiandang8023的博客 4654

uni-app - 修改默认端口,H5 项目控制台运行出来的 IP 地址的默认端口号(H5 项目运行后控制台,修改项目运行到内置浏览器默认 8080 端口号)

uni-app运行到H5修改默认端口号,uni-app如何修改默认端口,uni-app修改默认端口,uni-app本地运行修改调试已上线微信H5项目,请问在UNIAPP的H5运行调试时候的IP是否可以自己设置固定,uni-app开发环境,如何设置h5服务器的端口,uni-app如何修改默认端,uni-app修改默认端口,uni-app指定端口号,uni-app-修改H5项目控制台运行出来的IP地址的默认端口号(H5项目运行后控制台,修改项目运行到内置浏览器默认8080端口号)

🏆 前端领域优质创作者 9887

2020杭电多校赛 Multi-University Training Contest

文章目录2020杭电多校赛 Multi-University Training Contest 2020杭电多校赛 Multi-University Training Contest

打过ICPC/CCPC,学习ACM算法,Linux内核,Openharmony,加油努力开心珍惜 6432

AUTOSAR进阶图解==>AUTOSAR_SWS_ADCDriver

本文深入解析了AUTOSAR ADC Driver的架构设计和技术实现。主要内容包括:1)ADC Driver在AUTOSAR分层架构中的定位及核心功能;2)详细的模块架构设计,涵盖初始化管理、组转换管理、优先级处理等核心子组件;3)全面的配置模型说明,包括主配置类、通用配置、通道配置等关键数据结构;4)状态机机制和操作序列分析。通过分层设计和标准化接口,ADC Driver实现了硬件抽象和软件解耦,提供了良好的可移植性和可维护性。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 786

HDU 2020 多校第一场 游记

和邓老师、戴老师,以及 JS A 队爷 lqs2015 四排了一场多校,感觉很爽。 可惜的一点就是 1012 的精度问题,最后都没过,说不定是数据问题呢(大嘘)……不然就是 8 题队了。 还有一个可惜的一点就是 1010 djq 的做法被卡常了,也是有点可惜吧。 大概整理一下题目(有些难题未完待续)。 1013 Cookies 链接 吐槽 被邓老师开场秒了 orz……一血 题解 强行二合一题,显然二分可以直接算出第 kkk 个(也可以线性直接算,不过无所谓了),唯一的难度在于求 fff。 好像目前没发现啥好

WAautomaton的博客 868

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

2020 HDU多校联合训练

最后一次参加多校赛了,一定要好好珍惜啊qwq。

Panda_Hu's blog 577

2020HDU多校第一场

1004 推结论 #include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define fi first #define se second typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> PII; typedef pair<ll, ll> pll

Karmen Yang 303

2020杭电多校第一场

1004.Distinct Sub-palindromes 签到 #include<bits/stdc++.h> using namespace std; #define ll long long #define pi acos(-1) const int maxn=1e6+10; const int mod=998244353; int f[maxn],n,t; int main() { cin>>t; while(t--) { cin

Luoriliming的博客 262

[HDU 多校训练] Equal Sentences (2020第四场1005)

HDU Equal Sentences (2020杭电多校训练第四场1005) HDU Equal Sentences 废话不多说直接上AC代码 #include <bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<b;i++) #define T int t ;cin >> t;while(t--) using namespace std ; typedef long long ll; typedef unsigned lon

hcCuriosity的博客 684

2020杭电多校二 1005 New Equipments

网络流 减少边数量

a free man 370

2020杭电多校第三场

1004 Tokitsukaze and Multiple 思路:合并尽量多的p的倍数,假设[l,r]的和模p等0,就可以合并这个区间,需要得到尽量多,对于每一个r选择最近的l,想要快速寻找这个 l 可以借助前缀和的性质,如果[l,r]的和模p等0,那么sum[r]%p==sum[l]%p,所以记录前缀和的模数的位置即可。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=100010;

qq_45288870的博客 469

2020牛客暑期多校训练营(第九场)——Groundhog and 2-Power Representation

2020牛客暑期多校训练营(第九场)——Groundhog and 2-Power Representation 输入 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输出 1315 备注 The range of answers :[10,10^180],and the length of the input data shall not exceed 20000. 题目大意 输入计算式,求解。其中 2(x) 表示 2 的 x 次.

cxkdad的博客 306

2020杭电多校第三场1005(并查集)

Little W and Contest(并查集) 题意: acm组队,有n名队员,每名成员担当读题或者编码的任务,读题能力为1,编程能力为2,每个队伍三名成员,成员能力值至少为5,刚开始队员之间相互不熟悉,每过一天就会有人相互熟悉,并且也会熟悉双方的朋友,问每天最多可以组多少队。 hint:用并查集。记录并查集中能力为1的人数,能力为2的人数,当两个并查集合并时要去掉两个并查集之前能配对的组合数,并且合并两个并查集的能力值个数。 #include <bits/stdc++.h&.

weixin_43911947的博客 218

2020杭电多校第三场部分题解(1004, 1005, 1006, 1009)

1004 Tokitsukaze and Multiple 可以处理出每个点i作为划分的右端点,它最近的左端点为L[i],然后问题就转换成了若个个区间,求彼此之间不相交的情况下最多有几个共存。经典问题,这里用DP解决 #include<bits/stdc++.h> #define ll long long #define pb push_back #define lowbit(x) ((x)&(-(x))) #define mid ((l+r)>>1) #define ls

积极的防守者的博客 645

HDU 6795【2020杭电多校赛第三场1005】【并查集】【组合数学】

Little W and Contest Sourse HDU 6795 Little W and Contest Solution 有两种人,读题的和写代码的,读题的人能力值是1,写代码的人能力值是2,组成一个团队最少需要能力5,所以至少要有2个写代码的人才能组成一个团队。 团队里的人,任意两个人不能互相认识。每个回合教练都会介绍任意两个人认识(因此这两人不能在同一个团队里),并且认识的人之间具有传递性,即题目说明了a认识b,说明了b认识c,a就会视作认识c。问每个回合过后有多少种组成团队的方式。 这种点

给我一把键盘 289

(最大流) 2020牛客多校第一场 i 1 or 2

这i题我一直在想点和边进行建图,真tm的sb,这样根本没办法保证一条边和它的两个点都选上了,其实应该就点和点连边,每个点拆成i和i',源点和i连一条权值为di的边,i'和汇点连一条权值为di的边,对于m条边,u和v,u于v'建边,v与u'建边,这样每个点的流量都只能流到其他点,最大流就是让每个点都选了di条边,只要源点汇点流量等于di的和就是答案了 链接:https://ac.nowcoder.com/acm/contest/5666/I 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒...

天涯沧海的博客 1274

2020杭电多校第四场 解题报告1002 1004 1005 1011

1002Blow up the Enemy 题意: 张三父子俩对狙。有n把狙击枪,每个人选中了枪就不能换,每把枪有两个属性,一个是攻击值,一个是延迟时间,开枪之后要等延迟时间之后才能打第二枪,这里规定第一枪没有延迟时间。每个人血量初始值为100,被击中一枪,血量就被扣对方枪的攻击值。现在开始选枪,如果张三当前选的枪最终能够击败对方,那么赢得概率为1,如果打平手,那么赢得概率为0.5。问张三能赢得最大概率。 解题思路: 贪心+概率。 求出所有枪能够击败对方需要花的时间,然后按照时间从小到大排序,张.

weixin_43911947的博客 472
上一篇: 2020多校第一场1004
下一篇: 2020多校第一场1009
生灵不语
博客等级 码龄8年 11粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值