洛谷 P5509 派遣
心路历程:
每想到一种思路,就有一种要做出来的感觉。但一接着想就会发现这种方法有一些极小的问题,但是我没法解决。。。
于是就再换思路。。。
最后在请教了出题人神仙zcq之后,终于做出来了 ~~ (面向数据编程 ~~
口胡一下思路:
首先,我们手玩一波柿子。
\]
\]
\]
\]
\]
\]
然后我们看怎么求这个东西。
大概就是把分子和分母写成
\]
(m是模数)的形式。
然后。。。
如果\(x>y\),那么约分后\(p\equiv 0\),所以\(a=0\)即可,输出\(0\)
如果\(x<y\),那么约分后\(q\equiv 0\),所以无论\(a\)取什么值,都不可能满足条件,输出\(-1\)
如果\(x=y\),那么\(p\equiv 0,q\equiv 0\),p!=0,q!=0,这样可以用逆元求出值
额,对,出处是i_m_a_的博客
(还有,他的博客哪里写成了p=0,q=0,而不是同余(大雾
emmmm..
Code
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
const ll P = 1145141;
ll T;
ll n,k;
ll f[P+1];
inline void readx(ll &x)
{
x=0;
int s=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
s=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=(x<<1)+(x<<3)+ch-'0';
ch=getchar();
}
x*=s;
}
inline void pre()
{
f[0]=1;
for(int i=1;i<P;++i)
f[i]=f[i-1]*i%P;
}
inline ll qpow(ll a,ll b)
{
ll x=1;
while(b)
{
if(b&1)
x=x*a%P;
a=a*a%P;
b>>=1;
}
return x;
}
inline ll inv(ll x)
{
return qpow(x,P-2);
}
int main()
{
pre();
readx(T);
while(T--)
{
readx(n);readx(k);
ll a_mo=1,a_de=1,x_mo=0,x_de=0;
ll r=n*k-1;
while(r)
{
a_mo=a_mo*f[r%P]%P;
r/=P;
x_mo+=r;
}
a_mo=a_mo*qpow(f[P-1],x_mo)%P;
//处理分子
ll tmp=0;
r=k-1;
while(r%P==0)
{
++tmp;
r/=P;
}
tmp*=(n-1);
a_de=qpow(r,n-1);
x_de+=tmp;
r=n*k-n;
tmp=0;
while(r)
{
a_de=a_de*f[r%P]%P;
r/=P;
tmp+=r;
}
a_de=a_de*qpow(f[P-1],tmp)%P;
x_de+=tmp;
r=n-1;
tmp=0;
while(r)
{
a_de=a_de*f[r%P]%P;
r/=P;
tmp+=r;
}
a_de=a_de*qpow(f[P-1],tmp)%P;
x_de+=tmp;
//处理分母
ll ans=a_mo*inv(a_de)%P;
if(x_mo>x_de)
printf("0\n");
else if(x_mo<x_de)
printf("-1\n");
else
printf("%lld\n",ans);
}
return 0;
}
洛谷 P5509 派遣的更多相关文章
- 洛谷 - P1552 - 派遣 - 左偏树 - 并查集
首先把这个树建出来,然后每一次操作,只能选中一棵子树.对于树根,他的领导力水平是确定的,然后他更新答案的情况就是把他子树内薪水最少的若干个弄出来. 问题在于怎么知道一棵子树内薪水最少的若干个分别是谁. ...
- 洛谷 [P1552] 派遣
树型DP + 可并堆 非常清楚的想到是树型DP, 但是如何维护最小值, 于是就去新学了可并堆 #include <iostream> #include <cstring> #i ...
- 洛谷1552 [APIO2012]派遣
洛谷1552 [APIO2012]派遣 原题链接 题解 luogu上被刷到了省选/NOI- ...不至于吧 这题似乎有很多办法乱搞? 对于一个点,如果他当管理者,那选的肯定是他子树中薪水最少的k个,而 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
随机推荐
- Python 之并发编程之线程上
一.线程概念 进程是资源分配的最小单位 线程是计算机中调度的最小单位 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程共享该进程的地址空间,相当于一个车间内有多条流水线,都 ...
- Java笔记---成员初始化
成员初始化 成员初始化 Java尽力保证所有变量可以在使用前可以初始化. void f(){ int i; System.out.println(i); //! i++; //开幕雷击:这里就报错了, ...
- 使用python实现离散时间傅里叶变换
以下内容引用链接:https://blog.csdn.net/baidu_37352210/article/details/79596633 (注意:通过如下内容可知,将序列信号进行傅里叶变换后,得到 ...
- Python回收机制
1.小整数对象池 整数在程序中的使用非常广泛,python 为了优化速度,使用了小整数对象池,避免整数频繁申请和销毁和内存空间. Python 对小整数的定义事[-5, 257]这些整数对象的hi提前 ...
- DCL和DQL
数据查询语言(DQL,Data Query Language) 主要是一些查询的sql语句. 语法 select * from test: 数据控制语言(DCL, Data Control Langu ...
- 记录下 k8s (1.14.2)使用kubeadm方式搭建和rancher搭建需要的镜像清单
kubeadm方式 之前一直用的1.12.2版本的,最近想试一下新的版本1.14.2 当然相应的组件镜像版本也需要更新了.镜像版本如下(网络插件使用flannel) k8s.gcr.io/kube-p ...
- [aac @ ...] more samples than frame size (avcodec_encode_audio2)
在用FFmpeg对音频进行编码的时候报如下错误: [aac @ 000001cfc2717200] more samples than frame size (avcodec_encode_audio ...
- 「SDOI2009」HH的项链
「SDOI2009」HH的项链 传送门 数据加强了,莫队跑不过了. 考虑用树状数组. 先把询问按右端点递增排序. 然后对于每一种贝壳,我们都用它最右一次出现的位置计算答案. 具体细节看代码吧. 参考代 ...
- python 中的 赋值 浅拷贝 深拷贝
1.对象的赋值 都是进行对象引用(内存地址)传递,即 b is a ,a 变 b也变 2.浅拷贝 会创建一个新的对象,对于对象中的元素,浅拷贝就只会使用原始元素的引用(内存地址) 当我们使用下面的操作 ...
- 【快学springboot】12.实现拦截器
前言 之前在[快学springboot]6.WebMvcConfigurer配置静态资源和解决跨域里有用到WebMvcConfigurer接口来实现静态资源的映射和解决跨域请求,并且在文末还说了Web ...