/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,再去做别的变形
Forwarded from Deleted Account
你现在看见一些大佬觉得很羡慕,其实很多人真正都没有那么顺利... 都是经过努力才得到的
就像国家级的运动员一样,都看到他们的成绩和强壮的体魄,可是这后面是有很多年的积累和训练,
有些训练强度大真的是开始做一个月都非常难受的,何况持续做下去也很不容易,计算机科学也是一个道理
即便是我这种有兴趣加成的人也会觉得有些事情很难坚持,而且经常遇到不顺利的事情
与其现在羡慕别人或者去膜拜大佬,不如走好自己的路,膜拜大佬最好的方式就是成为一样的大佬
付出越多得到越多,如果想不断追求更好,一方面要有方法,比如要多看 nontrivial 的书籍(比如各种 PLT 程序设计语言理论)
一方面努力和勇气也是不可或缺的
就像国家级的运动员一样,都看到他们的成绩和强壮的体魄,可是这后面是有很多年的积累和训练,
有些训练强度大真的是开始做一个月都非常难受的,何况持续做下去也很不容易,计算机科学也是一个道理
即便是我这种有兴趣加成的人也会觉得有些事情很难坚持,而且经常遇到不顺利的事情
与其现在羡慕别人或者去膜拜大佬,不如走好自己的路,膜拜大佬最好的方式就是成为一样的大佬
付出越多得到越多,如果想不断追求更好,一方面要有方法,比如要多看 nontrivial 的书籍(比如各种 PLT 程序设计语言理论)
一方面努力和勇气也是不可或缺的
/tmp/duangsuse.sock
关于某『双重标准』排序方法,我有一点新的想法, 下面我来举出一个真正不可能实现(逻辑相悖)的例子: 对于程序设计入门来说,很多人都会喜欢用一些简单的交互式“游戏”做例子, 比如一个支持对初始为 0 的『计数器』进行『+1; -1; *2; /2』操作的计算器,比如猜数游戏 『剪刀石头布』这个游戏也是一个例子。 给定双方的游戏『出拳』,关于判定游戏的输赢,本来是这样的: {-# LANGUAGE UnicodeSyntax #-} data G出拳 = C剪刀 | S石头 | F布 deriving…
This media is not supported in your browser
VIEW IN TELEGRAM