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.这个 ...
随机推荐
- ubuntu16.04下安装文献管理工具mendelay
1.首先下载mendelay的安装包 到官网下载对应版本的安装包,官网地址:Download for Ubuntu and Kubuntu 16.04 LTS, 17.04 and Debian 2. ...
- 第一个socket服务端程序
第一个socket服务端程序 #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...
- Parity game---poj1733
Description Now and then you play the following game with your friend. Your friend writes down a seq ...
- Eclipse安装aptana
1.下载aptana包 http://update.aptana.com/update/studio/3.2/ aptana_update_024747.zip(包) 2.安装插件包 解压该文件,解压 ...
- 代码这样写更优雅(Python版)
要写出 Pythonic(优雅的.地道的.整洁的)代码,还要平时多观察那些大牛代码,Github 上有很多非常优秀的源代码值得阅读,比如:requests.flask.tornado,笔者列举一些常见 ...
- ABAP抓取异常的方法:try,endtry
部分转自:http://www.cnblogs.com/jiangzhengjun/p/4292428.html +4.Funcion函数异常处理 说明: 异常处理机制可以有效避免 dump发生, : ...
- Kylin构建cube时状态一直处于pending
在安装好kylin之后我直接去访问web监控页面发现能够进去,也没有去看日志.然后在运行官方带的例子去bulid cube时去发现状态一直是pending而不是runing.这个时候才去查看日志: 2 ...
- 百度编辑器UEditor源码模式下过滤div/style等html标签
UEditor在html代码模式下,当输入带有<div style="">.<iframe>这类带有html标签的内容时,切换为编辑器模式后,会发现输入的内 ...
- POJ3169:Layout(差分约束)
http://poj.org/problem?id=3169 题意: 一堆牛在一条直线上按编号站队,在同一位置可以有多头牛并列站在一起,但编号小的牛所占的位置不能超过编号大的牛所占的位置,这里用d[i ...
- POJ2983 Is the Information Reliable?
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=267#problem/B B - ...