摘要: link 矩阵乘法优化图上DP。 先要想出一个很巧妙的点。朴素的方程 \(f[i][x]=f[i-1][x]+\sum f[i-1][y]\) 而每次统计一遍爆炸个数会限制后续优化,于是考虑搞一个0号节点出来,每一个点向0连一条边即可。爆炸了之后就相当于待在那里不走了嘛。 会发现这个方程是高度重复的 阅读全文
posted @ 2022-06-21 17:17 Feyn618 阅读(31) 评论(0) 推荐(0) 编辑
摘要: link 虽然很古老的时候(大概是2021年那个幸福但昏昏沉沉的寒假)已经自学过一阵矩阵乘法,但今天突然考到的时候还是想不起来,于是喜提暴力40分。 这道题的方程很好写。 \(f[i]=f[i-1]\times10^{\lfloor \log_{10}i\rfloor}+i\) 用矩阵来表示: \( 阅读全文
posted @ 2022-06-21 17:10 Feyn618 阅读(29) 评论(0) 推荐(0) 编辑
摘要: link 绿题。考场上想出了结论但不敢用。没往那方面去思考。太弱了。 按照样例可以猜想一个结论,即等待时间久的人一定会先去打饭。可以简要证明:假如相邻的两个人i和j,很明显他们之间的顺序不会影响到其他人的打饭时间,那么就看一下他们二人后吃完饭的时间。假设Bi>Bj,i先吃,则吃完饭的时间为 max( 阅读全文
posted @ 2022-06-21 16:58 Feyn618 阅读(57) 评论(0) 推荐(0) 编辑
摘要: link 众所周知,USACO的题有几个特点。一个是翻译的题面很简洁,另一个就是写起来真的不是很复杂,想通了就可以顺利写完。 这一看就是一个换根DP的板子,和昨天写的Nearby Cows G是一样的,极其赤裸的换根。按着节奏写就对了。没什么好说的。 #include<bits/stdc++.h> 阅读全文
posted @ 2022-06-21 16:44 Feyn618 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 写[HNOI2011]数学作业的时候死调调不过,最后在题解里一句及其晦涩的话中找到了答案: AC code:an=qpow(ss,res)*an; WA code:an=an*qpow(ss,res); 究其原因是那句广为传唱的话,矩阵乘法满足结合律,但不满足交换律(毕竟有的情况下两个乘数交换了之后 阅读全文
posted @ 2022-06-21 16:40 Feyn618 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 没什么好说的。板子: #include<cstdio> #define int long long const int mod=1e18; int times(int s1,int s2){ if(s2==1)return s1; int an=times(s1,s2>>1); if(s2&1)re 阅读全文
posted @ 2022-06-21 15:26 Feyn618 阅读(24) 评论(0) 推荐(0) 编辑
摘要: [USACO12FEB]Nearby Cows G 一道换根DP的板子。但是通过这道题发现了我的一些错误代码细节。 一主要就是对于第二遍DFS的过程中对于自己的第二维(也就是距离那维)应当倒序枚举。因为你要保证你调用自己的某个值时这个值是正确的,又因为只会调用比自己小的dp值,所以倒序枚举就可以避免 阅读全文
posted @ 2022-06-21 08:25 Feyn618 阅读(28) 评论(0) 推荐(0) 编辑