/tmp/duangsuse.sock
23 subscribers
303 photos
3 videos
92 files
337 links
从 duangsuse::Echo (@dsuse) 跟进出来的分支,将在作者恢复原帐号访问的时候合并删除。
Download Telegram
Forwarded from Deleted Account
Kotlin Coroutine

刚才我甚至已经弱智到忘了携程是咋执行的了... 的确是串行的
Forwarded from Deleted Account
果然还是实践很重要啊,理论就考虑不到这种问题,GlobalScope 还和本地的 runBlocking scope 有区别...
 调⽤了 runBlocking 的主线程会⼀直阻塞 直到 runBlocking 内部的协程执⾏完毕。
Forwarded from Deleted Account
非对称协程我都忘了,居然还有这种东西... 还存在一个 scope 和父子协程.... 那父协程可以叫醒儿子儿子不能反了爸爸,爸等(timer.await())儿,独立再调教一下(GlobalScope.async { timer = delay(3000) }),完美... 这个 Scope 的直觉又是啥子
Deleted Account
冰封说是 Scope 是 CPS(Continuation-Passing-Style) 出来的 context... 我想想 不像我这个辣鸡,人家现在回复不需要两分钟,两秒就得去忙别的了...
携程本身就是 CPS 吧(实现起来麻烦一点,要 capture 执行状态,整个数据栈包括然后指令的执行状态也得包括)... 这么说是那种... 对爸爸的数据依赖?
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Deleted Account
我自己 OI 很菜的,偏偏现在又有事情想做,那么想快速了解一下,只能拜托各位大佬了。。。
Forwarded from Deleted Account
向上递归?回溯的时候判 ==? 可是为什么能够做到并+查呢?

[1,2,3,4,5,...] 这么初始化 是有什么缘由的吗
Forwarded from Deleted Account
A={3,5,6} B={1,0,2} 这种情况我求一下并查集 AB,然后在上面进行查询操作

首先树的离散化是这样的,每个节点有爸爸

data Tree a = Father a | Children [Tree a]
vec
father(n) = vec[vec[n]]
mkchild(n, m) = vec[m] <- vec[n]

先放数据... 怎么放

要知道他们是不是一个家族的

是... 这样判断『查』(in) 的?并 就是组织这样一个搜索树...

并查集的本质是维护一个森林,把森林里的树合并。只要是达到这个目的都可以。但是初始化成自己的父节点的话会更容易理解并查集的本质。

合并 搜索树???? 爸爸 是什么 为什么要有爸爸 为什么有了爸爸就会使得效率++...
Forwarded from Deleted Account
这样的话递归下去也不难找,第一个公共父节点

data Tree a = Leaf a | Pa a (Tree a)

childFamily :: Tree a -> Tree a -> Bool
childFamily l r = case (l, r) of
(Pa x fx, Pa y fy) -> if fx == fy then True else (childFamily fx fy)
otherwise -> False

可是 怎么去构造树 为什么能够通过这种森林来 并查集
Forwarded from Deleted Account
XyyBcj.hs
1.4 KB
噢,果然是会把人急傻的... 不爱看就算了,我目前的水平也就是以自己的视角整理一下代码而已 只是有点奇怪为啥 ask 的递归里没有重写参数... 好像也没有副作用啊 也只能到时候再看了
XyyBcj.hs
1.4 KB
现在才知道是可以 AC 的... 我还以为无尽递归栈溢呢(没强调尾递归),没想到是在 readInts...
是这样,目前正在学习为什么就 可以...
/tmp/duangsuse.sock
是这样,目前正在学习为什么就 可以...
这里 ask 是一个递归查找的子程序,它递归寻找一个树状数组的 i == vec//i
并且
+ i == @i => @i=i
+ 否则,总之就是递归下去找 @@i 什么的,然后存下来结果(就是把这个节点直接重写了)

比如这里有一个小离散化的树

root=3
@1=3
@2=2
@3=1

我们去 ask 这个 3 (ask vec 3),然后结果是:

l1: i=3, @i==1/=0, @3=rec 1
l2: i=1, @i==3/=1, @1=rec 3
leven: i=3
lodd: i=1...
这样的话就成环(cycle)了... 怪我的图没画好,可是如果没有环就是:

l1: i=3, @i==1/=0, @3=rec 1
l2: i=1, @i==2/=1, @1=rec 2
l3: i=2 @i==2==2, 2

这就是在找... 爸爸的爸爸的... 等于爸爸或者、爸爸的爸爸就是爸爸自己(root)?只不过是离散化的版本?

原来 Vec.produce \n -> (n+1) 是这种原因?每个数字对应一个『爸爸』树?

childFamily l r = case (l, r) of
(Pa x fx, Pa y fy) -> if fx == fy then True else (childFamily fx fy)
otherwise -> False
/tmp/duangsuse.sock
#Haskell 冰冰又发了新算法 Haskell XyyBcj
准确来说也不『新』了,冰封 2016 年 8 月就在博客上发了离散化求并查集的题解...(汗)
This media is not supported in your browser
VIEW IN TELEGRAM