网站首页制作实验报告,点击链接即可进入,怎么做查成绩网站,门户网站内容维护流程论memset的时间代价
众所周知#xff0c;memset是一个常用的数组赋值方式#xff0c;几乎每个OI player全都使用过#xff0c;但是这个函数从来不要脸#xff0c;也不给你脸。
大家耳顺能详的几个例子#xff1a;
①memset(a,0,sizeof(a));把a全赋值成0。
②memset(a,…论memset的时间代价
众所周知memset是一个常用的数组赋值方式几乎每个OI player全都使用过但是这个函数从来不要脸也不给你脸。
大家耳顺能详的几个例子
①memset(a,0,sizeof(a));把a全赋值成0。
②memset(a,255,sizeof(a));把a全赋值成-1。
③memset(a,127,sizeof(a));把a全赋值成一个在int下很大的数。
④memset(a,128,sizeof(a));把a全赋值成一个在int下很小的数。
于是在一题多问的question上小帅就开始频繁使用这些方式来给数组赋值由于小帅只关注分数即使一个测试点用到的时间是998ms差一点就超时了也没在意直到有一天小帅由于好奇在网上了解了一些字典树的知识想要做题于是做了洛谷上的P8306 【模板】字典树自觉不错的写了一个代码认为妥妥的AC于是写好庆祝词兴高采烈的提交了上去结果……36TLE。小帅气坏了于是调了5个小时将memset改为for循环赋值就AC了。
由于memset是一个系统封装好的函数所以人们在初期肯定会误以为他是没有代价的甚至认为就是一断电的事可是它的赋值代价其实是和字符串比较的代价是相同的。因此memset可以用但不要总用稍微卡卡常就直接T了。
就像很多事情一样用memset一旦上瘾就会无法自拔所以可以这样来改正自己手写一个my_memset之后把用for循环赋值的代码写进去习惯性写完代码后点击“Ctrl”“F”点替换上面的框里写上memset下面的框里写上my_memset之后点击替换全部之后把CE的部分稍微改一下然后一个崭新的程序就诞生了。
当然如果不是一题多问只是一个dp的初始值用一下还是没有问题的毕竟人家memset是c库里面的。