• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Object_S

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | | 管理

随笔分类 -  Source -- Codeforces

1 2 下一页

 
Panasonic Programming Contest 2021(AtCoder Beginner Contest 231)
摘要:整体情况 从上次的"交一次过一次"到这次的"乱交,过题数到4个就行",实际上让分数段上移了一个。 但是也要注意到这样的危险:如果是一个要求正确率而非过题数的比赛,就无了。 换句话讲,如果比赛时间长且难度低,就应该稳健A题。 如果比赛时间短且不一定写得完,就应该"疯狂"交题。 细节问题 这次B题妄想用 阅读全文
posted @ 2021-12-11 22:29 Object_S 阅读(122) 评论(0) 推荐(0)
Coloring Rectangles
摘要:一开始考虑分类讨论,但是发现考虑的逻辑范围有点多,就很烦躁了。 其实此题如果n%3==0或者m%3==0,都可以直接求出答案,那么实际上要考虑的其实只有n%3!=0&&m%3!=0的情况。 对于这种情况,没必要分四种情况讨论。其实对于任意一个情况,在处理掉可以被整除的部分后,剩余的部分其实只需要看一 阅读全文
posted @ 2021-12-10 22:29 Object_S 阅读(50) 评论(0) 推荐(0)
CF1614C Divan and bitwise operations
摘要:写在"基石"之前 位运算有着相对独立性。因此,如果对某些数字进行运算,如果不考虑实际流程和组合,只考虑最终结果的和,可以考虑到:是否可以利用位运算"相对独立性"的性质? 思路1:从十进制到二进制 可以看到,最终要求得的结果其实就是一个序列所有子序列的异或和,但是考虑到位运算的相对独立性,应该可以注意 阅读全文
posted @ 2021-12-09 22:30 Object_S 阅读(78) 评论(0) 推荐(0)
Codeforces Round #756 (Div. 3) C. Polycarp Recovers the Permutation
摘要:一开始读错题意了,还以为是给定p求a,只能想到vector/双端队列模拟。 实际上,是给定会输出的数组,让我们求出原数组。 考虑题目给出的性质并根据题意中的模拟过程判断,不难看出原数组中的最大值一定会变成新数组的两端之一,这毫无疑问会是我们判断合法性的关键一步。 除了第一种不合法性,我们还要考虑,是 阅读全文
posted @ 2021-11-26 11:10 Object_S 阅读(95) 评论(1) 推荐(0)
Educational Codeforces Round 117 (Rated for Div. 2) B. Special Permutation
摘要:一开始想到了判断输出-1的充分条件为a、b与(n/2)之间的大小关系,但实际上没有考虑到abs(a-b)大小所带来的后效性影响。 换句话讲,除了贪心地把a,b分别放到最前面和最后面,还分别需要模拟填充和模拟判断,也就是"下苦功夫"。 在这种思路明显的题目中,我们常常要考虑:是否在代码的实现上会遇到困 阅读全文
posted @ 2021-11-24 11:30 Object_S 阅读(44) 评论(0) 推荐(0)
Educational Codeforces Round 117 (Rated for Div. 2) A. Distance
摘要:做法显然,考虑到曼哈顿距离的性质,直接折半即可。考虑到奇数可能不能整除,用另一个奇数进行数字转移即可。 如果两个数字加起来为奇数,就明显只能输出"-1 -1"了。 值得考虑的是,如果0 0,怎么输出呢,答案是:也输出"0 0",而不是将此情况并到"-1 -1"中。 #include<cstdio> 阅读全文
posted @ 2021-11-23 10:52 Object_S 阅读(52) 评论(1) 推荐(0)
Codeforces Round #752 (Div. 2) B. XOR Specia-LIS-t
摘要:一开始怎么都想不到思路。实际上,不能从LIS和DP的角度考虑,而是要从题目要求的东西的性质入手,再结合LIS在当前题目下的特殊性质,才能找到一个比较好的解法。 题目中,分割的每个序列的"值"都是LIS的长度,考虑一种极限情况:分成n个序列。在这种情况下,如果n为偶数,就得到了一个正确的结果("YES 阅读全文
posted @ 2021-11-22 21:42 Object_S 阅读(33) 评论(0) 推荐(0)
Codeforces Round #755 (Div. 2) A. Mathematical Addition
摘要:这种题做的比较少,思路很不清晰,实际上没有思路。 这种题需要考虑特殊情况,即反向构造。考虑:如果x、y本身与u、v相同,那么1+1不等于1。 拓展这个想法,既然我们现在已经可以获得定值,那么可不可以把这个定值拓展为带有未知数的恒等式呢? 像这类题,往往都是构造特殊情况得出答案,且很少使用较高级的数学 阅读全文
posted @ 2021-11-19 22:28 Object_S 阅读(37) 评论(0) 推荐(0)
Codeforces Round #754 (Div. 2) B. Reverse Sort
摘要:卡题原因:将自己的思想代入到了题目要求中。 题目要求一次操作可以操作多个数字,但是我认为要最小化数字数量。 实际上,要么是0次操作,要么是1次操作。 #include<cstdio> #include<iostream> #include<vector> #include<algorithm> us 阅读全文
posted @ 2021-11-19 14:31 Object_S 阅读(46) 评论(0) 推荐(1)
Codeforces Round #754 (Div. 2) A - A.M. Deviation
摘要:看完题立刻想到了对3取模,分别判断0/1。 然而想到了之前草率提交,掉分的惨痛经历,于是打算多进行几次演算,做一下充分性证明。 观察到d(a1,a2,a3)=abs(a1+a3-2*a2),想到:是否可以将(a1+a3)视为一个"整体"(num1),(2*a2)视为另一个"整体"(num2),最小化 阅读全文
posted @ 2021-11-18 21:24 Object_S 阅读(28) 评论(0) 推荐(0)
Codeforces Round #753 (Div. 3)
摘要:B. Odd Grasshopper(https://codeforces.com/contest/1607/problem/B) 找规律。很多时候不容易想到这个题目的性质,也不容易通过数学方法进行总结,就应该考虑是否出题人打算让我们推导确切的公式? 算法竞赛不存在"步骤分",如果一个题目的难度和推 阅读全文
posted @ 2021-11-15 15:10 Object_S 阅读(50) 评论(0) 推荐(0)
Codeforces Round #751 (Div. 2) A. Two Subsequences
摘要:显然去除最小的字母,然后输出剩下的字符即可。 但是第一次写忘记了一个特殊情况:所有字母都相等且等于z。写代码时下意识地认为给出的字符串总有小于z的,就算等于z,也可以输出一个z,但没有考虑到此时index没有被更新。 #include<cstdio> #include<iostream> #incl 阅读全文
posted @ 2021-10-25 18:23 Object_S 阅读(68) 评论(0) 推荐(0)
Codeforces Round #750 (Div. 2) C. Grandma Capa Knits a Scarf
摘要:双指针。结合回文串的性质,对于最外面的两个端点,由于每次只可能删除同一种字符,那么如果内部的串可构成回文串,那么外部字符无关紧要,符合无后效性。 值得注意的一点是,双指针不一定两个指针都一起移动,需要每次都判断条件,并进行值的增减。 #include<cstdio> #include<iostrea 阅读全文
posted @ 2021-10-25 14:56 Object_S 阅读(92) 评论(0) 推荐(0)
Codeforces Round #745 (Div. 2) B. Diameter of Graph
摘要:场上思路:发现存在两种特殊情况:边数最小的菊花树和边数最大的完全图。但由于理解错一般无向图直径的定义,不会处理介于菊花图与完全图之间的情况。此外,对于完全图直径为1和菊花图直径为2的性质理解的也不够深刻。 改进:对于题目定义的新概念要思考,同时要注意积累特殊情况的性质(异或和、菊花图等)。 #inc 阅读全文
posted @ 2021-10-22 21:52 Object_S 阅读(201) 评论(0) 推荐(0)
Codeforces Round #745 (Div. 2) A. CQXYM Count Permutations
摘要:由对称性得知,如果一个数字成立(如1234),那么这个数字置反一定不成立(如4321),那么我们可以大胆猜想一个定理:对于长为2*n的序列,这个序列的合法排列数为((2*n)!/2)。 注意,此处有着大量模运算,除法需要使用逆元。 #include<cstdio> #include<iostream 阅读全文
posted @ 2021-10-22 15:10 Object_S 阅读(56) 评论(0) 推荐(0)
Codeforces Round #746 (Div. 2) C. Bakry and Partitioning
摘要:解题思路:由树的归一性和异或的充分性,容易证明在每个点异或和不等于0的情况下,分成的连通块只能是奇数个。由于树的单链性,最终的每个连通块的异或和只能是所有点值的异或和。 考虑到树的性质,再结合异或的性质,发现偶数个连通块都可以化归为同一个连通块,最终可以意识到,在同一棵树上,如果能够分成奇数个连通块 阅读全文
posted @ 2021-10-21 14:16 Object_S 阅读(33) 评论(0) 推荐(0)
Codeforces Round #747 (Div. 2) B. Special Numbers
摘要:读题 注意到n的每个次方只会被利用一次,观察样例说明,意识到对于第k个值,这个值的大小为n^0+n^1+...+n^k。 联想到快速幂的过程。(快速幂算法有效性的证明) 意识到可以把k进行分解,从二进制的角度观察k的值,发现对于k的每一位,如果第i位为1,则ans+=poww(n,i),否则不进行操 阅读全文
posted @ 2021-10-20 14:33 Object_S 阅读(72) 评论(0) 推荐(0)
Codeforces Round #747 (Div. 2) A. Consecutive Sum Riddle
摘要:场上思路 将数列视为公差为1的等差数列,二分+等差数列通项公式。 改进 注意到最终只需要凑出n,且l和r与n的范围相同,考虑到n=-(n-1)-(n-2)-...+0+1+...+(n-1)+n,那么l和r就可以O(1)求出。 做题 #include<cstdio> #include<iostrea 阅读全文
posted @ 2021-10-19 21:35 Object_S 阅读(51) 评论(0) 推荐(0)
Codeforces Round #749 (Div. 1 + Div. 2, based on Technocup 2022 Elimination Round 1) 赛后总结
摘要:一、整体流程 做了A和B。 大胆猜想,直接写码…… 二、具体题目 A. Windblume Ode (1)读题 ①场上:从样例解释中发现,输出时的顺序无关紧要,换句话讲,输出1 2 3 ... 8 9与输出6 9 1 2 3 ... 8都算正确。 题目要求集合大小尽量大,但不需要总值最大。同时,需要 阅读全文
posted @ 2021-10-18 13:31 Object_S 阅读(211) 评论(0) 推荐(0)
Codeforces Round #748 (Div. 3) D1. All are Same
摘要:读题 由题意知道,最终只能减到0。那么可将最小值代表为0,其他值减去最小值。接下来获取最大的k,k满足能将每个数减到0。 场上思路 既然k可能成立,也可能不成立,那么可以从a[i]的范围出发进行二分,如果这个k能成立,那么就贪心的向大走。 反思 场上思路没有考虑到k不存在充分性。换言之,代码无法实现 阅读全文
posted @ 2021-10-15 08:46 Object_S 阅读(106) 评论(0) 推荐(0)
 

1 2 下一页