正解:数论

解题报告:

  传送门
  第一次用\(\LaTeX\)和\(markdown\),,,如果出了什么锅麻烦在评论跟我港句QAQ
  \(1)x_{i}\)可以直接离散
  \(2)y_{i}\)的顺序对结果麻油影响
  事实上从上面两个结论就可以得到这题的正解,,,
  直接按顺序读入然后每次对\(a_{y_{i}}+=d\)就好
  下面写证明,,,
  先证第一条趴\(QwQ\)
    假设在第\(k\)步的时候,各个球的数量是\(a_{1},a_{2},a_{3}...a_{n}\),总数是\(sum\)
    然后在第\(k+1\)步想拿到颜色\(y\)的概率就会是
    第\(k\)步拿到了颜色\(y:\frac{a[y]}{sum}*\frac{a[y]+d}{sum+d}\)
         加上
    第\(k\)步麻油拿到颜色\(y:\frac{sum-a[y]}{sum}*\frac{a[y]}{sum+d}\)
    化简一下可得答案就\(\frac{a[y]}{sum}\)
    然后数学归纳法可得如果麻油任何约束的话就每次的答案一定都是\(\frac{a[y]}{sum}\)了,也就是说\(x_{i}\)可以直接离散
    但是这里之前\(gql\)傻逼了好久,,,一直麻油想通,,,这里的建议是,如果能想通当然是最好,没想通的话可以多考虑一轮这样的,,,这样就能懂了,,,
    不想举\(eg\)了太难打了,,,我发现虽然\(latex\)配上\(markdown\)真的很好看但真的好耗时间,,,自己手推下第\(k+2\)步想拿到的颜色\(y\)的概率就好
    啊这儿说下,,,上面说的是到第\(k\)步的时候,各个球的数量是\(a_{1},a_{2},a_{3}...a_{n}\)嘛,,,但其实只是为了方便推,,,这儿的\(a_{1},a_{2},a_{3}...a_{n}\)的真实含义其实是一开始的时候给的\(\left \{ a \right \}\)数组,,,
    
  然后第二条,,,其实还挺好证明的来着QwQ
  就现在从第一条我们已经可以得到一个接近正解的解法了,,,就直接读入\(x_{i}\),离散化一下,然后按顺序做就好QwQ
  但是还可以再改进下,,,就,如果能证明\(y_{i}\)的顺序对结果麻油影响,就可以直接读入然后直接做就好,,,
  下面随便证下
  设对\(\left \{ x \right \}\)数组排序之后得到的两个相邻的\(y\)进行交换,显然如果能证明这两个\(y\)交换对结果不产生影响,就能证这一条了
  现在假设这两个条件分别是\(\left ( x_{1},y_{1} \right ),\left ( x_{2},y_{2} \right )\)
  如果\(y_{1}=y_{2}\),显然麻油问题,不讲
  现在只要证\(y_{1}\neq y_{2}\)时是成立的就欧克了鸭,,,
  设\(P_{1}\)表示以\(\left ( x_{1},y_{1} \right ),\left ( x_{2},y_{2} \right )\)顺序排的\(ans\),\(P_{w}\)表示以\(\left ( x_{2},y_{2} \right ),\left ( x_{1},y_{1} \right )\)顺序排的\(ans\)
  不难得\(P_{1}=\frac{a_{y_{i}}}{sum}*\frac{a_{y_{i+1}}}{sum+d},P_{2}=\frac{a_{y_{i+1}}}{sum}*\frac{a_{y_{i}}}{sum+d}\)
  所以显然可以得到\(P_{1}=P_{2}\)
  得证√!
  啊对了还有个小\(tip\)这儿港下,,,就这题因为范围比较大,就要高精,然后就在最后的化简的时候要写高精除,,,所以可以先分解质因数,然后就只要做高精乘就欧克了,,,
  \((ps:markdown\)和\(\LaTeX\)打起来真滴好爽,,,虽然\(real\)耗时但我好爱啊\(TT\)

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i)
#define e(i,x) for(ri i=head[x];i;i=edge[i].nxt)

const int N=20000+10,M=50+10;
int pr[N],pr_cnt,isn_pr[N],n,m,d,a[N],sum,mul[N],divv[N];
struct Bigint
{
    int num[N],num_cnt;
    Bigint(){num[1]=1;num_cnt=1;}
    il void multi(int x)
    {
        rp(i,1,num_cnt)num[i]*=x;
        rp(i,1,num_cnt)num[i+1]+=num[i]/10,num[i]%=10;
        while(num[num_cnt+1])++num_cnt,num[num_cnt+1]=num[num_cnt]/10,num[num_cnt]%=10;
    }
    il void output(){my(i,num_cnt,1)printf("%d",num[i]);}
}as1,as2;

il int read()
{
    rc ch=gc;ri x=0;rb y=1;
    while(ch!='-' && (ch>'9' || ch<'0'))ch=gc;
    if(ch=='-')ch=gc,y=0;
    while(ch>='0' && ch<='9')x=(x<<1)+(x<<3)+(ch^'0'),ch=gc;
    return y?x:-x;
}
il void prepri()
{
    isn_pr[1]=1;
    rp(i,2,N-10)
    {
        if(!isn_pr[i])pr[++pr_cnt]=i;
        rp(j,1,pr_cnt){if(i*pr[j]>N-10)break;isn_pr[i*pr[j]]=1;}
    }
}
il int min(ri x,ri y){return x<y?x:y;}
il void cal(ri x,ri *y){rp(i,1,pr_cnt)while(!(x%pr[i]))++y[i],x/=pr[i];}

int main()
{
//  freopen(".in","r",stdin);freopen(".out","w",stdout);
    n=read();m=read();d=read();prepri();
    rp(i,1,n)sum+=(a[i]=read());
    rp(i,1,m){ri x=read(),y=read();if(!a[y])return printf("0/1"),0;cal(a[y],mul);cal(sum,divv);a[y]+=d;sum+=d;}
    rp(i,1,pr_cnt){ri mn=min(divv[i],mul[i]);mul[i]-=mn,divv[i]-=mn;}
    rp(i,1,pr_cnt)rp(j,1,mul[i])as1.multi(pr[i]);
    rp(i,1,pr_cnt)rp(j,1,divv[i])as2.multi(pr[i]);
    as1.output();printf("/");as2.output();
    return 0;
}

洛谷P4204 [NOI2006]神奇口袋 数论的更多相关文章

  1. 洛谷 P2220 [HAOI2012]容易题 数论

    洛谷 P2220 [HAOI2012]容易题 题目描述 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数 ...

  2. 洛谷 P4174 [NOI2006]最大获利 解题报告

    P4174 [NOI2006]最大获利 题目描述 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU 集团旗下的 CS&T 通讯公司在新一代通讯技术血战的前夜,需要 ...

  3. 洛谷P4358密钥破解 [CQOI2016] 数论

    正解:数论 解题报告: 先,放个传送门QwQ 这题难点可能在理解题意,,, 所以我先放个题意QAQ 大概就是说,给定一个整数N,可以被拆成两个质数的成绩p*q,然后给出了一个数e,求d满足e*d=1( ...

  4. 洛谷P2261 [CQOI2007] 余数求和 [数论分块]

    题目传送门 余数求和 题目背景 数学题,无背景 题目描述 给出正整数n和k,计算G(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod ...

  5. 洛谷P3166 数三角形 [CQOI2014] 数论

    正解:数论 解题报告: 传送门! 很久以前做的题了呢,,,回想方法还想了半天QAQ 然后写这题题解主要是因为看到了好像有很新颖的法子,就想着,学习一下趴,那学都学了不写博客多可惜 首先港下最常规的方法 ...

  6. 洛谷P2312 解方程 [noip2014] 数论

    正解:数论 解题报告: 这儿是,传送门qwq 又是很妙的一道题呢,专门用来对付我这种思维僵化了的傻逼的QAQ 首先看题目的数据范围,发现a<=1010000,很大的一个数据范围了呢,那这题肯定不 ...

  7. 洛谷 P3190 [HNOI2007]神奇游乐园 解题报告

    P3190 [HNOI2007]神奇游乐园 Description 给你一个 \(m * n\) 的矩阵,每个矩阵内有个权值\(V(i,j)\) (可能为负数),要求找一条回路,使得每个点最多经过一次 ...

  8. 洛谷P1403 [AHOI2005] 约数研究 [数论分块]

    题目传送门 约数研究 题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一年的辛苦工作取得了不错的成绩, ...

  9. 洛谷 P4297 [NOI2006]网络收费

    P4297 [NOI2006]网络收费 题目背景 noi2006 day1t1 题目描述 网络已经成为当今世界不可或缺的一部分.每天都有数以亿计的人使用网络进行学习.科研.娱乐等活动.然而,不可忽视的 ...

随机推荐

  1. 【python】md5加密方法相关使用

    md5方法在hashlib库中,使用前需要先导入.它的主要方法为update,copy,以及转换为二进制,十六进制. 用法说明: Help on HASH object: class HASH(bui ...

  2. Python-web应用 +HTTP协议 +web框架

    web架构 # web应用 架构# C/S 架构 | B/S 架构# client server: 客户端服务器架构,C++# browser server:浏览器服务器架构,Java.Python ...

  3. vue组件,通过props父组件给子组件传值,WTF, 子组件报错undefined???

    如果是正常操作,找了半天又找不到为什么undefined, 那很可能是props的命名出了问题: 不要用小驼峰式命名 例如这种childrenData 这种形式就会报错undefined  请尽量用全 ...

  4. js 校验 btc eth 地址

    NPM 安装 npm install wallet-address-validator Browser <script src="wallet-address-validator.mi ...

  5. 爬虫请求库之selenium模块

    一 安装 #安装:selenium+chromedriver pip3 install selenium 下载chromdriver.exe放到python安装路径的scripts目录中即可,注意最新 ...

  6. appium自动化测试等待的三种方法

    第一种  sleep(): 设置固定休眠时间.python 的 time 包提供了休眠方法 sleep() ,导入 time包后就可以使用 sleep()进行脚本的执行过程进行休眠. python # ...

  7. Nginx Linux详细安装部署教程

    一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...

  8. Jmeter性能测试之进阶BeanShell的使用

    BeanShell 最常用的用法 写好Java代码打成jar, 放到目录\lib\ext下面 package com.test; import java.io.File; import java.io ...

  9. 剑指offer数组2

    面试题39:数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次, ...

  10. Redis 可视化工具:Web Redis Manager

    以前用的:RedisDesktopManager (0.9.3以后需要订阅) https://github.com/uglide/RedisDesktopManager/releases 现在需要订阅 ...