首页 > 其他分享 >atcoder

atcoder

时间:2022-08-25 13:33:29浏览次数:131  
标签:atcoder 一堆 石子 个数 times 给定 2N

  • \(ARC143\)

A
给定三个整数,一次可以将两个数或三个数减一,问最少几步能减完。

设一开始三个数为 \(A,B,C(A\leq B\leq C)\),如果 \(A+B<C\),那么说明一定是无法满足条件的,因为 \(C\) 至多被减掉 \((A+B)\),此时 \(C-A-B>0\)。

如果 \(A+B=C\),那么很显然答案就是 \(C\)。

如果 \(A+B>C\),其实也可以满足条件。我们发现要令其变为 \(A+B=C\) 的形式,那么我们在 \(A+B=C\) 中构造的是 \((A,C)\),\((B,C)\) 分别分组减,那么 \(C\) 会被减两次。

我们可以通过一次将三个数一起减,使 \(C\) 每次被减的次数少 \(1\)。我们一共需要 \(C\) 被减的次数少 \(A+B-C\)。

所以我们先进行 \(A+B-C\) 次减三个数的操作,数据变为 \(C-B,C-A,2C-A-B\),发现此时就能满足条件了。一共用 \(A+B-C+2C-A-B=C\) 次操作。

B
给定一个整数 \(N\),问能构造出多少个 \(N\times N\) 的矩阵,其中填入 \(1\) 到 \(N^2\) 的所有数,使得每一行中最大的数不为该数所在列中最小的数。

正难则反,我们考虑用总方案数减掉不合法的方案数。

总方案数显然就是 \((N\times N)!\)

不合法的方案数考虑在 \((a,b)\) 位置,那么与其相关需要考虑的数共 \(2N-1\) 个。

其中列的 \(N-1\) 个数与行的 \(N-1\) 个数可以乱排,所以答案乘上 \((N-1)!^2\)

其中不与其相关的共 \(N^2-2N+1\) 个数可以乱排,所以答案乘上 \((N^2-2N+1)!\)

考虑 \((a,b)\) 位置可以随意,共 \(N^2\) 中选择,所以答案乘上 \(N^2\)

考虑 \(2N-1\) 个数的选择,从 \(N^2\) 个数中选出 \(2N-1\) 个数,每一种选择都能选择最中间的数使得满足条件,所以共 \({N^2\choose 2N-1}\) 种选择。

答案就是 \({N^2\choose 2N-1}\times (N-1)!^2 \times (N^2-2N+1)! \times N^2\)

C
给定整数 \(n\), 给定 \(n\) 堆石子的个数 \(A_i\),两个人一人先手,一次可以拿任意堆石子,每一堆拿不超过 \(X\) 个,另一个人后手,一次可以拿任意堆石子,每一堆拿不超过 \(Y\) 个,问谁能赢。

我们考虑一种局面,此时有石子的个数 \(B_i=A_i\bmod{(X+Y)}\),且每一堆石子至多可以有一人取一次。

如果存在一堆石子使得 \(X>B_i\geq Y\),那么说明该堆石子 \(X\) 无法取得,而 \(Y\) 能取得,且所有 \(X\) 能取得的石子堆 \(Y\) 都能取得,\(Y\) 必胜。

否则,现在场上的局面一定是每一堆石子,要不都拿不了,要不都能拿,那么此时只需要有一堆石子 \(X\) 能拿,那么 \(X\) 可以把所有能拿的石子都拿走, \(Y\) 无法再拿, \(X\) 必胜。

否则就是 \(Y\) 必胜。

标签:atcoder,一堆,石子,个数,times,给定,2N
From: https://www.cnblogs.com/tidongCrazy/p/16623908.html

相关文章

  • AtCoder-abc265_e Manhattan Cafe
    ManhattanCafedp前缀和优化很容易想到\(dp\)的状态\(dp[i][j][k]\)表示前\(i\)个点,\(r_x\)与\(p_x\)的差值和为\(j\),\(r_x\)与\(q_x\)的差值和为\(k\)......
  • AtCoder Beginner Contest 263(Java)
    A题桶排序1importjava.util.*;2publicclassMain{3publicstaticvoidmain(String[]args){4Scannersc=newScanner(System.in);5......
  • AtCoder Beginner Contest 265 D Iroha and Haiku (New ABC Edition)
    \(O{(n\logn)}\)做法我在考场上只想到此做法,不难想到,可以将三段用二分预处理。\(xs[i]\)表示从\(a_i\)开始总和为\(P\)的末尾编号,可以用二分处理。最后\(O(n)\)判......
  • AtCoder-abc265_e Warp
    Warpdp状态优化一开始想到的状态为:\(dp[i][x][y]\),第\(i\)步走到\((x,y)\)的方案数,但是发现状态转移非常难写,原因是坐标计算非常大后来可以优化一下\(dp\)的状态......
  • AtCoder Grand Contest 058 部分题目不简要题解
    从这里开始比赛目录ProblemA MakeitZigzag考虑使$1,3,5,7,\cdots,2n-3$这些位置后三个中的最大值在中间,最后再处理一下最后两个位置就行了。Cod......
  • AtCoder-arc146_b Plus and AND
    PlusandAND贪心从高位开始判断,判断每个数字当前位如果置为\(1\)需要多少步,如果当前位原本就是\(1\),则不消耗,如果原本不是,则消耗低位后,需要将低位全部置\(0\)然后......
  • Atcoder ABC 265DEF
    D题目大意给定一个序列\(A=(A_0,\cdot,A_{N-1})\),判断是否能找到一个四元组\((x,y,z,w)\)满足:\(0\lex<y<z<w\leN\)\(\sum_{i=x}^{y-1}A_i=P\)......
  • AtCoder Beginner Contest 265赛后总结
    生日打了场AtcoderBeginner还可以吧……做出了前四道题,第五、六题是dp方程没想出来QwQA-Apple水题+1,感谢atcoder把坑都亮出来QwQ……分两种情况讨论:三个一卖的比(一个......
  • AtCoder Beginner Contest 264(D-E)
    D-"redocta".swap(i,i+1)题意:给一个字符串,每次交换相邻两个字符,问最少多少次变成"atcoder"题解:从左到右依次模拟#include<bits/stdc++.h>usingnamespacestd;......
  • [题解] Atcoder Regular Contest ARC 146 A B C D 题解
    点我看题A-ThreeCards先把所有数按位数从多到少排序,答案的位数一定等于位数最多的三个数的位数之和\(tot\)。对于每个i,把有i位的数排序,并记录每个i的排序结果。最后......