
【搜索】
欣君
追寻那如樱花般的绚烂
展开
-
51nod 1109 01组成的N的倍数
BFS #include using namespace std; const int MAXN=1000100; int dis[MAXN],pre[MAXN]; char ans[MAXN]; int main() { int n,i,now,cnt,nxt; while(scanf("%d",&n)!=EOF) { memset(dis,-1,sizeof(dis));原创 2016-11-17 15:30:46 · 287 阅读 · 0 评论 -
51nod 1400 序列分解
只有40长度,dfs一下就好。 由于剪枝,时间复杂度O(2^20)。 #include int a[44],b[44],arr[44],n,flag; void dfs(int deep,int alen,int blen) { if(deep==n||flag) { flag=1; return; } if(alen==blen) { a[alen+1]=arr[d原创 2016-11-17 21:19:24 · 272 阅读 · 0 评论 -
牛客OI周赛8-提高组 A 用水填坑
95%的分很好拿,只要对每一个高度都跑一遍dfs/bfs就行了,但最后5%的分有难度。 首先我们可以知道,最外面一圈的高度和蓄水量,是固定的。我们可以考虑从外圈向内圈进行反向搜索操作。 用一个堆/优先队列作为搜索队列,维护已确定蓄水量的单元格中,高度+蓄水量最小的单元格。 每次取出堆顶元素,其周围的单元格高度为。 如果,必定可以将这个单元格填补到高度,总蓄水量增加,。 如果,那说明这个单...原创 2019-04-18 18:30:04 · 238 阅读 · 0 评论