P1771 方程的解_NOI导刊2010提高(01)
按题意用快速幂把$g(x)$求出来
发现这不就是个组合数入门题吗!
$k$个人分$g(x)$个苹果,每人最少分$1$个,有几种方法?
根据插板法,显然答案为$C(g(x)-1,k-1)$
蓝后写个高精度。(我曾经十分天真地认为$ans<=10^{50}$)
这里用压位+结构体重载高精。可以应对$ans<=10^{24*7}$的数据。
注意:存在x,P,$(x^x) \% P!=(x\% P)^{(x\% P)} \% P$
#include<iostream>
#include<cstdio>
#include<cstring>
#define re register
using namespace std;
int max(int a,int b){return a>b?a:b;}
const int W=;//压7位
int x,k;
struct bigsum{
int a[],len;
bigsum(){memset(a,,sizeof(a));len=;}
bigsum operator + (const bigsum &tmp) const{
bigsum c; int x=;
c.len=max(len,tmp.len);
for(int i=;i<=c.len;++i){
c.a[i]=a[i]+tmp.a[i]+x;
x=c.a[i]/W;c.a[i]%=W;
}
for(;x;x/=W) c.a[++c.len]=x%W;
return c;
}
void print(){//注意压位高精输出时每一位的前导0
printf("%d",a[len]);
for(int i=len-;i>=;--i){
for(int j=;a[i]*j<W;j*=) putchar();
printf("%d",a[i]);
}
}
}C[][];
int Pow(int x,int y){
int res=;
for(;y;y>>=,x=1ll*x*x%)
if(y&) res=1ll*res*x%;
return res;
}
int main(){
scanf("%d%d",&k,&x); x=Pow(x%,x);
if(!x){puts("");return ;}
for(int i=;i<x;++i)
for(int j=;j<=i;++j){
if(!j||j==i) C[i][j].a[C[i][j].len=]=;
else C[i][j]=C[i-][j]+C[i-][j-];
}//杨辉三角递推
C[x-][k-].print();
return ;
}
P1771 方程的解_NOI导刊2010提高(01)的更多相关文章
- 洛谷P1771 方程的解_NOI导刊2010提高(01)
题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...
- 方程的解_NOI导刊2010提高(01) 组合数
题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...
- 方程的解_NOI导刊2010提高
方程的解 给定x,求\(a_1+a_2+...+a_k=x^x\ mod\ 1000\)的正整数解解的组数,对于100%的数据,k≤100,x≤2^31-1. 解 显然x是可以快速幂得到答案的,而该问 ...
- 洛谷 P1777 帮助_NOI导刊2010提高(03) 解题报告
P1777 帮助_NOI导刊2010提高(03) 题目描述 Bubu的书架乱成一团了!帮他一下吧! 他的书架上一共有n本书.我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31 ...
- 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)
P1775 古代人的难题_NOI导刊2010提高(02) 题目描述 门打开了,里面果然是个很大的厅堂.但可惜厅堂内除了中央的一张羊皮纸和一支精致的石笔,周围几具骷髅外什么也没有.难道这就是王室的遗产? ...
- P1799 数列_NOI导刊2010提高(06)
P1799 数列_NOI导刊2010提高(06)f[i][j]表示前i个数删去j个数得到的最大价值.if(i-j==x) f[i][j]=max(f[i][j],f[i-1][j]+1); else ...
- 【洛谷】【堆】P1801 黑匣子_NOI导刊2010提高(06)
[题目描述:] Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两 ...
- P1776 宝物筛选_NOI导刊2010提高(02)&& 多重背包二进制优化
多重背包, 要求 \(N\log N\) 复杂度 Solution 众所周和, \(1-N\) 之内的任何数可以由 \(2^{0}, 2^{1}, 2^{2} ... 2^{\log N}, N - ...
- P1801 黑匣子_NOI导刊2010提高(06)
P1801 黑匣子_NOI导刊2010提高(06) 题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个 ...
随机推荐
- HDU 5512 - Pagodas - [gcd解决博弈]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5512 Time Limit: 2000/1000 MS (Java/Others) Mem ...
- Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)
记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += - ...
- 洛谷P3243 [HNOI2015]菜肴制作 拓扑排序+贪心
正解:拓扑排序 解题报告: 传送门! 首先看到它这个约束就应该要想到拓扑排序辣QwQ 首先想到的应该是用优先队列代替队列,按照节点编号排序 然后也很容易被hack:<5,1> 正解应为5, ...
- js数据类型--对象&数组
javascript最重要的数据类型是对象 对象定义 对象是键值对的集合,或字符串到值映射的集合 对象申明 对象是由花括号括起来的 var person={ name:"my name&qu ...
- sql server低版本到高版本还原,找不到备份集
关键词:sql server低版本到高版本还原 故障问题,图中备份集(红色框线部分)没有数据,无法选择,导致无法还原 解决办法: [1] 低版本的备份到高版本的,用语句可以还原 注意事项: 低版本不一 ...
- QQ公众号?是的,你没看错!
微信公众平台培育了800多万的微信公众号,自身也通过微信游戏.广告分销等找到了一些增值盈利模式.作为同门大师兄,qq也在11月份推出了QQ公众号,第一个手机QQ上的“生活服务号”——YTO圆通速递上线 ...
- MyEclipse10.0 注册破解步骤
MyEclipse 10.0破解 激活(java编写,适用于装有java环境的各种操作系统,Windows,Linux,MacOS) =====[方法一]=====[第一步]:输入任意用户名[第二步] ...
- jquery两稳定版本比较~~
jquery历经了多个版本的更新,版本上的比较貌似没什么必要性,一般来说新的版本会比旧的版本各方面都略有提升,但由于新版中增加了各种新的功能,难免会引起bug的发生.评估一个版本是否适合当前开发场景使 ...
- 启动rabbitmq,提示ERROR: node with name "rabbit" already running on "localhost"
➜ ~ rabbitmq-server ERROR: node with name "rabbit" already running on "localhost" ...
- [js]ext.js探索
Ext JS 经常会遇到布局等头疼的问题,一直在用bootstrap,但是我不喜欢这玩意出的效果想找个合适的js架构入手 http://examples.sencha.com/extjs/6.6.0/ ...