自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Educational Codeforces Round 169 (Rated for Div. 2)C题

逆天了,气死了,气死了,气死了。

2024-08-16 15:14:02 266

原创 Codeforces Round 966 (Div. 3) CDE题

唉,人生无常,大肠包小肠。做两个map哈希表,一个map是int对于char的还有一个是char对到int。这两个用来意义对应对应的值,比如第一个值是2第一个对应的字符是c,那么map【2】对应的就是c,如果后面还有2对应的字符,如果对不上就NO了,另外同理。注意的是两方都要来一遍,不然可能会漏人,然后遇到是0的值的,记得修改成最大数。

2024-08-15 13:40:48 393

原创 牛客入门刷题

注意点:本题i和j容易弄混,请在脑子清醒状态下写题。解题思路:既然给出所有元素要去求l-r的解,我们首先应当看到异或的话,是最好是最终答案里头的1带的越多越好,由于X跟其他元素异或,先看单个元素吧,举个例子:10001,那么就要01110来对应来得到最大的数,既然这样,王多个数推,就是要在l-r这个区间内能变成1最多的,即,如果区间内的所有数的32位的某一位,1多于0,那么x的这一位就需要是0来让更多的1出现,相反同理。

2024-08-09 21:21:57 453

原创 牛客算法入门题单

首先用n位二进制表示n行里面哪些行是被挑走了,哪些是留着的,对这个二进制遍历,九八所有n行的可能结果就遍历出来,然后去把每一情况下的剩下的列的和从大到小排列,然后就先看行呗挑走的数量,然后k-这个数就是lie的数量,从大到小贪心吃这个数量。即可,注意特殊情况判断(k>=m||k>=n).然后直接用数组需要每次挑行的时候都重新赋值为0,不然会出问题,vector也一样用fill重新赋值。

2024-08-09 13:11:49 348

原创 Codeforces Round 964 (Div. 4)B,E

这题在前四题感觉最难。首先看好题意,要所有翻开来的可能有四种(a1,a2,b1,b2两两组合)这里直接列举就行,反正数量就四个。每一种看看能否赢,而赢的话注意:需要两对全赢或者有一对平局了,然后另一对赢了。

2024-08-07 16:30:28 451

原创 补一些题...

二分,给定一个上限m,那么l=0,r=m。每次得到中间的mid值,然后遍历数组,sum+=min(mid,a[i])得到当前mid这时候的sum值,看这个值跟m比大小,如果小,那么说明l可以变成mid再往前走,如果大了,那就r变成mid+1,再制造出来的mid就会小了。当然还需要看一下全部a[i]加起来的和跟m比一下大小,如果这个sum小了,那就可以是无限大的了。

2024-08-05 16:48:59 231

原创 Educational Codeforces Round 168 (Rated for Div. 2)BC

我真实fu了,读错题意一直到结束后的第三天。卡这题赛时卡到崩溃,导致C都没做题意是输出总共能有几次只用一个x去创造三个空间,那么就很简单了只有两种情况...x.x和他的翻转过来,就是求全体有几个这种形态。

2024-08-01 16:33:05 231

原创 位运算经典好题

首先巧妙的第一步是,通过遍历全体数组,用^来去除所有重复的元素(原理是a^a=0,且^是可以交换律的),于是得到了需要求的两个数的^的结果,所以目的是把这两个分开来,怎么做呢,首先找到最低位是1的pos,用k'=k&(~k+1)来得到。然后在遍历数组,如果说在pos那一位都是1的话,就^这样可以把相同点去掉,而且另一个数是不会进来的,因为(pos那一位只有可能一个是1一个只能是0,^的性质),然后就能得到一个数了,在最后再把之前最开始遍历^的结果给他^回来,就能得到另一个数,这样就能得到结果了。

2024-07-30 15:17:09 189

原创 EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)B+C

一开始读题都没读明白,唉拖了好久。题意其实就是你搞一个k,然后可以选择顺序(无需连续,只需是先后的index即可)然后把这些下表的数全部加一。但是最后是支出k+1个代价,那么其实好解,每一个数字要加一,k都要多一,所以跟每个数字跟前一个数的差值相当,所以全部加起来就好了,然后就是k+1的+1的问题,这个+1也只用看落差最大的那个数就可以了,所以看看代码。

2024-07-30 12:40:50 271

原创 CFround956

这题其实挺巧妙的,你那个mod3,对于每一个数,如果结果加2再mod3其实相当于减一,即x+2=x-1;那么相邻(非对角)就是加1,,若是加1再mod3,同理即x+1=x-2那么意思就是,横着和竖着来,你mod三的值永远是不会变的,既然这样代码就好办了。

2024-07-28 13:02:23 171

原创 CFround962Div3 C D

唉,赛时其实想到这个前缀和的思路的,前两天才看了前缀和的思想讲解,结果正式比赛居然就想不起来了,可悲啊,其实非常简单的。题意是给你两个index,让你看看在a,b两个字符串的这两个index区间内,正常排序,有几个不一样的。做法就是前缀和:在最初就统计前面每个下表之前,每一个字母出现的次数,到输入l,r这两个index后,直接数组相减即可。上代码但这题还是有一些要注意的:1.输入字符串后前面加一个随便的字符,因为后面做前缀和的时候是从1开始遍历的,否则会爆内存。

2024-07-28 11:25:52 294

原创 cfround 953

其实只有C需要补题。

2024-07-26 10:12:47 216

原创 round954C

这个思路好想,代码好些,交给了我一个大重要的点,一定要初始化,不然卡在一个WA1个小时。还有数组稍微开大一点就行。最好就用vector。

2024-07-25 15:01:20 197

原创 round955 B+C

一开始一直以为导致TLE的原因是除以y的过程太长,但实际却是除以y是指数级增长的,无需担忧这个,导致TLE的主要原因是k++这个东西,正确做法就是正常把x除以到小于y后,然后再给他做一个于k的长度判断,如果还是k比较长的话,那就会把x变成1,然后就是给次都是把x从1到y,有变成1,就可以有公式k%y,x+这个就是最终答案。解题时还发现最后不return也会导致超时,还有以后最好卸载一个solve()里面,要退出直接return即可,不然有时要退出双重循环还是挺麻烦的。

2024-07-25 10:02:53 200

原创 CF 961 A和B1

他那个说是说对角线,一开始没看明白,原来是只有左上和右下的对角线,读题读了好久,那既然这样,就是从最中间的那一条开始填充,最中间那条就是n,然后往两边,但是每次都有两条,所以搞个flag记录一下。

2024-07-24 13:26:26 142

原创 雨巨刷题录模拟题

做法一:完全暴力:首先是建立一个超级数组用来放每一个数字(就是单词)的放进去的时间,比如第三个放进去的就是3。总共是用来后面遍历整个可能的数组,找到最小值,这个最小值给他变成0,相对于提出数组,这些后面再说,先说前面,先把应该放的(就是可容纳的容量)放进去,记录他们的放进去的时间,在超过可容纳容量了之后,就遍历整个大数组,(1000那个)看那个的值(就是放进去的时间)最小,最小那个就给他变成0,然后再把新值加进去。

2024-07-23 11:03:58 304

原创 暑期补题报告

实际上就是背包问题,几乎可以套用模板的动规的原理。本质上就是先遍历每一层,然后第二层遍历背包大小(可获的星星数量k)然后与一般背包问题不一样的地方是他每一层都有好几个物品让你挑一个,所以最后在遍历一遍这些物品,然后他又要求最小的代价,那最后的公式就是min(dp[i][j],dp[i-1][j-1]+cost[i][j];

2024-07-22 15:52:24 214

原创 CF round 947 A+B题

总体是要求是上升或者水平的走的,可以允许有一个断点,那就设置为flag,如果flag大于1了,那就组不了,NO。不然就可以。

2024-07-18 20:05:39 127

原创 河南萌新赛补题报告(人生第一场正儿八经打的比赛,也是一塌糊涂

第一题就挺有难度,花了我挺久。这应该是贪心吧。尽可能要*2的这个。先分奇偶数,如果偶数,那直接除以二然后cnt++,最后一下一定是+2,因为最开始就是加一个数开始的,他是偶数那就加二。如果是奇数那就先剪个一,cnt++,同上。还有个特殊情况是n==3的时候,这时候cnt是2,就是加1加二,无法用到乘法。

2024-07-17 21:15:34 332

原创 每日维C一下

中所有元素值的乘积。

2024-02-25 20:58:19 174

原创 如何储存班级各个人的信息

定义一个结构体里面放各种数据,如何再搞个这个结构体的数组,用for遍历就行。要输出就直接printf("class1[啥].xuehao");要输出就直接printf("class1[啥].score");要输出就直接printf("class1[啥].name");scanf("班级人数是:%d",&a);第一想到的就是结构体。

2024-02-24 22:34:10 410

原创 每日维C一下

这题定义两个量a,b,a用来确定再循环内(用for函数),b用来把非零数字放在最后答案出来的位子上,所以b应该看经历有一个非零数字后+1。请注意 ,必须在不复制数组的情况下原地对数组进行操作。移动到数组的末尾,同时保持非零元素的相对顺序。,编写一个函数将所有。

2024-02-24 17:08:15 154

原创 每日维C一下(C语言)

f就是布尔判断,如果f是1,!f就是反过来,false,如果是0,反过来就是true。//放在最后所有循环都结束后,才能确定是字母异味词。思路:和昨天那题差不多,今天这题无非就是变成输出布尔值了,今天这个还要长度也相等。//如果到最后都是1的话就是true。//判断长度是否相等。中每个字符出现的次数都相同,则称。,编写一个函数来判断。

2024-02-23 14:05:58 238

原创 每日维C一下

字符串的第一个匹配项的下标(下标从 0 开始)。

2024-02-22 17:33:12 193

原创 计算机面试智力题

4.每瓶要标记1-10号,1号取一粒,二号两粒,后面以此类推,最后是55粒,上秤称,最后是55点几就是几号瓶。比如是第二瓶,就是55.2g。2.遍历,最少就是99次,拿第一个和后面所有人比一遍,再第二个人和后面比一遍,以此类推后面的。3.点燃第一条绳两端,同时点第二条绳一端,第一条烧完的时候,点第二条的另一端,就是15分钟啦。1.二分法,平均分两份,比哪个重,重的再分两份,这样下去,轻的同理。博主马上就要面试了,找了几道智力题看看(

2024-02-21 20:46:47 165

原创 每日维C一下

if (count[t[i] - 'a'] < 0) { // 如果计数器变成了负数,则说明这个字母是新增的。// 遍历字符串 t,更新 count 数组中各个字母出现的次数,同时找到被添加的字母。// 对应字母的计数器加 1。// 对应字母的计数器减 1。// 定义一个长度为 26 的整型数组,用来统计每个字母出现的次数。// 遍历字符串 s,更新 count 数组中各个字母出现的次数。// 返回新增的字母。// 如果没有找到新增的字母,则返回空格。

2024-02-20 21:52:23 160

原创 C语言大小写字母转化(

主页看到CSDN推荐我写这个,看来我是真的水啊,唉,少壮不努力,老大c语言。两种方法解决这个问题

2024-02-20 18:12:06 354

原创 每日维C一下

/ 分配存储合并后字符串的内存空间。// a用于遍历word1,b用于遍历word2,c用于标记合并后字符串的位置。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。// 从word1中取一个字符放入合并后的字符串中。// 从word2中取一个字符放入合并后的字符串中。// 将剩余未遍历完的字符追加到合并后的字符串末尾。

2024-02-19 23:18:09 399

原创 各种背包问题的思路和C语言实现

0-1背包问题:给定n种物品和一个容量为V的背包,每种物品都有自己的重量w[i]和价值v[i],在限定的总重量内,选择其中若干件物品装入背包,使得背包中的物品总价值最大。多重背包问题:相比起第一种,每种物品都有独立的数量可供选择使用完全背包问题:相比起第一种,每种物品都可以无限重复选择

2024-02-18 21:28:58 1041

原创 与编程相关的入门思维训练问题

首先,将容积为 5 升的水壶装满水,然后倒入容积为 3 升的水壶中,此时容积为 5 升的水壶剩余 2 升水。接下来,将容积为 3 升的水壶倒空,然后将容积为 5 升的水壶中的 2 升水倒入容积为 3 升的水壶中,此时容积为 5 升的水壶中剩余 0 升水,容积为 3 升的水壶中有 2 升水。再次将容积为 5 升的水壶装满水,倒入容积为 3 升的水壶中,此时容积为 5 升的水壶中剩余 4 升水,容积为 3 升的水壶中剩余 2 升水。初始时,参赛者选中正确的门的概率是 1/3,而另外两扇门的概率是 2/3。

2024-02-17 07:15:00 315

原创 基于python的学习,对c语言的学习与思考(

Python是一种面向对象的高级、解释型、动态类型的编程语言,注重代码的可读性和简洁性。它将所有类型的数据都看作对象,通过对象之间的交互来解决问题,具有模块化和重用的优势。C语言是一种面向过程的低级、编译型、静态类型的编程语言,更加注重对硬件的底层控制和运行效率。它将问题分解为一系列函数或过程,并通过函数之间的调用来实现程序的逻辑。指针在C语言中起着重要的作用,用于内存管理和数据操作。两种语言在基本语法、操作符等方面有相似之处,但也有一些细节差异,比如变量声明、语句结束等。根据具体需求选择适合的语言

2024-02-16 16:55:06 339 1

原创 探索互联网技术世界,从这里开始

我是浙江工商大学的大一新生,计划转专业去学习计算机。我对编程和技术很感兴趣,希望通过学习和写博客记录自己的编程之路,提升自己的能力。我的目标是转专业成功、参加蓝桥杯和ACM竞赛并取得好成绩,最终在研究生毕业后进入大厂。欢迎订阅我的博客,一起探索技术世界!

2024-02-15 15:50:58 201

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除