- 博客(48)
- 收藏
- 关注
原创 【想法3】
存在的旧疑问:为什么有些题难深度优先搜索只能得一半儿的分儿。而拿广度优先搜索就可以得全分。还有0×3f3f3f3f这玩意儿到底啥意思?学会了新知识交互的做法:把你的代码往公式里套。本周主要做的还是一些算法题,再有就是二分;
2024-04-05 22:38:03
116
1
原创 【想法1】
比赛P1109 学生分组①为什么没做出来?--------->想要用快速排序,但是放在了for循环里边儿,显示错误,就给删了。②看题解看明白没?---------->看明白了,不需要那么复杂。③哪里存在不足?-------------->做事儿想法有点儿太混乱,导致思绪复杂。④ 学到了新知识——————要取之中的最大值,只需要定义max这个数就可以了。P2799 国王的魔镜①为什么没做出来?---------->没想明白用哪几个函数。②看题解
2024-03-22 21:34:05
217
原创 B3620 x 进制转 10 进制(详解)
十进制数13怎么转为二进制数。许多人都知道用13一直除以2,取余数,最后反向将余数组合起来。(不断除以2,对二取模)超过十进制,A,B......表示,“48”“55”是ascll码。
2024-03-15 18:35:08
456
原创 B3620 x 进制转 10 进制(详解)
八进制数567怎么转化为十进制数。首先八进制就是逢八进一,也就是说这里面最大的数也就7,没有≥8的数。下面我们就讲一下567怎么转化为十进制:首先7是个位,可以直接写成十进制的7,6是十位,它是通过个位进了6个8所得,所以其十进制为6×8=48,5是百位,其实通过十位进了5个8×8所得,结果为320,所以最后的十进制数为7+48+320=375。
2024-03-15 18:17:04
452
原创 作业1-32 B3620 x 进制转 10 进制
最后输出的是,x进制下的一个带字符串的数或者不带字符串的数,转变为十进制后的数。分析题目可知,此题可以用到大写字母,也就是从A开始,分别表示11往后的数字。那么就用一个for循环,将零到九划分为一个等级,将A到Z划分为一个等级。
2024-03-08 20:12:50
436
原创 作业1-32 P1012 [NOIP1998 提高组] 拼数
已知两个字符串 s1 , s2 ,判断他们大小的。依次比较它们第i个字符ASCII码的大小,若第i个字符相同,则比较第i+1个字符,直到某个字符串结束或两个字符串某一个字符不同。任意两个字符串s1, s2,若 s1+s2 < s2+s1 ,则s2应排在s1之前才能得到最大的整数。发现了s2的第3个字符ASCII码比s1的第3个字符大,所以返回值为s1
2024-03-03 19:56:20
365
原创 作业1-224——P1927 防护伞
setioflags(ios::fixed) 固定的浮点显示。遍历一下找到两点间的最远距离,直接公式算结果,控制输出位数。setprecision(n) 设显示小数精度为n位。学会——setioflags(用处多)
2024-03-01 22:36:26
499
原创 作业1-224——P1331 海战
深搜的方式,让它只遍历矩形块,然后在下面的遍历中判断是否出现矩形块交叉,但是很难实现,然后发现可以通过在遍历过程中判断是否合法。
2024-03-01 22:23:39
378
原创 作业1-224——P1015 [NOIP1999 普及组] 回文数
首先此题为一道高精度题,然后本题按照题目意思模拟即可。我们可以开两个数组来记录高精度数字,这样方便我们处理。判断“该数组是否回文”、“c翻转存入d再做c+d”可以写成两个单独的函数。然后主程序组织一下他们即可。注意好退出循环的条件。}-->inline可以不要,A可以转换为ASCll数字;代码可以简化,带字符可以转换为ASCll数字;还用到ASCll码~
2024-03-01 21:56:51
461
原创 B3871 [GESP202309 五级] 因数分解
i++)//用for循环查找最小的因数。找到这个数最小的因数,再用这个·数除以这个最小的因数即可(即较大的那个因数)cout
2024-02-21 22:14:16
849
1
原创 洛谷 P1007 独木桥
最大值:最靠近端点两个人各自向对方走,时间较长的那个人的时间,时间最大的话,就各自往远的一边走就行了;最小值:所有人中走完桥最小值中的最大值,就可以直接搜距离小的一边走。
2024-02-20 21:20:32
401
原创 洛谷 P6546 [COCI2010-2011#2] PUŽ
上取整,不管四舍五入的规则,只要后面有小数前面的整数就加1。下取整,不管四舍五入的规则,只要后面有小数忽略小数给定。比如:4.9,调用用向下取整函数,得到的是4。调用用向上取整函数,得到的是5。//如果余数不为0的话 说明y是不x的倍数,那么就返回x/y天再加上1天。return x/y;//x代表蜗牛白天爬了多少米 y代表蜗牛一天爬了多少米。如果x是y的倍数的话,那么直接返回x/y即可。只需那么就返回x/y天再加上1天就可以了。参考代码&&代码解读。
2024-02-19 19:08:37
572
原创 洛谷 P1019 [NOIP2000 提高组] 单词接龙
搜索的时候开个vis标记数组,用来标记每个单词使用的次数,从开头字母开始搜索,两层for,第一层for搜索每一个单词。比如搜索的单词是touch,当遍历到cheat这个单词时发现touch的第四位和枚举的单词cheat相同时。相邻的两部分不能存在包含关系就是说如果存在包含关系,就不能标记为使用过,每个单词最多出现两次。回溯的时候vis标记减一,恢复长度就好了。那么当前的长度就是 = 当前长度 + 枚举单词长度 - 重叠部分的长度。第二层for是判断我们搜索的单词的第几位和枚举的单词的首字母相同。
2024-02-18 21:37:32
777
原创 洛谷 P1150 Peter 的烟
/n烟的数量,k需要多少根烟头换一支烟,nonu记录烟头的个数。while(nonu-k>=0) //当烟头数目足够换一只烟的时候。cout
2024-02-18 21:04:49
352
原创 洛谷 P1887 乘积最大3
/把余数尽可能平均分配给各个数,输出a%b个a/b+1。//为使乘积最大,各个数字之差不超过1。//输出b-a%b个a/b。参考代码and代码解读。
2024-02-18 20:47:03
450
原创 洛谷 P8627 [蓝桥杯 2015 省 A] 饮料换购
/最后的瓶盖数应该等于剩余的不大于三的瓶盖数,外加上兑换回来的瓶盖数。while (n > 2) {//剩余的总瓶盖数要大于二,才能换得下一瓶饮料;//drink等于总的饮料数;//把drink赋值于n;参考代码and代码解读。
2024-02-18 19:40:17
816
原创 洛谷 P6354 [COCI2007-2008#3] TAJNA
key[j][i]=str[total++]-->注意这里是 key[j][i],到时候反向输出。j++)-->对矩阵进行赋值。
2024-02-18 19:06:38
758
原创 洛谷 P2404 自然数的拆分问题
->全局变量深搜,定义s定义t,定义i=数组a[t-1],i小于等于s,i到循环加1。-->输入n,如果n=1,那么就输出1,如果不等于1,就深搜都有可能。如果s等于零,打印t,如果不是,深搜s,t+1的所有可能性。输出a[i]&&"+",以及a[t]的返回值。定义i=1,i小于等于t减1,i每次都加1.如果i小于n,数组at等于i,S减等于i。全局变量打印,定义t。定义n,定义a数组。
2024-02-16 18:13:43
467
原创 洛谷 B2146 Hermite 多项式
->如果n=0,输出1;如果n=1,输出2x;如果n>1,输出一大串。-->输入n x,输出Hermite函数值.
2024-02-15 19:04:31
584
1
原创 B2087 与指定数字相同的数的个数
第二行为 n 个整数,整数之间以一个空格分开;输出一个整数序列中与指定数字相同的数的个数。输出为 n 个数中与 m 相同的数的个数。n,表示整数序列的长度(n≤100);第三行包含一个整数,为指定的整数 m。
2024-02-06 11:14:19
380
1
原创 洛谷 P2669 [NOIP2015 普及组] 金币
国王将金币作为工资,发放给忠诚的骑士。之后三天(第四、五、六天),每天收到三枚金币;这种工资发放模式会一直这样延续下去:当连续 n 天每天收到 n 枚金币后,骑士会在之后的连续 n+1 天里,每天收到 n+1 枚金币。--> K存储的是当天的金币数,Sam为总金币数,如果i-k>=j,j就等于j+1,k变为现在的i,sam等于sam加j,如果i-k
2024-02-06 11:05:54
479
1
原创 洛谷 B2042 判断一个数能否同时被 3 和 5 整除
->如果这个数a除以3等于0,说明它是三的倍数;如果这个数a除以5等于0,说明他是五的倍数;两者都满足,说明它可以被三和五整除,那他就是三和五共同的倍数,满足就输出是,不满足就输出否。输出一行,如果能同时被 3 和 5 整除输出 YES,否则输出 NO。n小于等于十的九次方,大于等于十的九次方的相反数。判断一个数 n 能否同时被 3 和 5 整除。输入一行,包含一个整数 n。
2024-02-06 10:45:42
466
1
原创 洛谷 P1162 填涂颜色
如果从某个 0 出发,只向上下左右 4 个方向移动且仅经过其他 0 的情况下,无法到达方阵的边界,就认为这个 0 在闭合圈内。-->如果染过色以后i,j那个地方还是0,说明没有搜到,就是周围有墙,当然就是被围住了,然后输出2;//因为被染色了,本来没有被围住的墙都染成了1,所以就输出原本的b[i][j]而非col[i][j];如果从1,1开始,如果1,1上下左右都是墙,那么便无法搜索了;-->如果搜过头或者已经被搜过了或者本来就是墙的就返回 ,从而实现被墙包围的无法被染色,没被包围的0都能被染色;
2024-02-05 19:30:55
502
1
原创 洛谷 P1145 约瑟夫
n 个人站成一圈,从某个人开始数数,每次数到 m 的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。现在有一圈人,k 个好人站在一起,k 个坏人站在一起。从第一个好人开始数数。你要确定一个最小的 m,使得在第一个好人被杀死前,k 个坏人先被杀死。}-->如果i=k-1,那么就输出m。
2024-02-02 19:12:15
368
原创 洛谷 P1657 选书
然后根据他们填写的表来分配书本,希望设计一个程序帮助老师求出所有可能的分配方案,使每个学生都满意。学校放寒假时,信息学奥赛辅导老师有 1,2,3,⋯,x 本书,要分给参加培训的 x 个人,每人只能选一本书,但是每人有两本喜欢的书。第 2 行至第 1+x 行,每行两个数,表示 a (i)喜欢的书的序号。}-->如果n等于零,说明无方案,那么就输出0;-->深搜,最后输出总方案数。数据范围及约定对于全部数据,1≤x≤20。}-->如果x=n+1,方案数加1;只有一个数,总方案数 total。
2024-02-02 18:55:27
373
原创 洛谷 B2144 阿克曼(Ackmann)函数
--由给出的akm(m,n)=n+1;(m>0,n=0 时 )。(m>0,n=0 时 )。(m,n>0 时 )得到;(m,n>0 时 )。}-->输入m,n,输出akm(m,n).
2024-02-02 18:23:12
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人