AtCoder ExaWizards 2019 D Modulo Operations】的更多相关文章

题意 给出一个长度为\(n\)的数列和数字\(X\),对于数列的每一种排列,其权值\(X\)依次对排列中的数取模,求出\(n!\)种情况最后剩下的数的权值和 分析 如果大的数字排在小的数字后面,那么大的数字对答案无影响. 可以将数列从大到小排序,然后考虑\(dp\)每个数字经过\(n\)次操作后的方案数 设\(dp[i][j]\)为\(i\)次操作后数字为\(j\)的方案数 两种转移方程 选择:\(dp[i][j\mod a[i]]=dp[i][j\mod a[i]]+dp[i-1][j]\)…
AtCoder ExaWizards 2019 简要题解 Tags:题解 link:https://atcoder.jp/contests/exawizards2019 很水的一场ARC啊,随随便便就ABCDE了,F最后想到了还没有写出来. D题花了太久时间所以只有Rank31,我是真的菜. 嘿嘿嘿,上述装逼方式是我最为反感的机房里的言语,既然快退役了,也就学一学,感受一下机房里dalao们怎么样装逼一时爽.一直装逼一直爽,听者一时丧,一直听一直丧的快感咯 有意思的题应该是DE了. A Regu…
ExaWizards 2019 C - Snuke the Wizard 发现符文的相对位置不变,直接二分某个位置是否到达最左或最右来计算 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putc…
AtCoder diverta 2019 Programming Contest 2 看起来我也不知道是一个啥比赛. 然后就写写题解QWQ. A - Ball Distribution 有\(n\)个气球\(k\)个人,每个人至少要拿一个气球.问所有分配方案中拿走气球最多的那个人可以比最少的那个人多拿多少个. 打比赛的时候一开始没看到题,别人说输出\(n\% k\)就过了,然后我就过了. 现在重新一看题解... 应该是\(k=1\)时,答案是\(0\),否则答案是\(n-k\). #includ…
Time Limit: 2 sec / Memory Limit: 1024 MB Score : 600600 points Problem Statement Snuke has a blackboard and a set SS consisting of NN integers. The ii-th element in SS is SiSi. He wrote an integer XX on the blackboard, then performed the following o…
题目传送门:F - Operations on a Matrix (atcoder.jp) 题意: 给一个N*M大小的零矩阵,以及Q次操作.操作1(l,r,x):对于 [l,r] 区间内的每列都加上x:操作2(i,x):对于第 i 行,替换为x:操作3(i,j):查询矩阵第 i 行,第 j 列元素的值. N.M.Q大小均为2E5. 思路:树状数组 首先考虑没有操作2的情况,那么很容易地就可以用树状数组实现对列的区间加及单点查询. 当有操作2时,对于操作3的查询:将该行最后一次操作2的行修改值记作…
题目链接 感觉这样的题真的称得上是鬼斧神工啊,\(\text{OI}\)中能多一些这样的题目就太好了. 题意: 有一个二维的三角坐标系,大概如图所示(图是从atcoder里偷下来的): 坐标系上的每个整点处都有一盏灯,初始时只有一盏灯亮着.每次可以选择三个整点\((x,y)\),\((x,y+1)\),\((x+1,y)\)(即一个底边向下的正三角形),将这三盏灯的开关状态反转.现在给出若干次反转操作后所有亮着的\(n\)盏灯的坐标,求最初亮着的是哪一盏灯.\(n\leq 10^4\),\(-1…
AB:div 3 AB??? C:div 1 C???场内自闭的直接去看D.事实上是个傻逼题,注意到物品相对顺序不变,二分边界即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #d…
problem link Official editorial: code: int main() { #if defined LOCAL && !defined DUIPAI ifstream in("main.in"); cin.rdbuf(in.rdbuf()); // ofstream out("main.out"); // cout.rdbuf(out.rdbuf()); #endif vector<Mint> fact(md)…
\(\mathcal{Description}\)   Link.   给定一个长度为 \(n\) 的字符串 \(s\),每个字符上初始有一张卡片.\(q\) 次操作,每次指定 \(s\) 中字符为 \(c\) 的所有位置上的所有卡片向左或向右移动一位,移出字符串则消失.求操作完成后剩下的卡片数量.   \(n\le10^5\). \(\mathcal{Solution}\)   脑补了很多优雅的做法,卡了好久才发现这道题其实很蠢 qwq--   显然,消失的卡片是原字符串上卡片的一段前缀和一段…