Forwarded from Deleted Account
劳资 TMD 现在连 i[n/i] 这个表达式都不知道是啥意思,为啥要莫名其妙加个括号...
https://latex.codecogs.com/png.latex?a\mod{b}%20=%20a%20-%20b[\frac{a}{b}]
https://latex.codecogs.com/png.latex?a\mod{b}%20=%20a%20-%20b[\frac{a}{b}]
#recomended https://github.com/IoriOikawa 推荐一个人,看 bio 和项目感觉很有意思(虽然目前只有 12 source 而且大部分 fork 都是空 fork,但看质量应该会有突出的那种
GitHub
IoriOikawa - Overview
/*只想得到某人认真夸赞而傻傻努力的*/我,一定是世界上最可笑且没救的计算机辣鸡。. IoriOikawa has 69 repositories available. Follow their code on GitHub.
/tmp/duangsuse.sock
奉自己之名来这里讲一下几个数学的模板 #Math 当然其中涉及的主要是程序推导(分析)和变换的问题,毕竟我不是数学爱好者... 改天我问 @LEXUGE
...就不在 Telegram 上讲了,太淡疼了。上 MathJax 算了...
Forwarded from Deleted Account
其实如果不单单从 OI 上来看,我建议这种比较数学的解决方案,如果命名是这样的话还是把原公式写注释里好
Forwarded from Deleted Account
从代码风格上,我想给点建议:
1. 如果把那个没用的
2. 既然把
4. mod 最好用
5.
7. C++ 一般使用
8.
最后再膜一下 OI 大佬(
1. 如果把那个没用的
#define INF 删掉,代码会减少一行2. 既然把
long long 和 unsigned 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
过了一天我对那两个 sum 的直觉稍微好一点了...
那个
然后因为有两个 mod 的缘故,最后一个 mod 好像是死代码,因为 mod 有属性
后来看发的题解后知道其实本来还要多一层考虑,两个 sigma 乘了以后还是可能出现 > 10^9+7 的情况...
应该是得先无视常量叠加,然后拆循环,算 value range,再去做别的变形
那个
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,再去做别的变形