- 博客(28)
- 收藏
- 关注
原创 质因数的个数(清华大学)
为什么素数筛法只需要筛选到MAXN,而不需要筛选到与输入数据同规模的1e9。这样处理的理论依据是:n最多只存在一个大于sqrt(n)的素因数(否则两个大于sqrt(n)的数相乘会大于n)。这样,只需将所有小于sqrt(n)的素数从n中去除,剩余的部分必为大于sqrt(n)的素因数。正是由于这样的原因,不必依次测试sqrt(n)到n的素数,而是在处理完小于sqrt(n)的素因数时,就能确定是否存在大于sqrt(n)的素因数,若存在其幂指数也必定为1。
2024-03-07 11:36:02 214
原创 求从1~n的所有素数(素数筛法)
从2开始遍历2到1000000的所有整数,若当前整数没有因为它是某个小于其的素数的倍数而被标记为非素数,则判定其为素数,并标记它所有的倍数为非素数。然后继续遍历下一个数,直到遍历完2到1000000内的所有整数。此时,所有未被标记成非素数的数即为要求的素数。
2024-03-07 10:52:05 219
原创 后缀子串排序(上海交通大学)
这里有几个需要注意的点,string的size是指它有几个子串,只要空格隔开就算一个新串。具体的可以看我这篇文章http://t.csdnimg.cn/QOxVS。但看过别人的代码之后,发现自己有时还是跳脱不出思维局限,其实想要获得每个字串很容易,我用了复杂的方法,导致想了很久。复杂的:getline(cin,str)就是为了防止一遇到空格就停下,该函数遇到空格会认为是一个字符录入的。简单方法:就是用cin来输入string类型的字符串,遇到空格就会停止。这是我自己开始写的方法。
2024-03-03 19:05:13 144
原创 关于string的size(length等同)函数的多种情况
2.string类型的输入时遇到空格就会停止,也就代表一个串输完了,如下图,当输入多个串的时候,size输出的是串的个数。1.只有一个字符串,size输出的是该串的长度。以上length也是一样的效果。
2024-03-03 19:04:54 591
原创 单词替换(北京大学)
find函数有一个坑,那就是不是单词也会匹配成功,比如说your you me,要将you替换为I,那么your前面的you也会被替换走,所以要在每个字符串的前后都加上空格来避免这种情况的发生。
2024-03-03 17:33:46 113
原创 scanf输入string类型的字符串报错,原因
原文链接:https://blog.csdn.net/liu16659/article/details/86772657。无法像直接输入整数那样方便的使用 scanf()函数输入 string变量。如果想直接使用scanf输入string类型,会报错。但是是可以做到让scanf输入string类型的数据。不建议使用 scanf 输入string类型字符串。使用scanf输入string类型变量。
2024-03-02 14:06:35 411
原创 上海交通大学-日期差值
··该题要考虑四个方面,同一年日期连续的,同一年正常情况的,不同年正常情况的,还有不同年(一个年末一个年初连续日期的情况)求两个日期之间的天数,如果两个日期是连续的,则规定它们之间的天数为两天。
2024-02-29 14:12:08 206
原创 输入年月日,计算是该年的第几天?(清华大学)
{0,31,28,31,30,31,30,31,31,30,31,30,31},//最开始的零是为了在下面加每月的天数时更方便,比如9月30日,那么就要加前八个月和九月的这三十天。2.闰年判断规则:当年数不能被100整除时,但能被4整除或能被400整除,则为闰年。bool IsLeapYear(int year){ ///判断闰年规则。1.用空间换时间,首先将闰年和平年的每月的天数都分别存起来。
2024-02-29 11:38:51 221
原创 浙大hello world u借鉴答案,原理清晰
/ 故而 n2 = N - 2*n1 n2 这里的n2 就是不包含重叠的 字符数量。// (接上)所以得到的n1 n3 是包含了 两个竖边与底边重叠多算的那两个字符。// 用笔纸画一下就知道 因为这里的 / 是向下取整 所以n1 = n3 ,// 因为 x <= y;且 2x + y = N - 2。// 因为x<=y 不妨取x的最大值 即 x=y 得下结果。// 大家用笔和纸画一下就知道了。
2024-02-28 22:24:26 222 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人