当前位置: 首页 > 编程日记 > 正文

P2480 [SDOI2010]古代猪文 Lucas+CRT合并

\(\color{#0066ff}{ 题目描述 }\)

猪王国的文明源远流长,博大精深。

iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N。当然,一种语言如果字数很多,字典也相应会很大。当时的猪王国国王考虑到如果修一本字典,规模有可能远远超过康熙字典,花费的猪力、物力将难以估量。故考虑再三没有进行这一项劳猪伤财之举。当然,猪王国的文字后来随着历史变迁逐渐进行了简化,去掉了一些不常用的字。

iPig打算研究古时某个朝代的猪文文字。根据相关文献记载,那个朝代流传的猪文文字恰好为远古时期的k分之一,其中k是N的一个正约数(可以是1和N)。不过具体是哪k分之一,以及k是多少,由于历史过于久远,已经无从考证了。

iPig觉得只要符合文献,每一种能整除N的k都是有可能的。他打算考虑到所有可能的k。显然当k等于某个定值时,该朝的猪文文字个数为N / k。然而从N个文字中保留下N / k个的情况也是相当多的。iPig预计,如果所有可能的k的所有情况数加起来为P的话,那么他研究古代文字的代价将会是G的P次方。

现在他想知道猪王国研究古代文字的代价是多少。由于iPig觉得这个数字可能是天文数字,所以你只需要告诉他答案除以999911659的余数就可以了。

\(\color{#0066ff}{输入格式}\)

输入文件ancient.in有且仅有一行:两个数N、G,用一个空格分开。

\(\color{#0066ff}{输出格式}\)

输出文件ancient.out有且仅有一行:一个数,表示答案除以999911659的余数。

\(\color{#0066ff}{输入样例}\)

4 2

\(\color{#0066ff}{输出样例}\)

2048    

\(\color{#0066ff}{数据范围与提示}\)

10%的数据中,1 <= N <= 50;

20%的数据中,1 <= N <= 1000;

40%的数据中,1 <= N <= 100000;

100%的数据中,1 <= G <= 1000000000,1 <= N <= 1000000000。

\(\color{#0066ff}{ 题解 }\)

一句话题意,求\(G^{\sum_{k|n}C_n^k} \mod 999911659\)

根据欧拉定理

$G^{\sum_{k|n}C_n^k} \equiv G^{\sum_{k|n}C_n^k \mod 999911658}\mod 999911659 $

现在我们要求\(\sum_{k|n}C_n^k \mod 999911658\)

\(999911658\)质因数分解

\(999911658=2*3*4679*35617\)

分别算出上面组合数对四个模数的ans,然后用CRT合并

最后快速幂出答案

值的注意的是

1、阶乘和逆元要预处理

2、要考虑不互质的情况,用扩展欧拉定理

#include<bits/stdc++.h>
#define LL long long
LL in() {char ch; LL x = 0, f = 1;while(!isdigit(ch = getchar()))(ch == '-') && (f = -f);for(x = ch ^ 48; isdigit(ch = getchar()); x = (x << 1) + (x << 3) + (ch ^ 48));return x * f;
}
bool flag;
const int mix = 999911659;
const int mox = 999911658;
LL b[] = {0LL, 2LL, 3LL, 4679LL, 35617LL};
LL a[10];
LL fac[50505][5], inv[50505][5];
LL ksm(LL x, LL y, LL mod) {if(x == 0) return 0;LL re = 1LL;while(y) {if(y & 1) re = re * x % mod;x = x * x % mod;y >>= 1;}return re % mod;
}
LL C(LL n, LL m, LL mod, int pos) {if(m > n) return 0;if(n >= mod || m >= mod) return C(n / mod, m / mod, mod, pos) * C(n % mod, m % mod, mod, pos) % mod;return ((fac[n][pos] * inv[m][pos] % mod) * inv[n - m][pos]) % mod;
}
void exgcd(LL a, LL b, LL &x, LL &y) {if(!b) return(void)(x = 1, y = 0);exgcd(b, a % b, x, y);LL t = x - a / b * y;x = y, y = t;
}
LL work(LL n, LL k) {LL ans = 0;for(int i = 1; i <= 4; i++) {a[i] = C(n, k, b[i], i);LL x, y;exgcd(b[i], mox / b[i], x, y);x = ((mox / b[i] * y) % mox + mox) % mox;(ans += (a[i] * x % mox)) %= mox;}return ((ans % mox) + mox) % mox;
}
void predoit() {for(int i = 1; i <= 4; i++) fac[0][i] = 1;for(int i = 1; i <= 4; i++) for(int j = 1; j < b[i]; j++) fac[j][i] = 1LL * fac[j - 1][i] * j % b[i];for(int i = 1; i <= 4; i++) inv[b[i] - 1][i] = ksm(fac[b[i] - 1][i], b[i] - 2, b[i]);for(int i = 1; i <= 4; i++)for(int j = b[i] - 2; j >= 0; j--) inv[j][i] = 1LL * (j + 1) * inv[j + 1][i] % b[i];
}int main() {LL n = in(), g = in();LL ans = 0;predoit();for(LL i = 1; i * i <= n; i++) {if(n % i == 0) {ans = ans + work(n, i);if(ans >= mox) ans %= mox, flag = true;if(i * i != n) {ans = ans + work(n, n / i);if(ans >= mox) ans %= mox, flag = true;}}}printf("%lld\n", ksm(g, (flag? ans + mox : ans), mix));return 0;
}

转载于:https://www.cnblogs.com/olinr/p/10307027.html

相关文章:

Linux进程管理: 多进程编程

多进程编程 mind-Mapping保存有xmind原始文件&#xff0c;可直接获取 无名管道PIPE 命名管道FIFO POSIX共享内存 POSIX消息队列 POSIX信号量 SYS V共享内存 SYS V消息队列 SYS V信号量

关于HtmlAgilityPack解析页面中数据乱码问题

第一种方式&#xff1a;publicstaticHtmlDocument LoadHtmlByUrls(stringurl){HtmlDocument htmldoc;HtmlWeb htmlWeb new HtmlWeb(); //不够完善 此内置方法导致中文乱码//htmlWeb.OverrideEncoding Encoding.UTF8;htmldoc htmlWeb.Load(url);Encoding coding htmldoc.S…

服务器无线网卡驱动程序,在Ubuntu里使用Windows的无线网卡驱动程序的方法教程...

Ubuntu的“帮助和支持”说“Ubuntu支持一种称为NDISWrapper的系统。它可以让你在Ubuntu下使用Windows无线设备驱动程序”。1、准备好无线网卡的Windows驱动程序&#xff0c;我是用for Windows XP的。2、先用有线网络联网&#xff0c;在新立得软件包管理器里安装ndisgtk。或到ht…

绿色版mysql使用方法

一、下载MySQLhttp://www.mysql.org/downloads我下载的是mysql-noinstall-5.0.67-win32.zip 二、安装过程1、解压缩 mysql-noinstall-5.0.67-win32.zip 到一个C盘&#xff0c;重新命名为 MySQL5 。假定MYSQL_HOMEC: MySQL52、编辑mysql的运行配置文件my.ini&#xff0c;如果没有…

C# 栈 、队列的概念

栈&#xff1a; 也是System.Collections下的数据结构 存储依然是Object类型的对象 Stack 名字 new Stack(); Count&#xff1a;实际拥有的元素个数 栈的释放顺序是先进后出&#xff08;后进先出&#xff09; 压栈——Push(object 对象)把这个对象添加到栈的顶部 弹栈——Pop()…

Linux多线程管理: 多线程编程

多线程编程 mind-Mapping保存有一下导图的xmind文件&#xff0c;可直接获取 互斥变量 互斥对象 ptrhead相关接口 条件变量 future异步访问类 async类 promise类 package_task类

codeforces 165B(Burning Midnight Oil)

【题意描述】 本题就是给定代码任务为n行&#xff0c;起始代码书写能力为v行&#xff0c;然后每经过一次除以k&#xff0c;当v变为0时看是否完成代码任务n&#xff1f;并求出最小的v。 【解题思路】 我们可以对v值进行二分&#xff0c;然后确定最后的v值。 【AC代码】 1 #inclu…

服务器计费系统安卓,GitHub - NWAFU/dms_client: 服务器计费系统(客户机端):用于统计租户的服务器使用情况...

概述在电信的业务中&#xff0c;有一种Unix实验室出租业务。只要用户向电信运营商申请一个Unix帐号&#xff0c;就可以远程登录Unix实验室&#xff0c;并使用Unix系统。用户使用电信运营商提供的Unix实验室的服务需要缴纳一定的费用&#xff0c;电信运营商需要一套数据采集系统…

mac的终端下面使用ssh user@localhost输入密码 不能正常登录

2019独角兽企业重金招聘Python工程师标准>>> 今天回来后发现系统突然很奇怪&#xff0c;以前在mac的终端下面使用ssh userlocalhost输入密码就可以连接到远程的SSH服务器&#xff0c;今天连接的时候老是提示如下错误&#xff1a; KENFORFORLIN:~ kenforstar$ sudo …

spring mvc + mybatis 框架搭建 ( idea + gradle)

spring mvc mybatis 框架搭建 idea gradle 刚刚入门&#xff0c;只是个人见解&#xff0c;如有错误或者问题欢迎指出指正。 邮箱&#xff1a; [ wgh0807qq.com ] 文章引用&#xff1a; [apache - log4j] [mybatis 配置] 一、 build.gradle 加载相关包 在dependencies下配置 相…

Linux系统性能分析: CPU

CPU 原始文件路径mind-Mapping CPU上下文切换 CPU使用率

jquery-tmpl 插件

做项目时页面上有处功能是&#xff1a;在页面有处列表、有添加&#xff0c;我添加修改或删除后要刷新这个列表&#xff0c;首先想到的是局部刷新&#xff0c;但我们一般说的局部刷新就是利于ajax去后台调用数据并显示&#xff0c;而这里是一整个列表就比较麻烦了&#xff0c;刷…

java mongodb存base64_阿里JAVA面试分享经验【文末有福利】

基础篇参考这里的面试题&#xff1a;面试题写在后面了能回答上百分之七十&#xff0c;基础的广度就算OK了。如果达不到&#xff0c;那么缺什么就赶紧补什么。广度达到了&#xff0c;还需要对个别热点问题有深度。每个人的精力都有限&#xff0c;可以适当挑选两个热点问题进行深…

win7/8SVN必备的4个服务

为什么80%的码农都做不了架构师&#xff1f;>>> 最近刚刚学会用vpn&#xff0c;某次用某软件加速系统后svn不能用了&#xff0c;反复查看&#xff0c;发现是Event Log的原因。所以和大家分享一下SVN必备的4个系统服务。 Windows Event Log Secure Socket Tunneling…

Spark集群部署(standLone)模式

安装部署&#xff1a; 1. 配置spark为1个master&#xff0c;2个slave的独立集群&#xff08;Standlone&#xff09;模式&#xff0c; 可以在VMWare中构建3台运行Ubuntu的机器作为服务器&#xff1b; master主机配置如下&#xff1a; vim /etc/hostname 编辑此文件&#xff0c;设…

读书:一百个 终身受益的 思维模型(持续更新)

《第二曲线》 刻意练习 金字塔原理

map 小模板~~~ 写的不好 继续添加

#include<map>#include<string.h>#include<iostream>using namespace std;int main(){ ///map插入 map<string,int> mp; ///<key值 val值> mp["a"]1; mp["b"]2; mp["c"]3; map<string,int…

为什么二级菜单会被挡住_二级建造师为什么这么难考?2021年二建考试也会很难吗?...

2020年二建考试难到上热搜&#xff0c;广大考生被难到怀疑人生&#xff0c;老考生一副"我看透你了"的过来人嘴脸&#xff0c;新考生只能在角落瑟瑟发抖。随着2020年二建考试逐渐落幕&#xff0c;2021年二建备考被提上日程&#xff0c;许多考生心中也逐渐产生疑问&…

Nginx与PHP(FastCGI)的安装、配置、优化

一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI&#xff0c;包括Apache、Nginx和lighttpd等&#xff0c;同时&#xff0c;FastCGI也被许多脚本语言所支持&#xff0c;其中就有PHP。FastCGI是从…

Cobbler-自动化部署神器

Cobbler-自动化部署神器 前言&#xff1a; 网络安装服务器套件 Cobbler(补鞋匠)从前&#xff0c;我们一直在做装机民工这份很有前途的职业。自打若干年前 Red Hat 推出了 Kickstart&#xff0c;此后我们顿觉身价倍增。不再需要刻了光盘一台一台地安装 Linux&#xff0c;只要搞定…

Linux系统性能分析: I/O栈 优化

原始文件路径Mind-mapping Linux I/O栈性能分析及优化

[转]优化Flash性能

原文&#xff1a;http://www.adobe.com/devnet/flash/articles/optimizing-flash-performance.html 翻译&#xff1a;http://bbs.9ria.com/thread-156860-1-1.html 在这篇文章中&#xff0c;你会学到优化Flash Professional应用性能的策略。优化过程包括编辑你的FLA工程文档确保…

python 自动填充表单,如何在Django / Python中自动填充PDF表单?

I have PDF forms that I want to autopopulate with data from my Django web application and then offer to the user to download. What python library would let me easily pre-populate PDF forms? These forms are intended to be printed out.解决方案Reportlab is g…

模拟宽度自适应的输入框

看代码&#xff1a; !DOCTYPE HTML><html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><style type"text/css"> h2 { margin:0; padding:10px 0; font-size:14px; } .mod-retweet { bac…

洛谷 - P1426 - 小鱼会有危险吗 - 模拟

https://www.luogu.org/problemnew/show/P1426 题目说的是小鱼进入探测器一秒后就会有危险&#xff0c;所以不应该让小鱼先游&#xff0c;而是先检测探测器。 #include<bits/stdc.h> using namespace std; #define ll long longint s,x;int main(){scanf("%d%d"…

Linux系统性能分析:内存 优化

整体的内存基本原理和内存性能指标、性能瓶颈分析以及优化思路可参考如下导图 原始xmind文件路径Mind-Mapping

zoj 1010 (线段相交判断+多边形求面积)

链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId10 AreaTime Limit: 2 Seconds Memory Limit: 65536 KB Special JudgeJerry, a middle school student, addicts himself to mathematical research. Maybe the problems he has though…

军用软件概算计价规范_工程造价五算:估算、概算、预算、结算、决算

估算、概算、预算、结算、决算估算即投资估算。是在决策阶段就建设项目建设总投资进行的科学估计。决策阶段又分为机会研究、项目建议书、初步可行性研究、详细可行性研究四个阶段&#xff0c;随着项目逐步的细化具体化&#xff0c;按照投资估算规程&#xff0c;可以得到不同精…

openssh配置终极一帖

一、什么是opensshOpenSSH 是 SSH &#xff08;Secure SHell&#xff09; 协议的免费开源实现。SSH协议族 可以用来进行远程控制&#xff0c; 或在计算机之间传送文件。而实现此功能的传统方式&#xff0c;如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的&a…

读书:历史 -- 海上丝绸之路

罗德里希普塔克 — 德国汉学家 海上丝路连结了古代世界贸易往来&#xff0c;见证了中华文明在人类历史中的枢纽位置。 王权集中的朝代中每一个流传后世的国家层级的决策无不彰显国家机器得强壮&#xff0c;但同样也很脆弱&#xff0c;决策者不可能时刻都能做出最为正确得选择。…