/tmp/duangsuse.sock
23 subscribers
303 photos
3 videos
92 files
337 links
从 duangsuse::Echo (@dsuse) 跟进出来的分支,将在作者恢复原帐号访问的时候合并删除。
Download Telegram
奉自己之名来这里讲一下几个数学的模板 #Math

当然其中涉及的主要是程序推导(分析)和变换的问题,毕竟我不是数学爱好者... 改天我问 @LEXUGE
Forwarded from Deleted Account
其实如果不单单从 OI 上来看,我建议这种比较数学的解决方案,如果命名是这样的话还是把原公式写注释里好
Forwarded from Deleted Account
从代码风格上,我想给点建议:

1. 如果把那个没用的 #define INF 删掉,代码会减少一行
2. 既然把 long longunsigned long long 当成基本的数值使用,不如加 typedef unsigned long long num;
3. #define endl 这个定义是干什么的... 开发环境是 MSVC(CRLF)? 终端是 Cygwin 的 terminal(LF)?
4. mod 最好用 const static num _10e9p7 = (10^9)+7; 或者起个更好的名字,这个名字有点模糊(而且映射到数学公式上就混淆了)
5. if (a % 2 == ) { a /= 2; } else { b /= 2; } 的逻辑可以抽提一下,并且缩进没必要那么规范(虽然好像抽提定义的话重用的不多...)

#define mod %
static inline bool idivable(n, m) { return n mod m ==0; }
static inline bool idiv2(n) { return idivable(n, 2); }
if (idiv2(a)) { a /= 2; } else { b /= 2; }

6. 利用结合律提升数值稳定性的计算可以做一个宏抽提
7. C++ 一般使用 static_cast<new_type>(o) 而不是 (new_type) o 做类型转换
8. (n*(n+1)>>1) 如果是想表示 (n * floor(n+1) / 2) ) 的话可以用宏定义或者 inline 函数抽提来明确语义


最后再膜一下 OI 大佬(
Forwarded from Deleted Account
我真的不敢想像,即使是天才们,他们的直觉就有那么强,适合各种非常模糊的名字和定义?
Forwarded from Deleted Account
其实我不是很能理解,因为我目前还是只能看比较清晰的逻辑的,复杂一点不那么明确就做不到
Forwarded from Deleted Account
如果真的很强的话,是不是就能完全忽视这些无关紧要的代码风格相关的东西了?
Forwarded from Deleted Account
可是我觉得直觉很重要,我觉得奇怪的是,他们的直觉能那么饶
Forwarded from Deleted Account
当我考虑方法的时候,我就会这么想
Forwarded from Deleted Account
我的直觉是类似这种的,非常 immediate
Forwarded from Deleted Account
当然也的确是有不好说的问题
Forwarded from Deleted Account
可是我总觉得... 一切尤其是数学本身应该是简单,六岁小孩都可以理解的

这里只是说如果要尽可能做到最好的话该怎么学习,就是把所有东西化为直觉
Forwarded from Deleted Account
过了一天我对那两个 sum 的直觉稍微好一点了...
那个 sum(i, n) sum(j, m) ija = sum(i,n) sum(j,m) a 虽然我没有模拟但感觉上好像是一样的,此时我把 Sigma 考虑成 accumlator + 循环,重复其 inner 子式子,大概知道可能是一样的,虽然不准确但可以作为猜测

然后因为有两个 mod 的缘故,最后一个 mod 好像是死代码,因为 mod 有属性

b<a⇒rem(b,a)≡b∧div(b,a)≡0

且从那 n m 相关的 value range 看好像不会有大于 10^9+7 的情况出现

后来看发的题解后知道其实本来还要多一层考虑,两个 sigma 乘了以后还是可能出现 > 10^9+7 的情况...
应该是得先无视常量叠加,然后拆循环,算 value range,再去做别的变形
Forwarded from Deleted Account
你现在看见一些大佬觉得很羡慕,其实很多人真正都没有那么顺利... 都是经过努力才得到的

就像国家级的运动员一样,都看到他们的成绩和强壮的体魄,可是这后面是有很多年的积累和训练,
有些训练强度大真的是开始做一个月都非常难受的,何况持续做下去也很不容易,计算机科学也是一个道理
即便是我这种有兴趣加成的人也会觉得有些事情很难坚持,而且经常遇到不顺利的事情

与其现在羡慕别人或者去膜拜大佬,不如走好自己的路,膜拜大佬最好的方式就是成为一样的大佬

付出越多得到越多,如果想不断追求更好,一方面要有方法,比如要多看 nontrivial 的书籍(比如各种 PLT 程序设计语言理论)
一方面努力和勇气也是不可或缺的
昨天我花了整整一天时间写了篇文章,现在正在请求引用许可,允许了就会发上来
继续写我的其他东西,C++ 计算器
是这样,目前已经备份到我的 Telegram,得到允许即可开源
内容是这样,原文不再修改,开源后会加附注