自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P1098 [NOIP2007 提高组] 字符串的展开

在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于 `d-h` 或者 `4-8` 的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为 `defgh` 和 `45678`。如果减号右边的字符按照 `ASCII` 码的顺序小于或等于左边字符,输出时,要保留中间的减号,例如:`d-d` 应输出为 `d-d`,`3-1` 应输出为 `3-1`。$p_1=2$ 时,对于字母子串,填充大写字母。

2024-04-18 21:24:15 312

原创 P1583 魔法照片

一共有 $n$ 个人(以 $1\sim n$ 编号)向佳佳要照片,而佳佳只能把照片给其中的 $k$ 个人。一道比较简单的模拟题,就是题目读的有点迷,大致意思就是给我们两个数组,第一个数组是一个只有10个元素的数组,e[i]表示当这个人的类别是i时,其对应的权值要加上对应的值,第二个数组是初始全权值数组,w[i]表示佳佳对这个人的好坏程度,题目要求我们要求出加上对应值后权值最大的前k个人的编号,注意!第三行给出了 $n$ 个正整数,第 $i$ 个数表示编号为 $i$ 的人的权值 $W_i$。

2024-04-18 20:22:30 306

原创 P1042 [NOIP2003 普及组] 乒乓球

在 $11$ 分制下,此时比赛的结果是华华第一局 $11$ 比 $0$ 获胜,第二局 $11$ 比 $0$ 获胜,正在进行第三局,当前比分 $1$ 比 $1$。而在 $21$ 分制下,此时比赛结果是华华第一局 $21$ 比 $0$ 获胜,正在进行第二局,比分 $2$ 比 $1$。每个输入文件包含若干行字符串,字符串有大写的 $\texttt W$ 、 $\texttt L$ 和 $\texttt E$ 组成。你的程序就是要对于一系列比赛信息的输入($\texttt{WL}$ 形式),输出正确的结果。

2024-04-17 19:39:04 355

原创 P1068 [NOIP2009 普及组] 分数线划定

面试分数线根据计划录取人数的 $150\%$ 划定,即如果计划录取 $m$ 名志愿者,则面试分数线为排名第 $m \times 150\%$(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。$m \times 150\% = 3 \times150\% = 4.5$,向下取整后为 $4$。保证 $4$ 个人进入面试的分数线为 $88$,但因为 $88$ 有重分,所以所有成绩大于等于 $88$ 的选手都可以进入面试,故最终有 $5$ 个人进入面试。### 样例输出 #1。

2024-04-17 19:23:42 345

原创 P1067 [NOIP2009 普及组] 多项式输出

紧跟一个正整数,表示此项系数的绝对值(如果一个高于 $0$ 次的项,其系数的绝对值为 $1$,则无需输出 $1$)。如果 $x$ 的指数大于 $1$,则接下来紧跟的指数部分的形式为“$x^b$”,其中 $b$ 为 $x$ 的指数;其中,$a_ix^i$ 称为 $i$ 次项,$a_i$ 称为 $i$ 次项的系数。3. 如果多项式 $n$ 次项系数为正,则多项式开头不出 `+` 号,如果多项式 $n$ 次项系数为负,则多项式以 `-` 号开头。第一行 $1$ 个整数,$n$,表示一元多项式的次数。

2024-04-15 21:23:47 226 1

原创 P1003 [NOIP2011 提高组] 铺地毯

接下来的 $n$ 行中,第 $i+1$ 行表示编号 $i$ 的地毯的信息,包含四个整数 $a ,b ,g ,k$,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 $(a, b)$ 以及地毯在 $x$ 轴和 $y$ 轴方向的长度。如下图,$1$ 号地毯用实线表示,$2$ 号地毯用虚线表示,$3$ 号用双实线表示,覆盖点 $(2,2)$ 的最上面一张地毯是 $3$ 号地毯。第 $n + 2$ 行包含两个整数 $x$ 和 $y$,表示所求的地面的点的坐标 $(x, y)$。### 样例输出 #1。

2024-04-15 21:13:56 304 1

原创 P1051 [NOIP2005 提高组] 谁拿了最多奖学金

例如姚林的期末平均成绩是 $87$ 分,班级评议成绩 $82$ 分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是 $4850$ 元。2. 五四奖学金,每人 $4000$ 元,期末平均成绩高于 $85$ 分($>85$),并且班级评议成绩高于 $80$ 分($>80$)的学生均可获得;1. 院士奖学金,每人 $8000$ 元,期末平均成绩高于 $80$ 分($>80$),并且在本学期内发表$1$篇或$1$篇以上论文的学生均可获得;第一行是$1$个整数 $N$,表示学生的总数。

2024-04-15 21:07:27 315 1

原创 每周总结(2.29)

对于 $100\%$ 的数据,保证 $1 \leq m \le 10^4$,$1 \leq t \leq 10^7$,且 $1 \leq m \times t \leq 10^7$,$1 \leq a_i, b_i \leq 10^4$。第一行有 $2$ 个整数 $T$($1 \le T \le 1000$)和 $M$($1 \le M \le 100$),用一个空格隔开,$T$ 代表总共能够用来采药的时间,$M$ 代表山洞里的草药的数目。- 对于 $30\%$ 的数据,$M \le 10$;

2024-02-29 21:19:32 936

原创 预备役每周总结(2.27)

解题思路:首先分析一下,到达(i,j)的方式有多少种,卒只能向下或向右走,所以到达(i,j)可以是由(i-1,j)走一步到达,还可以是由(i,j-1)走一步到达,所以到达(i,j)的方式就等于到达(i-1,j)的方式加上到达(i,j-1)的方式,由此得出状态转移方程,dp[i][j]=dp[i-1][j]+dp[i-1][j]这里要注意的是数组边界问题(我在这里卡了好久,最后看的题解),我是把(1,1)当作起点,但是只有60分(不知道哪里有问题),还有就是要开longlong,不然有两个测试点过不了!

2024-02-27 21:18:52 363

原创 寒假预备役总结(2.22)

这几天写了几道题P3375 【模板】KMP - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)P3370 【模板】字符串哈希 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)P4391 [BOI2009] Radio Transmission 无线传输 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)第一个是kmp的模板题,直接套板子就行,但是这里有一个要注意的点就是,这个题中模式串里面可能有多个字串,就会有多个答案,还要输出一下next数组

2024-02-22 17:19:04 324 1

原创 寒假预备役总结(2.20)

最后总结,这些算法还有优化的地方,就像kijstra算法要用优先队列来进行优化,而kmp算法的next数组还可以进行优化,我认为这些优化需要我更加深入理解这些算法后再进行优化,不然也是优化了也是无用功。该算法是纯dijkstra,没有进行堆优化(采用优先队列),数据大了就超时,由于本周还有其他算法要学,上周的就先清楚该算法是如何实现,至于优化就等我把这周的算法先学完了再回头来优化dijkstra算法。

2024-02-20 22:18:05 381

原创 寒假预备役每周总结(2.15)

解题思路:跟无线通讯网很像,先把每个点之间的距离用勾股定理算出来,再将其排成升序,遍历结构体,这里要注意的是题目给了我们部分边,要把这些边变成0,或者把这两个点合并(两钟都可以,只是出循环的条件不同而已)解题思路:将每个点之间的距离算出来(勾股定理)用结构体存储点与点之间的距离关系,依据点与点之间的距离将其排成升序(距离远就用卫星电话),遍历结构体,判断该点是否被连通过,确定循环边界,输出答案。放假回来的第一天,也是直接开刷本周的任务,感觉很顺利(可能是沉淀了太久),下面发一下今天刷题的题解。

2024-02-15 21:03:37 357 1

原创 寒假预备役每周总结(2.5~2.6)

本周开始学习最小生成树的算法,最小生成树的算法有两个(普里姆算法和克鲁斯卡尔算法),我先学的克鲁斯卡尔算法,因为克鲁斯卡尔算法运用到并查集和排序,这两种算法在之前都学过,所以,克鲁斯卡尔算法于我而言更好理解,更容易上手,我先学的克鲁斯卡尔,至于普里姆算法我打算年后再学;本题总结: 刚开始想不到该题这样写(我还在考虑怎么比大小这么把有优惠的联系起来),后面看了题解才知道,真是小刀扎屁股(开了眼),主要是要想到怎么把有优惠的联系起来,其他的不难;解题思路:这是一到板子题,直接把克鲁斯卡尔的板子搬上来就可以。

2024-02-07 16:31:42 323 1

原创 寒假预备役每周总结(2.2~2.4)

解题思路:其实把前几级台阶的走法都推导出来,就能找到规律,但是没必要那么麻烦,我们可以用dp的思想,将问题分解成子问题,通过子问题来求解总问题,我们可以想想,我要到第三级台阶是不是可以在第一台阶走两级台阶、在第二级台阶走一级台阶,这样,我们第三级台阶的走法不就等于第一级台阶和第二级台阶的走法总和,同样,我们可以推导出第四级台阶,第五级台阶,就这样,我们成功通过子问题来求解总问题,这就是dp!解题思路:一看这题就是斐波那契数列,也就是数楼梯,跟数楼梯一样的思路,这里就不介绍了。(这里我wa了一次)

2024-02-04 21:08:01 391 1

原创 寒假预备役每周总结(1.31~2.1)

解题思路:实话说,这题我写了三天(我一直找不到左子树的右边界和右子树的左边界),直到昨天,偶尔看到一篇博客 ,看到了求解过程。该题总结:我写这个题的时候在最后判断小明的朋友的时候写出的语句是下面这个,跑起来是错的,但是我就是默认了小明就是“祖宗”没有考虑到其他的情况,实际上在合并的过程中,小明不一定已知都是“祖宗”,也就是不一定a[1]==1,也会有其他情况,所以这里我们要调用函数去找到小明的“祖宗”,不能就写成1!该题总结:遇到这种题目不要慌,找出其规律就可以写出来,代码很简单,就是看能不能找出规律。

2024-02-01 19:30:06 831 1

原创 寒假预备役每周总结(1.29~1.30)

周二我打算先学并查集,等我学完并查集再回来实现树的遍历,于是愉快的开始学起了并查集,经过学习,发现这并查集要比树的遍历好学,深入学习后实现了代码,也是赶快跑去洛谷试试,写完题后也是发现还有没有学到的地方,有一个“路径压缩”没实现,但是洛谷好像没判错(明明超时了)又跑去学了怎么压缩路径,避免递归太多层,时间超限。周一下午学到二叉树的遍历,其遍历方式有四种“先序遍历,中序遍历,后序遍历,层序遍历”,其中,先序遍历是先访问根结点,再访问左子树,最后访问右子树;根据预备役安排,周一开始学习有关二叉树的知识点。

2024-01-30 19:40:41 365 1

原创 寒假预备役每周总结(1.26~1.28)

该题总结:该题是少有的一次过的题,但是在测试的时候没写到这里(在死磕一个题),在写补题的时候一下字就写出来了,现在想想有点亏啊,虽然是一次过但还是有需要注意的点,在找区间边界的时候需要用到另一个变量来存储区间的值,避免在判断的时候出错(后面输入的区间可能小于前面输入的),对于整个代码实现思路的一些细节还是想不到,有待加强!该题总结:在这题中错了二次,原因都在数组的大小开小了,这个点不容易被发现,调bug的时候头都向断了都想不到错在这里,一定要注意数组长度!这几天在写测试的补题,那就写下几个补题的题解吧!

2024-01-28 23:03:19 348

原创 寒假预备役周四总结(1.25)

解题思路:读完题后就发现这‘马’就是象棋里面的马,走‘日’字形,跟走迷宫一样先把马可以走的所有情况都枚举2出来,判断要不要走出这一步,如果要走出这一步就把这个点入队,否则不入队,然后把到该点的步数算出来,判断该点是否为终点,是终点就结束(因为bfs先找到的终点一定是最小路径),否则继续。if(tx>=1&&tx=1&&ty

2024-01-25 16:30:00 1165 1

原创 寒假预备役周二总结

周一,花费一天时间学习dfs,栈,用c语言来实现出栈和入栈过程,写了一些有关搜索的题(基本上都是dfs),大部分都是跟着b站上的博主学的,代码也是模仿博主敲的,刚学dfs的时候,很不理解回溯(现在也不是很能理解),因为dfs整个过程就是递归,而递归的本质有相当于压栈,所以去学了一些关于栈的知识(学的并不多,只是知道栈的特点,然后能用c实现一下入栈出栈过程,判断栈是否为空)。现在要独立实现dfs搜索还有点难,还需要多练深入理解dfs;这几天先把搜索吃透吧,过几天学新的算法或者是数据结构!

2024-01-23 19:36:27 336 1

原创 每周总结(11.20~11.26)

写这个题的时候我就已经有了大概的思路,我想着用getchar()来读取每个自定义函数的首字母,进而来判断是进行何种运算,当我把代码写完后运行发现输出不了东西,询问后发现是因为getchar()会吸收一个字符,而不会再输出出来,所以用getchar()实现不了,立即换思路,知道了一个用字符数组中的首个字符来判断时进行什么运算、scanf("%3s(%d,%d)",s,&a,&b);都是一个原因,都是因为没有考虑一个字符时数字的情况,直接忽略了第一个字符时数字的情况导致我怎么改都没用。

2023-11-26 21:58:12 24 1

原创 刷题总结

b[r+1]-=c;思路:while循环实现多组输入,再用while循环将每个数拆分求出拆分后的值,将其与其它数相比,大的数后输出,这里有一种特殊情况,就是拆分后数的值的和相等,;思路:依题意编写average函数计算,这里输出的数据类型浮点型,主要代码再average函数通过调用这个函数完成该题,用average函数去掉最大值和最小值,用选择法实现(也可以用其他排序方法)该函数要返回平均值,且这里用一个强制转换将int类型转换成浮点型的。错误:数据类型用错,只用了int类型来算,没有考虑数据太大的情况。

2023-11-19 21:42:36 15

原创 每周总结(11.13~11.19)

但是当时我写出来的代码会重复循环到值非素数变成素数,这是我知道肯定时循环的问题但是解决不了,我室友就让我用了goto,它可以直接跳过一段代码直接到指定位置执行,用了goto后就解决了。这个题我足足交了5次才对的、前面4次都错了而且都是因为一个原因错的、都是因为我用了求次方的函数pow,但是这个题的数据好像很大,pow存不下,这都是我在询问室友才知道的,然后自己写一给函数用来求次方也就是用循环来求。本周大部分都在刷题,只再acm社团将课的时候学了以下前缀和差分,有一次讲结构体的我没去,当时没醒来,哈哈。

2023-11-19 20:52:06 17

原创 每周总结(11.6~11.12)

我每次提交都错,但是我找不到是哪里错了,询问室友后才发现每次循环求和后都没有将sum归0导致后面输出的数值是本来要输出的值加上上次循环后的的值以至于答案错误。最后总结:刷题过程中总会有一些小细节让我注意不到,可能时学的太浅,也有可能是我的粗心大意,我会努力做到在今后的刷题过程中多思考一下在写代码,不能看了题后直接写代码,也可以先在草稿纸上写下思路在进行代码转换。在上面代码中我值来了一个if(a==0)就跳出循环,提交后总是内存超限,百思不得其解,询问学长后才知道题目都看错了。还有一个问题就是读题不太仔细。

2023-11-12 19:43:33 30 1

原创 10.30~11.5总结

我运行后总是得不到想要的结果,思考许久都想不到哪里错了,我便问了室友,他一语道破我代码的问题,经过他的指点我也仔细想了想,确实问题便在调用函数的时候要用f(a,b)直接用数组名而不是用a[2][5],b[2][5]如果用的是第二个那就是两个数,而不是两个数组。目前学的递归用的不是很熟练,刷题也经常需要查资料,这周刷题量不大,感觉写起来有点吃力,每次写完代码都不会直接对,需要反复改,而且写完一个代码要很多时间。自定义函数,递归,字符数组。学了这些内容后就试着刷题了,在刷题的时候,写了一个下面的代码。

2023-11-05 19:21:08 42 1

空空如也

空空如也

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

TA关注的人

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