xcpc
文章平均质量分 57
安特尼
沉迷电子竞技的网瘾少年
展开
-
Codeforces Round 642 (Div. 3) D. Constructing the Array
每次选择,我们要先选择最长的字段,在长度相等的情况下选择最靠左边的。我们可以将最靠左边的这个条件转换为右边剩余长度最长的,这样字段和剩余长度的增减性相同,我们可以用pair来存储字段长度和剩余长度,用大根堆来存储每个线段,每次取出队头元素,得到答案。我们可以发现每次填充一个数之后,我们就得到两段新的线段。所以按照题目所说的方法,我们模拟就可以得到答案。但我们需要把更新控制到nlog(n)以内。题意:根据所示方法构造数组。原创 2024-01-07 00:36:40 · 405 阅读 · 0 评论 -
Codeforces Round 646 (Div. 2) C. Game On Leaves
题意:给定一颗树和一个节点x,每次从这棵树上删除一个叶子节点及其任何一条连接的边,Ayush先手,问谁先取到节点x。不难发现,当节点x相连的节点及其子节点有奇数个时,Ayush胜利,反之,Ashish胜利。对于样例一,不管Ayush先选择去掉哪一个节点,节点x都会被Ashish拿走。我们可以得出对于Ayush如果节点x本来就是叶子节点,那他就可以直接取走。Ayush可以先取节点4,然后将必败态留给Ashish,一定胜利。对于样例二,Ayush可以直接拿走节点x。1.节点x的节点及其子节点有奇数个。原创 2024-01-06 17:30:30 · 432 阅读 · 0 评论 -
Codeforces Round 635 (Div. 1) A. Linova and Kingdom
首先,这个节点对答案的正贡献是到根节点的距离deep,因为我们选择一个节点就一定会选择他的子节点,所以选择这个点会让他所有的子孙节点的贡献-1,所以负贡献为s[i](s数组表示该节点子孙节点的数量),总的贡献就是 deep - s[i] ,将每个点的贡献排序,从大到小选择k个,即为最大值。对于任意一个父节点,我们如果选择父节点而不选择他的子节点,那么一定不如选择他的子节点,可以得到更大的数。题意:给定一棵树,选择k个点,求每个点到根(1是根节点)之间最短路径上非选择点数量之和的最大值。原创 2024-01-05 19:20:05 · 812 阅读 · 0 评论 -
Codeforces Round 723 (Div. 2) C2. Potions (Hard Version)
当碰到负数时,如果加上这个负数,我们的值仍然是非负数,那么本着贪心的原则,能贪则贪,我们就选择这个。对于这道题就是当我们遇上加上这个数是负数时,如果之前有比这个数更小的负数,我们就删去之前更小的那个负数,选择这个数。反悔贪心也就是指我当前阶段觉得这个可以贪,那我就贪,但当我走到下一个阶段发现贪当前这个远胜于贪之前那个的时候就反悔,不再要之前贪的那个了,俗称“渣男”。题意:给定长度为n的数组,每个元素可选择要或者不要,初始值为0,要求在保证得到的值始终不为负的情况下,能选择的最多的个数。原创 2024-01-04 22:34:16 · 421 阅读 · 0 评论 -
Codeforces Beta Round 1 B. Spreadsheets
对于BC23转为R23C55,我们只需要顺序遍历就可以得到C对应的值,即B为(B - A)* pow(26 , 1) + (C - A)* pow(26 , 0)。对于R23C55转换成BC23则需要注意,在这种表示方法中并不存在0的表示,所以我们在每次取模之后,如果遇到0,则需要把他转换为26,同时在 除以26的时候减一。观察BC23和R23C55,发现第二种表示方法仅有RC两个字母,并且不相邻,因此我们可以判断出当前的表示方法是那种。题意:完成两种表示方式之间的转换。因此我们需要用"Z"来表示0,原创 2024-01-03 10:56:04 · 448 阅读 · 0 评论