ATcoder 2000 Leftmost Ball】的更多相关文章

Problem Statement Snuke loves colorful balls. He has a total of N×K balls, K in each of his favorite N colors. The colors are numbered 1 through N. He will arrange all of the balls in a row from left to right, in arbitrary order. Then, for each of th…
题目链接: https://atcoder.jp/contests/agc002/tasks/agc002_f 题解: 讲一下官方题解的做法: 就是求那个图(官方题解里的)的拓扑序个数,设\(dp[i][j]\)表示有\(i\)个0色和\(j\)个非0色的图的拓扑序个数(\(i<j\)),则转移一是加入一个0色球,二是加入一个非0色球(拓扑序以非0色球开始),这种情况下我们固定了开头所以还剩\(((K-1)j+i-1)\)个位置放入\((K-2)\)个球,\(dp[i][j]=dp[i-1][j…
[题目]F - Leftmost Ball [题意]给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列.n,k<=2000. [算法]计数DP [题解]只看黑体字部分即可. 自己考虑了几种计数方案,都不能实现.一种从左到右,但要记录每种球剩余多少,不可行.一种从右到左枚举白球包含区间填充,但因为只看白球,每种颜色没有关键球,会有重复统计的问题. 计数的关键在于白球的原色不重要以及每种颜色关注最左端的球(这里不含变成白球的球). 本题既然nk…
Description Snuke loves colorful balls. He has a total of N*K balls, K in each of his favorite N colors. The colors are numbered 1 through N.He will arrange all of the balls in a row from left to right, in arbitrary order. Then, for each of the N col…
[agc002f]Leftmost Ball(动态规划) 题面 atcoder 洛谷 题解 我们从前往后依次把每个颜色按顺序来放,那么如果当前放的是某种颜色的第一个球,那么放的就会变成\(0\)号颜色,所以无论何时,\(0\)号颜色的数量不能少于其他颜色的数量. 可以设状态\(f[i][j]\)表示前面一共放了\(i\)个\(0\)号颜色的球,而一共出现了\(j\)种其他颜色的球,根据上面的东西,可以知道\(i\ge j\).每次转移我们分成两种考虑.第一种就直接在后面接一个\(0\)号颜色的球…
原文链接https://www.cnblogs.com/zhouzhendong/p/AGC002F.html 题目传送门 - AGC002F 题意 给定 $n,k$ ,表示有 $n\times k$ 个球,其中,颜色为 $1,2,\cdots, n$ 的球各有 $k$ 个. 将这些球任意排列成一排,对于每一种颜色,将这种颜色的球的最左边的那个涂成颜色 $0$ . 问最终可以得到多少种不同的排列. $1\leq n,k\leq 2000,{\rm Mod} = 10^9 +7$ 题解 首先当 $…
传送门 dp妙题啊. 我认为DZYODZYODZYO已经说的很好了. 强制规定球的排序方式. 然后就变成了一个求拓扑序数量的问题. 代码: #include<bits/stdc++.h> using namespace std; inline int read(){ int ans=0,w=1; char ch=getchar(); while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();} while(isdigit(ch))ans=(ans<…
题目传送门:https://agc002.contest.atcoder.jp/tasks/agc002_f 题目翻译 你有\(n*k\)个球,这些球一共有\(n\)种颜色,每种颜色有\(k\)个,然后你可以随意把它们放成一行.放好后把每个颜色最左边的球染成\(n+1\)号颜色,问这样可以搞出多少种不同的颜色序列. 题解 最近没休息好,状态不好,而且这还是我最不擅长的计数题,跪了跪了. 你们去看别人的题解吧,我也讲不清楚,这里只有丑逼代码可以看. 时间复杂度:\(O(nk)\) 空间复杂度:\(…
$n \leq 2000,k \leq 2000$,现$n$种球每种有$k$个,在一种排列中,会把每种颜色的球第一个出现的涂成第0种(不同于原来的n种)颜色,问最终会出现多少种不同的序列.膜1e9+7. 把0球当成新的球,可以发现放球方案合法就是每个前缀中0球都比当前颜色数多.$f(i,j)$--放了$i$个0球,放了$j$种颜色球的方案数.注意颜色是不需要知道是谁的,在有$j$种颜色的情况下,新加一种乘上$(n-j)$即可.转移的时候要么放一个0球要么放一种颜色球.不过这里要注意,放颜色球时,…
Atcoder 题面传送门 & 洛谷题面传送门 这道 Cu 的 AGC F 竟然被我自己想出来了!!!((( 首先考虑什么样的序列会被统计入答案.稍微手玩几组数据即可发现,一个颜色序列 \(c_1,c_2,\cdots,c_{nk}\) 满足条件当前仅当对于从左往右数第 \(i\) 个 \(0\) 号颜色的位置 \(p_i\),\([1,p_i-1]\) 中非零颜色的种类 \(<i\).简单证明一下,必要性:如果 \(\exist i\in[1,n]\) 满足 \([1,p_i-1]\) 中…