- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 洛谷-P5535
思路:分三种情况:如果第k个数是质数,而且在寻找范围中不包含它的倍数,那么它只需要一天就能传完消息; 如果第k个数是质数,但是在这个范围里包含了它的倍数,那么在第一天的时候它先传给除去他的倍数之外的数,由伯特兰-切比雪夫定理,对大于1的数k,在k和2k之间至少存在一个质数 ,所以第二天依次传与它们互质的数 如果第k个数是合数,再由比雪夫定理,得知至少存在一个质数p2,k/2 < p1 < k,显然n小于p的倍数,以及质数p2,k < p2 < 2k,同理p2的倍数也一定..
2022-02-20 13:23:45 486
原创 洛谷-二分算法
二分查找 一般来说,二分查找都是在有序的区间中查找目标值,每次查找去掉不符合条件的一半区间,直到找到答案(整数二分)或者与答案相近的值(浮点二分)。整数二分模板//向左查找,比如可以查找第一个大于等于目标的值while(l < r){ int mid = l + r >> 1; if(check(mid)) r = mid; //check函数是判断mid是否合法,也就是看是否满足条件 else l = mid + 1;}//向右查找..
2022-02-05 13:37:01 1625
原创 洛谷-P1308
https://www.luogu.com.cn/problem/P1308思路:由于两个字符串查找时不区分大小写,所以可以直接将两个字符串转换为统一的大写或者小写处理,用transform
2022-01-28 22:13:34 1338
原创 洛谷-P1028
https://www.luogu.com.cn/problem/P1028这道题刚开始的做法是暴力递归,但是时间复杂度太高了过不去,所以就看了一下递归的优化,递归可以用递推和记忆化搜索来进行优化,递归是从上往下,到达出口之后再回溯,其中不乏有许多重复计算,一旦数据量大一些,时间复杂度就会很高。递推是从下往上,所以相对于递归不会有重复计算,也省去了回溯这一操作;记忆化搜索是记录下递归操作中已经算出来的结果,等下一次用到的时候可以直接调用,相当于也是省去了重复计算。这道题是计算从数的左边加一个小于等于
2022-01-24 23:18:02 548
原创 洛谷-P1537
https://www.luogu.com.cn/problem/P1597这道题刚开始没有读懂意思,直接以为是简单的数字赋值,但是没有考虑到b:=a这种情况,以至于后面思绪直接被打乱了(突然发现自己也是太菜),最后还是看了题解才整出来。感觉以后做题看懂题目很重要:读懂题目,想出大致思路,着手实现代码。int main(){ string s; cin >> s; int a1[255] = {0}; int n = s.size(); for(int i = 0;.
2022-01-24 22:27:16 441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人