思路:接BFS判断能否在限制时间内到达公主的位置,注意如果骑士进入传送机就会被立即传送到另一层,不会能再向四周移动了,例如第一层的位置(x, y, 1)是传送机,第二层(x, y, 2)也是传送机,这种情况骑士会一直被传上传下. AC代码: 0ms #include<cstdio> #include<cmath> #include<cstring> #include<queue> using namespace std; const int maxn = 1…
保存每个节点的下一个节点一直往下面走就行了,不能重复经过某个点,当经过的点达到20个而且当前节点的下一个节点是起点就打印答案. AC代码 #include<cstdio> #include<vector> #include<cstring> #include<algorithm> using namespace std; const int maxn = 25; int vis[maxn]; vector<int>v[25]; int ans[m…
ID Origin Title 17 / 60 Problem A ZOJ 3537 Cake 54 / 105 Problem B LightOJ 1422 Halloween Costumes 59 / 90 Problem C POJ 2955 Brackets 26 / 51 Problem D CodeForces 149D Coloring Brackets 47 / 58 Problem E POJ 1651 Multiplication Puz…
ID Origin Title 20 / 60 Problem A HDU 3507 Print Article 13 / 19 Problem B HDU 2829 Lawrence 1 / 5 Problem C HDU 4528 小明系列故事――捉迷藏 5 / 6 Problem D HDU 1300 Pearls 0 / 42 Problem E HDU 2993 MAX Average Problem 1 / 20 Problem F UVALi…
题意:给定一些DNA序列,求一个最短序列能够包含所有序列. 思路:记录第i个序列已经被匹配的长度p[i],以及第i序列的原始长度len[i].则有两个剪枝: 剪枝1:直接取最长待匹配长度.1900ms int h = 0; for(int i = 0; i < n; ++i) { h = max(len[i] - p[i], h); //最大待匹配长度 } 剪枝二:统计每个序列里面四种序列值,并求得每种序列值的最长长度.将四种序列值加起来就是最长待匹配长度.180ms int cal() { /…
8个方向求联通块,经典问题. AC代码 #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int maxn = 100 + 5; const int dx[] = {0,0,-1,1,-1,-1,1,1}; const int dy[] = {1,-1,0,0,1,-1,1,-1}; int n, m; char…
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in the center of…