Gym102978C Count Min Ratio 题解

Posted gtm1514

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gym102978C Count Min Ratio 题解相关的知识,希望对你有一定的参考价值。

赛时无人场切。震撼,震撼。学到许多。全程贺 zak。

首先我们套路推下式子。枚举左边的红蓝球个数,答案即为

\\[\\beginaligned &\\sum_b=0^B\\sum_r=0^R\\binomb+rb\\binomB-b+R-rB-b\\min(\\frac rb,\\fracR-rB-b)\\\\ =&\\sum_x=1^\\frac RB\\sum_b=0^B\\sum_r=0^R\\binomb+rb\\binomB-b+R-rB-b[bx\\le r][(B-b)x\\le R-r]\\\\ =&\\sum_x=1^\\frac RB\\sum_b=0^B\\sum_r=0^R\\binomb+rb\\binomB-b+R-rB-b[r-bx\\ge 0][r-bx\\le R-Bx]\\\\ =&\\sum_x=1^\\frac RB\\sum_b=0^B\\sum_i=0^R-Bx\\binomb+bx+ib\\binomB-b+R-bx-iB-b \\endaligned \\]

有两种推法,组合意义天地灭,代数推导保平安。使用广义二项级数:

\\[\\beginaligned =&\\sum_x=1^\\frac RB\\sum_b=0^B\\sum_i=0^R-Bx\\binomb(x+1)+ib\\binom(B-b)(x+1)+R-Bx-iB-b\\\\ =&\\sum_x=1^\\frac RB\\sum_i=0^R-Bx\\sum_b=0^B[z^b]\\frac\\mathcal B_x+1(z)^i1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1[z^B-b]\\frac\\mathcal B_x+1(z)^R-Bx-i1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1\\\\ =&\\sum_x=1^\\frac RB\\sum_i=0^R-Bx[z^B]\\frac\\mathcal B_x+1(z)^R-Bx(1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1)^2\\\\ =&\\sum_x=1^\\frac RB(R-Bx+1)[z^B]\\frac\\mathcal B_x+1(z)^R-Bx(1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1)^2 \\endaligned \\]

把后边的拿出来:

\\[\\beginaligned &[z^B]\\frac\\mathcal B_x+1(z)^R-Bx(1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1)^2\\\\ =&[z^B]\\frac 11-(x+1)(1-\\mathcal B_x+1(z)^-1)\\frac\\mathcal B_x+1(z)^R-Bx1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1\\\\ =&[z^B]\\sum_i=0^B(x+1)^i(1-\\mathcal B_x+1(z)^-1)^i\\frac\\mathcal B_x+1(z)^R-Bx1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1\\\\ =&[z^B]\\sum_i=0^B(x+1)^i\\sum_j=0^i\\binom ij(-1)^j\\frac\\mathcal B_x+1(z)^R-Bx-j1-(x+1)-(x+1)\\mathcal B_x+1(z)^-1\\\\ =&\\sum_i=0^B(x+1)^i\\sum_j=0^i\\binom ij(-1)^j\\binomR+B-jB \\endaligned \\]

后边的工作就是我们熟悉的了:不断把组合数卷积写成生成函数即可。

\\[\\beginaligned =&\\sum_i=0^B(x+1)^i\\sum_j=0^i[x^j](1-x)^i[x^B-j]\\frac 1(1-x)^B+1\\\\ =&\\sum_i=0^B(x+1)^i[x^R]\\frac 11-x^B+1-i\\\\ =&\\sum_i=0^B(x+1)^i\\binomB+R-iR\\\\ =&\\sum_i=0^B\\sum_j=0^i\\binom ijx^j\\binomB+R-iR\\\\ =&\\sum_j=0^Bx^j\\sum_i=j^B\\binom ij\\binomB+R-iR\\\\ =&\\sum_j=0^Bx^j\\binomB+R+1R+j+1 \\endaligned \\]

扔回去:

\\[\\beginaligned &\\sum_x=1^\\frac RB(R-Bx+1)\\sum_j=0^Bx^j\\binomB+R+1R+j+1\\\\ =&\\sum_j=0^B\\binomB+R+1j(R-Bx+1)\\sum_x=1^\\frac RBx^B-j \\endaligned \\]

那随便做就行了。代码看 zak 的去。

在 HQL 上使用 Min、Max 和 Count

【中文标题】在 HQL 上使用 Min、Max 和 Count【英文标题】:Using Min, Max and Count on HQL 【发布时间】:2010-09-24 18:14:50 【问题描述】:

hibernate HQL查询是否支持使用select min、max、count等sql函数?

喜欢:

select min(p.age) from person p

谢谢

【问题讨论】:

docs.jboss.org/hibernate/core/3.3/reference/en/html/… 见主题 14.7。 【参考方案1】:

是的,HQL 支持 min()max()count()

请参阅 Hibernate 文档中的 aggregate functions。

【讨论】:

我不得不否决这个答案,因为它很快就会被弃用。答案给人的印象是只有这三个功能存在,而其他功能也很多【参考方案2】:

这就是我在 Hibernate 中使用 max 的方式:

public long getNextId()
long appId;         
try
            Session session = HibernateUtil.getAdmSessionFactory().getCurrentSession();
            Transaction t = session.beginTransaction();
            String sequel = "Select max(JAdmAppExemptionId) from JAdmAppExemption";
            Query q = session.createQuery(sequel);
            List currentSeq = q.list();
            if(currentSeq == null)
                return appId;
            else
            appId = (Long)currentSeq.get(0);
            return appId+1;
            

        catch(Exception exc)
            System.out.print("Unable to get latestID");
            exc.printStackTrace();

        
        return 0;

    

【讨论】:

【参考方案3】:

支持一些聚合函数:查看manual

【讨论】:

不幸的是,链接已更改。你能重新检索页面吗?谢谢! 感谢您的提醒。链接固定

以上是关于Gym102978C Count Min Ratio 题解的主要内容,如果未能解决你的问题,请参考以下文章

gym101431B

Gym 100512B Betting Fast (题意+概率)

如何使用 canny 管理图像比较中的 MIN_MATCH_COUNT?

在HQL上使用Min,Max和Count

min/max优化,count ,group by

Gym - 101128E Wooden Signs DP