[bzoj1416]神奇的口袋
2024-10-19 15:41:09
容易发现操作任意次并不会改变每一个点的概率(因为每一个点加d的概率相同,期望与原数成比例),然后直接输出即可(要用高精度)
1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 20005
4 int n,m,k,x,s,a[N],vis[N],p[N],mi[N],sum[N];
5 void calc(){
6 memset(a,0,sizeof(a));
7 a[0]=a[1]=1;
8 for(int i=1;i<N-4;i++)
9 for(int j=1;j<=sum[i];j++){
10 a[1]=a[1]*i;
11 for(int k=2;k<=a[0];k++){
12 a[k]=a[k]*i+a[k-1]/10;
13 a[k-1]%=10;
14 }
15 while(a[a[0]]>9){
16 a[a[0]+1]=a[a[0]]/10;
17 a[a[0]++]%=10;
18 }
19 }
20 for(int i=a[0];i;i--)printf("%d",a[i]);
21 }
22 int main(){
23 for(int i=2;i<N-4;i++){
24 if (!vis[i])p[++p[0]]=i;
25 for(int j=1;(j<=p[0])&&(i*p[j]<N-4);j++){
26 vis[i*p[j]]=1;
27 mi[i*p[j]]=p[j];
28 if (i%p[j]==0)break;
29 }
30 }
31 scanf("%d%d%d",&n,&m,&k);
32 for(int i=1;i<=n;i++){
33 scanf("%d",&a[i]);
34 s+=a[i];
35 }
36 for(int i=1;i<=m;i++){
37 scanf("%*d%d",&x);
38 sum[a[x]]++;
39 sum[s]--;
40 a[x]+=k;
41 s+=k;
42 }
43 for(int i=N-5;i;i--){
44 if (vis[i]){
45 sum[mi[i]]+=sum[i];
46 sum[i/mi[i]]+=sum[i];
47 sum[i]=0;
48 }
49 }
50 calc();
51 printf("/");
52 for(int i=N-5;i;i--)sum[i]*=-1;
53 calc();
54 }
最新文章
- 【夯实PHP基础系列】JQuery easyUI的使用
- a版本冲刺第五天
- MVC4 WEBAPI(一)使用概述
- Array-练习-自定义功能
- js与jsp
- MXS 编辑器外观
- 使用MSCOMM发送任意文件,还有一些注意事项
- linux 下面 opcache 拓展
- c# List集合的Find方法适用
- HttpServletResponse HttpServletRequest RequestDispatcher
- make的命令行选项
- HDU 6035(树形dp)
- 判断NaN的真假
- 最长公共子序列LCS(POJ1458)
- 【Little Demo】从简单的Tab标签到Tab图片切换
- POJ - 题解sol[暂停更新]
- 黑白二值图像周长测量--C#实现
- Navi.Soft31.WebMVC框架(含示例地址)
- iOS 真机调试 Xcode 显示 device Error: device unavailable
- STS的安装教程-鹏鹏
热门文章
- SphereEx 创始人张亮云咖访谈回顾:构建数据服务的新思路
- mysql创建用户及赋予某用户权限(附带基础查看表内容)
- kvm安装window系统及使用NFS动态迁移
- 安装 webstorm--->;vue
- [no code][scrum meeting] Beta 5
- Noip模拟10 2021.6.27
- PWM通过RC低通滤波器模拟DAC
- 面试官问:说说你对Java函数式编程的理解
- Envoy实现.NET架构的网关(二)基于控制平面的动态配置
- 像素设定 牛客网 程序员面试金典 C++ Python