
atcoder
FrostMonarch
这个作者很懒,什么都没留下…
展开
-
atcoder beginner contest 159 Knapsack for All Segments
题目大意:已知X[n]数列,定义f(L,R)为 X[i] 下标区间(L,R) 中部分数(即子集)求和为S的数量,求N<=1e3,S<=1e3解题思路:我们假如已经知道区间(l,r)最左和最右的端点是满足题意的,那么根据乘法原理,这一小段区间对最后的答案所作的贡献就是:l*(n-r+1). 那么我们可以开始枚举r点,然后令dp[l][n]代表前l项中,和为n的最左的端点的...原创 2020-03-26 18:48:09 · 295 阅读 · 0 评论 -
atcoder Beginner Contest 156 Roaming(组合数学 插板法)
题目大意:有n个数,每个都是1,我们每次可以选择1个数减1,然后让另外一个数加1。但是我们不能生成负数。问我们假如进行k次操作,问我们这n个数能产生多少种不同的组合。注意[1,0,2]和[2,0,1]当作不同的组合。3<=n<=2e5. 2<=k<=1e9.解题思路:看到n的范围,我们容易想到O(n),k次操作后,最多有min(k,n-1)个0。我们从0的个...原创 2020-02-29 21:49:48 · 454 阅读 · 0 评论 -
atcoder Silver Fox vs Monster (贪心 一维差分)
题目大意:现在有n个怪物,第i个怪物有血量Hi,现在我们可以使用AOE攻击,使得放AOE的中心范围内2*X长度的怪物血量减少A. 问我们最少需要多少次AOE攻击。AOE攻击示例:解题思路:首先,我们想到做一些预处理,包括把每个怪物的血量理解为需要多少次攻击,然后让这些怪物按照坐标从小到大排序。这时候我们就可以贪心了,已知要处理的怪物位置为pos,而且血量大于0,那么让这只怪物承...原创 2020-01-28 13:54:46 · 555 阅读 · 0 评论 -
atcoder Colorful Hats 2 (递归,思维)
题目大意:现在有一串数an,同时我们已知有三种颜色的帽子。假设为R G B三种颜色。第i个数字的含义是,i前面有多少个人的帽子和第i个是同样颜色。现在问,有多少种不同的帽子颜色排列方案。解题思路:题目很明显是一道排列数学问题,然后n的范围是1e5,所以我们考虑能不能线性解决。我们考虑状态,当我们遍历到第i个的时候,与前面有多少种不同的衔接方法。什么意思呢?考虑数列0 0 1 1,比如第...原创 2019-12-02 23:26:19 · 283 阅读 · 0 评论 -
atcoder beginner contest 144 Gluttony(二分答案)
题目大意:有an,bn ,我们找到an和bn每个元素的一种一一对应关系。使得min( max(ai*bi))。已知我们可以进行操作让an中的任一个元素减少1。操作数最大为k,问我们怎么操作,可以min( max(ai*bi))。解题思路:首先,我们一个很直接的发现是:让an和bn进行一个排序,让an从小到大让bn从大到小排序,这时候让它们上下对齐放好,它们上下连线即为一个最佳匹配。...原创 2019-10-28 21:50:28 · 456 阅读 · 0 评论 -
atcoder beginner contest 142 Disjoint Set of Common Divisors(质因数分解)
题目大意:找出A,B中的所有互质的因数。解题思路:首先,我们必须找出因数。我们知道对gcd(a,b)进行因数分解就能得到a,b的所有因数。但是这里需要互质的因数,所以我们这里需要对gcd(a,b)作质因数分解。质因数分解和因数分解的代码很像,不过有一些不同if(res%i!=0)ans++; //得到一个因数后,我们ans++while(res%i==0)res/=i /...原创 2019-09-30 21:25:12 · 367 阅读 · 0 评论 -
atcoder beginner contest 132 Hopscotch Addict(BFS变形 编码)
题目大意:有一个有向图,我们定义操作:每次我们可以走3格。问从起点s到终点t,能不能恰好在n次操作后恰好达到。若能达到,最少需要多少次的操作。解题思路:无权图最短路,我们很容易想到使用BFS来解决。可是,这里区别于一般的BFS,我们每次要走3格。因为我们最终能到达的话,终点到起点的距离必然是3的倍数,所以图上的点最多只会走三次,例如:我们这个点v到起点s的距离可以为1,2,3,那么假如...原创 2019-06-30 22:15:25 · 353 阅读 · 0 评论 -
atcoder beginner contest 132 Blue and Red Balls(组合数 ,pascal 三角形)
题目大意:有K个蓝球,N-K个红球。这些球排成一行,小明每次收集连续子串的蓝球,现在有K个query,第ith query问的是若小明用i步把蓝球收集完,则这样的球的排列方式有多少种。题解:排列组合题目,首先我们假设有X1种排列红球的方法,有X2种排列蓝球的方法。那么本次query有X1 * X2种排列方法。所以问题转化为怎么算X1和X2. 首先看蓝球。蓝球每次query询问相当于分成...原创 2019-07-02 15:53:30 · 230 阅读 · 0 评论 -
atcoder beginner contest 130 enough array(ad hoc )
题目大意:已知一个数列,数字都为正数 若里面的一个连续子串大于K,我们则认为这个子串是满足要求的子串,问这个数列有多少个这种满足要求的子串。解题思路:一开始以为是区间dp,后来因为我比较辣鸡推不出,所以换了个naive的思路,结果就可以了。很直接的,我们有一个N^2的思路,每次枚举数列的一个数作为这个子串的起点,然后从这里开始出发区域求和到J点,若和大于K,那么N-J即为这个起点的...原创 2019-06-16 22:39:09 · 302 阅读 · 0 评论 -
atcoder beginner contest 126 xor matching(ad hoc 找规律;异或;余数公式)
题目大意:有0~2^M - 1个连续数,规定每个连续数重复一次的情况下,生成一个数列,任意两个相同的数的区间的所有数作异或,并且结果为K,给出K,M,问是否存在这样的数列。思路:这道题要尝试找找规律,动动手,比如K = 3 M = 2;可以有 0 3 0 1 2 3 2 1 ,然后我们发现在M > 2,K!= 0 的情况下,数列是: 0 K0 1......2^(M) - 2...原创 2019-05-21 21:02:01 · 411 阅读 · 0 评论