搜索
_Ark
这个作者很懒,什么都没留下…
展开
-
[NOI2008]假面舞会 (搜索+gcd)
题意 LuoguP1477 题解 对于每一条边(u,v)(u,v)(u,v),建两条边(u→v,1),(v→u,−1)(u\to v,1),(v\to u,-1)(u→v,1),(v→u,−1)。跑bfsbfsbfs,如果这个点已经来过,就把到当前的距离与已经得到的disdisdis值的差存起来,所有的值取一个gcdgcdgcd就是最大的答案,最小的答案枚举一下≥3\geq3≥3的因数就行了。如果...原创 2019-10-17 16:16:38 · 134 阅读 · 0 评论 -
ID 迭代加深搜索 模板 埃及分数
#include <bits/stdc++.h> using namespace std; #define LL long long int Maxd; LL Ans[10], now[10]; bool flag; inline void chkmin() { for(int i = Maxd; i; i--) if(now[i] < Ans[i]...原创 2018-11-04 21:53:56 · 262 阅读 · 0 评论 -
【NOIP2015】斗地主 D1 T3 及 增强版 (送命题)
暴搜顺子,DP预处理剩下的。 由于官方数据太水,很多情况没有讨论的都能过普通版本,想要测试自己代码的正确性的同学们可以交交这道题 Luogu P2540 斗地主增强版 传送门 #include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt; using namespace std; const int MAXN = 25; int n, cnt[15], p[5], Ans, dp[6][8][12]...原创 2018-11-07 21:56:09 · 382 阅读 · 0 评论 -
51nod 1989 竞赛表格 (爆搜+DP算方案)
题意 自己看 分析 其实统计出现次数与出现在矩阵的那个位置无关.所以我们定义f(i)f(i)f(i)表示iii的出现次数.那么就有转移方程式f(i)=1+∑j+rev(j)=if(j)f(i)=1+\sum_{j+rev(j)=i}f(j)f(i)=1+j+rev(j)=i∑f(j)但是这样的话jjj可以取的值太多了,无法DP,怎么办呢?题解给出了巧妙的优化.我们只考虑那些形如"x+rev(x)...原创 2019-03-19 10:49:57 · 217 阅读 · 0 评论 -
Luogu P4270 [USACO18FEB]Cow Gymnasts (打表找规律)
题意 传送门 题解 首先我们不竖着看奶牛而是横着看。从下往上把奶牛叫做处于第0,1,2...0,1,2...0,1,2...层。那么相当于第000层的不动,第111层的平移一格,第222层的平移222格,以此类推,第iii层平移iii格。假设每一层的最小正周期为xix_ixi,则显然有xi∣ix_i|ixi∣i且xi∣nx_i|nxi∣n。因为第iii层动了iii步恰好复原,iii就一定是最...原创 2019-07-08 16:56:40 · 367 阅读 · 17 评论 -
Luogu P4082 [USACO17DEC]Push a Box 点双连通分量/圆方树
(貌似有圆方树的做法,我写的是点双) 显然这道题就是直接搜索。定义状态为f[i][j][0~4]表示箱子在(i,j),人在某个方向推。然后问题就是怎么转向。我们发现如果要转向,必须是人走过一条不包括(i,j)的路径到另一个方向。那么直接求一个点双联通分量就完事了。把点双联通里面的点两两之间都有至少两条不经过重复点的路径,这样就能转向了。 点双内,具体的处理方法是开一个桶。 具体见代码 CODE #...原创 2019-07-16 15:32:08 · 300 阅读 · 0 评论