<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>闲言碎语 on AnCs-Lan</title><link>https://AnCs-Lan.github.io/categories/%E9%97%B2%E8%A8%80%E7%A2%8E%E8%AF%AD/</link><description>Recent content in 闲言碎语 on AnCs-Lan</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 18 Jan 2026 17:48:00 +0800</lastBuildDate><atom:link href="https://AnCs-Lan.github.io/categories/%E9%97%B2%E8%A8%80%E7%A2%8E%E8%AF%AD/index.xml" rel="self" type="application/rss+xml"/><item><title>代码蠢事大合集</title><link>https://AnCs-Lan.github.io/p/%E4%BB%A3%E7%A0%81%E8%A0%A2%E4%BA%8B%E5%A4%A7%E5%90%88%E9%9B%86/</link><pubDate>Sun, 18 Jan 2026 16:00:00 +0800</pubDate><guid>https://AnCs-Lan.github.io/p/%E4%BB%A3%E7%A0%81%E8%A0%A2%E4%BA%8B%E5%A4%A7%E5%90%88%E9%9B%86/</guid><description>&lt;h1 id="核心主题我是个傻福"&gt;核心主题:我是个傻福
&lt;/h1&gt;&lt;h2 id="cc相关"&gt;C/C++相关
&lt;/h2&gt;&lt;h3 id="经典爆int不自知"&gt;经典爆int不自知
&lt;/h3&gt;&lt;p&gt;　　我确实没想到这么久过来我其实完全不会数字因子相关的内容&lt;br&gt;
　　这一次的最终代码是:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Cpp" data-lang="Cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;MaxNum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;MaxNum&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;　　符合主题的，这是一个极度愚蠢的错误，我最初的代码写了:&lt;code&gt;for(int i = 2;i * i &amp;lt;= n;i++)&lt;/code&gt;&lt;br&gt;
　　结合小标题，显而易见的是，我在运行过程中爆了&lt;code&gt;int&lt;/code&gt;,但是其实这不是第一个爆了&lt;code&gt;int&lt;/code&gt;的地方，但是这里是最致命的地方&lt;br&gt;
　　我们都知道，在&lt;code&gt;C++&lt;/code&gt;中，爆了的数据要么占据符号位置变成了很小的负数，要么符号位没被占，但是超过的部分被忽略了导致数字变小了&lt;br&gt;
　　所以显而易见的，如果&lt;code&gt;i*i&lt;/code&gt;爆了（毕竟临时容器当然也是int类型）就会导致死循环&lt;br&gt;
　　&lt;del&gt;我说为啥单独一个点的时间会是其他点位的数百倍（或者说其实不止，但是测评不计录了）&lt;/del&gt;&lt;br&gt;
　　最后的解决方案目前想到两个:&lt;code&gt;long long i = 2&lt;/code&gt;或者如现在的这个（其他的也不过是类似的而且效率其实不算高）&lt;br&gt;
　　但是毕竟每次循环都做一次乘法还是效率不够高，&lt;code&gt;sqrt&lt;/code&gt;虽然涉及到类型转换以及精度丢失，但是在这里的算法影响不大可以忽略而速度可以提高两三倍&lt;br&gt;
　　还有就是:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Cpp" data-lang="Cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;Product&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Product&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;　　按照我以前的思路，会习惯性地使用除法，但是在这里的精度丢失可能会有问题，所以还是经量用乘法代替除法&lt;br&gt;
　　不过我要说的不是这个，而是依然回归主题，这里其实也爆了，Product在累乗的过程中可能会爆，毕竟&lt;code&gt;i&lt;/code&gt;可能会很接近&lt;code&gt;sqrt(n)&lt;/code&gt;，而&lt;code&gt;n&lt;/code&gt;可能会很接近&lt;code&gt;2^31&lt;/code&gt;，所以如果爆了还刚好可以整除就会出事&lt;br&gt;
　　**题外话：**这个方法长久不用了，我都忘了这个东西都开根了，到不了&lt;code&gt;n&lt;/code&gt;本身，所以弄不到质数的因子，得特判一下&lt;/p&gt;
&lt;h3 id="无价值的愚蠢"&gt;无价值的愚蠢
&lt;/h3&gt;&lt;h4 id="char数组初始化"&gt;char数组初始化
&lt;/h4&gt;&lt;p&gt;　　&lt;code&gt;char M[] = {1, 2, 3, 'X', 9, 8.....}&lt;/code&gt;，其实我想写的是&lt;code&gt;'1'&lt;/code&gt;.&lt;code&gt;'2'&lt;/code&gt;等等&amp;hellip;&lt;/p&gt;
&lt;h4 id="题目漏条件"&gt;题目漏条件
&lt;/h4&gt;&lt;p&gt;　　如题&lt;/p&gt;
&lt;h4 id="写if把读入跳过了"&gt;写if把读入跳过了
&lt;/h4&gt;&lt;p&gt;　　想写&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Cpp" data-lang="Cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;scanf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;%5d&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cnt&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flag&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;　　把&lt;code&gt;if&lt;/code&gt;写在了&lt;code&gt;for&lt;/code&gt;的外围，导致条件不满足的时候读入错位了&lt;/p&gt;</description></item></channel></rss>