首页 技术 正文
技术 2022年11月14日
0 收藏 695 点赞 3,804 浏览 1567 个字

2044年,Picks建成了人类第一台基于量子理论的银河系信息传递机。

Picks游遍了宇宙,雇用了 n 个外星人来帮他作为信息传递机的中转站。我们将外星人依次编号为 1 到 n,其中 i 号外星人有 ai 根手指。

外星人都是很低级的,于是Picks花费了很大的精力,才教会他们学会扳手指数数。

Picks现在准备传递 x 个脉冲信号给VFleaKing,于是他把信号发给1号外星人,然后1号外星人把信号发送给2号外星人,2号外星人把信号发送给3号外星人,依次类推,最后n号外星人把信号发给VFleaKing。

但是事情没有Picks想象的那么顺利,由于外星人手指个数有限,所以如果 i 号外星人收到了 t 个脉冲信号,他会错误的以为发送过来的是 t mod ai 个脉冲信号,导致只发送了t mod ai 个脉冲信号出去。

Picks希望他发送出去的脉冲信号数量 x 与VFleaKing收到的脉冲信号数量 y 的差的绝对值尽量小。于是他决定通过重新排列这些外星人的顺序来达到这一目的。请你求出与 x 之差最小的 y。除此之外,请求出有多少种排列外星人的方式能达到最优解,你只需要输出方案数对 998244353(7×17×223+17×17×223+1,一个质数)取模后的结果。

n≤1000,x,ai≤5000

【UOJ#22】【UR#1】外星人

vfk讲得很详细了我就不重复了(其实是根本没懂QAQ

http://vfleaking.blog.uoj.ac/blog/33

这题细节好多,我抄po姐的代码都能debug两个小时QAQ,思维实在是不细致……

我这么弱怎么办嘛QAQ

值得注意的是线筛求逆元……

【UOJ#22】【UR#1】外星人

(图片来自syq

代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
#define ll long long
const int mo=;
int rd(){int z=,mk=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')mk=-; ch=getchar();}
while(ch>=''&&ch<=''){z=(z<<)+(z<<)+ch-''; ch=getchar();}
return z*mk;
}
int n,m,a[];
ll jj[],hh[];
int f[],cnt[]; ll g[];
void gtjj(){
jj[]=;
for(int i=;i<=;++i) jj[i]=jj[i-]*i%mo;
hh[]=;
for(int i=;i<=;++i) hh[i]=(mo-mo/i)*hh[mo%i]%mo;
hh[]=;
for(int i=;i<=;++i) hh[i]=hh[i]*hh[i-]%mo;
}
int main(){freopen("ddd.in","r",stdin);
cin>>n>>m; gtjj();
for(int i=;i<=n;++i) a[i]=rd();
sort(a+,a+n+);
g[]=;
for(int i=,k=;i<=m;++i){
while((a[k]<=i)&(k<=n)) ++k;
cnt[i]=k-;
if(!cnt[i]) f[i]=i,g[i]=;
else
for(int j=;j<=cnt[i];++j){
if(f[i%a[j]]>f[i]) f[i]=f[i%a[j]],g[i]=;
if(f[i%a[j]]==f[i])
g[i]=(g[i]+jj[cnt[i]-]*hh[cnt[i%a[j]]]%mo*g[i%a[j]]%mo)%mo;
}
}
cout<<f[m]<<endl;
cout<<jj[n]*hh[cnt[m]]%mo*g[m]%mo<<endl;
return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,401
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896