codeforce
文章平均质量分 50
SRT_HD
这个作者很懒,什么都没留下…
展开
-
codeforces 2017 JUST Programming Contest B Array Reconstructing
B 题意: 准确的意思就是给的一串数,不清楚的为-1,清楚的那个数,每前面一个是这个数减一,后一个是加一。且是按照0到m-1的一次次循环 (PS: 开头的数不一定确定,也可能是-1 (我一开始一直做不出来就是因为那个 1<i <=n,以为第一个数一定有赋值,却忽视了,要i不大于一,怎么i-1!!!) 思路: 其实方法挺多的吧。 1.根据数遍历,找到第一个被赋值的数,然后再这个数前面减一,到0以后回复m-1,后面的数加一%m 2. 也是找到第一个被赋值的数,然后推出第一个数是多少,然后按位原创 2021-04-02 19:43:43 · 205 阅读 · 2 评论 -
codeforces1498 B - Box Fitting python
b 题意: 有一个宽为W的大箱子,和N个宽不一的小箱子,将小箱子都放到大箱子里面,边上可以有空隙,问最低叠放多少层(默认高度一样) 思路: 1.先排序,再在选最大的小箱子,在取剩余宽度,在剩余列表中找有没有剩余宽度的箱子。 要循环判断剩余空间 2.队列优先,也是先排序,在最大的放一格,取第二大,看可不可以加到第一格,若不可以再开一格,若可以,则放到第一个,然后要记得加了以后要删去,最后统计有几个格子就是高度 判断这个是可以加到哪一格还是新建一格 代码执行的时候一直碰到这个问题,晕不行,后来吧所原创 2021-03-30 20:12:56 · 282 阅读 · 4 评论 -
codeforces1492 C. Maximum width python
C 题意 思路: 一次从前遍历到最后,找到每一个字符最早出现的位置,一次从后往前遍历,找到每个字符最后出现的位置 然后,从后遍历的第i+1个字符的位置-从前遍历第i个字符的位置,就是相邻两个最大的宽,然后持续更新 。 PS 结合使用 n,m=map(int,input().split()) s=input() t=input() a=[] ans=0 i=-1 for x in t[:-1]:#反着遍历一遍 i=s.find(x,i+1) a+=[i] i=n for x in t[原创 2021-03-18 11:51:52 · 166 阅读 · 0 评论 -
codeforces1492 D. Genius‘s Gambit python
D 越来越觉得就是找规律啦~ 听说这是俄罗斯中小学生比赛… 原来我还是一个孩子呀 真棒 回归记录 题意: 有a个0 b个1 组成X Y使得X-Y的值有K个1 (均为二进制) 思路: 首先 要会二进制加减 然后会发现要几个1 再 1 0给的个数够用的情况下,是很简单的,只要确定K个数的排排,然后保证其他相等就好了。 (爷累了,好难码字清楚) 思路 这是一位大佬详解 就是我大概思路也是这个样子,不过实现有所不同 就 除了题目所限制的情况外都是可的 再分0个数是否够 且开头必须是1 0 够的情况下就照上 不够:原创 2021-03-18 10:11:17 · 127 阅读 · 0 评论 -
codeforces A. Common Subsequence python
C1 这题不要特别注意输出,最首页有一个通知 就是,有多种答案任意一个都可以 所以只要保证第一行变成第二行,然后改变的次数是长度的3倍以内,然后每次选中(输出)长度的数按位取反然后反转。 思路: 我的思路是从最后面开始,要是相同不管,不同则记录不同的个数,然后全部取反,再个数取反,再全部取反,刚好3次,所以也可以一个字母一个字母比,次数也刚好够 for _ in range(int(input())): n=int(input()) a=input() b=input()原创 2021-03-16 20:02:36 · 132 阅读 · 0 评论 -
codeforces B. Sequential Nim python
B 题意: N堆石子,两个人,轮流按顺序拿,每次拿最少一个,最多一堆,最后拿不到石子的人输,输出赢的人(第一个,第二个) 思路: 一开始以为是尼姆博弈,但发现不是很一样,尼姆是任意取哪一堆石子,这个是要按顺序(其实就是要另找规律),简单了一点 规律: 看开头1的个数,要是是奇数个,1必输,其他情况都是1赢 (就是占据主导地位的人赢,而中间出现1 无论几个1都可以再上一个数选择全拿或者留一个来控制局面) for _ in range(int(input())): n=int(input())原创 2021-03-16 15:53:23 · 108 阅读 · 0 评论 -
CodeForces - 1472E- Correct Placement -python
CodeForces - 1472E- Correct Placement E 题意 题目说的是朋友 我个人觉得转换成矩形更好形容 有n 个矩形 对于每个矩形可以将它横着放或者竖着放 问能否找到另一个矩形J能够放在 i 前面并且不将 i 遮挡(i的高宽都要有剩余) 如果有的话输出符合条件的矩形的编号 否则输出-1 解题思路 理解的话好像不难想 我个人觉得难在 将其用代码表示出来 就 找到一个比这个矩形长宽都小的矩形 先将h w比较大小 将小的放在前面(这样小的和小的比不容易出错)然后 再加上序号存到新的列原创 2021-03-07 11:38:40 · 164 阅读 · 0 评论 -
codeforces 1472 B. Fair Division Python
codeforces 1472 B. Fair Division Python 传送门 题意: 又又又是Alice和Bob ,这次改成了他们分糖果。每颗糖果1g或2g不定(后面会有输入每颗糖果的重量),父母随机给他们的,但是他们非常有爱的选择均分,你只需要帮忙判断能不能均纷就欧克了 解题思路: 就大概晓得什么情况什么分类就好了 1.总重量要是偶数 2.1g糖的数量要是偶数 3.2g糖的数量奇偶没得太大关系,是奇数的话拿两个1g凑就好了 解答 for _ in range(int(input())):原创 2021-03-06 19:14:05 · 328 阅读 · 0 评论 -
codeforces 1472 D. Even-Odd Game Python
codeforce 1472 D. Even-Odd Game Python 题意: Alice和Bob玩游戏,在一组数列里面任意抽取一个数,Alice先抽,若为偶数(even)则Alice的分数加上这个偶数,若为奇数(odd)则不加分,而Bob刚好相反,抽到奇数加分,偶数不加分。在两人都积极参与的情况下,所有数字抽完,谁分数高谁赢,若分数相同,则输出‘Tie’(平局) 解题思路: 积极参与就是一个坑。 我的思路是将数组排序,每次都抽最大的那个数,在看人加分或者不加(毕竟拿走这个数对方也加不了) 解答:原创 2021-03-06 18:59:13 · 166 阅读 · 0 评论