cf-Round #216 (Div. 2) -D Valera and Fools-dfs
2013-12-03 20:24
330 查看
对于任意状态,给定第一个人和第二个人,就可以知道这个状态的形式。
那么任意状态只与第一个人和第二个人有关系。
vis[a][b]: 第一个人为a,第二个人为b的状态。
dfs求解。
那么任意状态只与第一个人和第二个人有关系。
vis[a][b]: 第一个人为a,第二个人为b的状态。
dfs求解。
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int cnt; int p[5001]; int s[5001]; int n,m; int vis[5001][5001]; void dfs(int a,int b,int k) { if(k>m)return; if(a>n)a=n+1; if(b>n)b=n+1; if(vis[a][b])return; vis[a][b]=1;cnt++; // cout<<a<<" "<<b<<endl; if(p[a]) { if(s[b])dfs(b+1,b+2,k+1); if(s[b]<100)dfs(a,b+1,k+1); } if(p[a]<100) { if(s[b])dfs(b,b+1,k+1); } } int main() { int i; while(~scanf("%d%d",&n,&m)) { memset(vis,0,sizeof(vis)); memset(p,0,sizeof(p)); memset(s,0,sizeof(s)); for(i=1;i<=n;i++) { scanf("%d",&p[i]); } for(i=n;i>=1;i--) { s[i]=max(s[i+1],p[i]); } cnt=0; if(n>1)dfs(1,2,0); else cnt=1; cout<<cnt<<endl; } }
相关文章推荐
- Codeforces Round #216_div2_D.Valera and Fools
- cf D. Valera and Fools
- Codeforces Round #216 (Div. 2) D. Valera and Fools
- Codeforces Round #216 (Div. 2) C - Valera and Elections(图论和dfs)
- 【CF】121 Div.1 C. Fools and Roads
- CF-Codeforces Round #420 (Div. 2)-C-Okabe and Boxes
- CF&&CC百套计划3 Codeforces Round #204 (Div. 1) D. Jeff and Removing Periods
- CF Fox And Two Dots (DFS)
- CF 280C. Vanya and Exams(div2)
- Codeforces Round #430 (Div. 2) C. Ilya And The Tree dfs+set
- CF(#293 div2):A:Vitaly and Strings
- Codeforces Round #442 (Div. 2) E. Danil and a Part-time Job (dfs序 + 线段树)
- CF 257 DIV 2 D. Jzzhu and Cities (学会了使用优先队列优化的Dij 和 静态链表存储)
- Codeforces Round #394 (Div. 2)-E. Dasha and Puzzle(dfs)
- Codeforces Round #216 (Div. 2) B. Valera and Contest
- Codeforces Round #212 (Div. 2) D. Fools and Foolproof Roads 并查集+优先队列
- Codeforces Round #381 (Div. 2) D Alyona and a tree(DFS树上搞事)
- 【CF】207 Div.1 B.Xenia and Hamming
- cf C. Kefa and Park (树的dfs)
- Codeforces Round #403 (Div. 2)C Andryusha and Colored Balloons (dfs)