10 2012 档案
摘要:本题乃水题是也。dp(i)表示当前在第i格时,到达终点需要掷骰子次数的期望。dp(i)=1/6(dp(i + 1) + dp(i + 2) + dp(i + 3) + dp(i + 4)+ dp(i + 5) + dp(i + 6))+1。如果i可以直接跳到某点j,则dp(i)=dp(j)。View Code 1 #include <iostream> 2 #include <cstdio> 3 #define maxn 100010 4 using namespace std; 5 6 int next[maxn]; 7 double d[maxn]; 8 int n
阅读全文
摘要:静态链表。。STL要超时。。View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <cstring> 5 using namespace std; 6 7 vector<int> G[50001]; 8 int dp[50001],visit[50001],head[50001]; 9 int n,k;10 struct Edge11 {12 int v;13 int next;14 }edge[50001 * 2];15
阅读全文
摘要:实际上,这个题不难,状态很好写:balace[i]=max(size[j],N-size[i]),其中i是j的父节点,size[i]表示以节点i为根节点所构成子树的节点总数。一遍dfs就可以搞定。题目里给的数据是告诉你每两个节点之间有一条边,而不是父子节点关系。。。View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #define MAX 0xffffff 5 using namespace std; 6 7 vector <int> G[20001]
阅读全文
摘要:View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <vector> 5 using namespace std; 6 7 int n,len; 8 char name[201][101]; 9 int dp[201][2]; 10 int special[201][2]; 11 vector <int> G[201]; 12 13 int max(int a,int b) 14 { 15 if(a > b) re
阅读全文
摘要:树形DP入门啦。View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <vector> 5 using namespace std; 6 7 int n,len; 8 int dp[6001][2]; 9 int value[6001];10 bool flag[6001];11 vector <int> G[6001];12 13 int max(int a,int b)14 {15 if(a > b) retur
阅读全文

浙公网安备 33010602011771号