摘要: 思路:在没有梯子与蛇的时候很容易想到如下公式:dp[i]=1+(∑dp[i+j])/6但是现在有梯子和蛇也是一样的,初始化p[i]=i;当有梯子或蛇时转移为p[a]=b;这样方程变为:dp[i]=1+(∑dp[p[i+j]])/6再就是注意当i+j>100时,停在原地不变。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define M 105 7 #define eps 1e-6 8 using namespace std; 9 double ans[M],an[M][M];10 int p[M];11 v 阅读全文
posted @ 2013-10-03 19:34 _随心所欲_ 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 思路:每次找出可能情况最少的位置枚举可能情况!!!poj2676和这题一样不过poj数据比较水,很容易过。代码如下: 1 #include 2 #include 3 #include 4 #define M 100005 5 using namespace std; 6 char str[9][9]; 7 struct point 8 { 9 int x,y;10 }p[82];11 int cnt,tot;12 bool is_ok(int x,int y,char c) //判断c是否可以放13 {14 int u=x/3*3;15 int v=y/3*3;16 ... 阅读全文
posted @ 2013-10-03 10:37 _随心所欲_ 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 思路:这题的关键就是重复根只可能是整数。这样先求出所有的根的数目,在减去重复的根。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #define ll long long 6 using namespace std; 7 bool f[6000005]; 8 int main(){ 9 ll n,m;10 scanf("%I64d%I64d",&n,&m);11 ll ans=0;12 memset(f,0,sizeof(f));13 for(ll b=1;b=0;c--){17 ... 阅读全文
posted @ 2013-10-03 09:43 _随心所欲_ 阅读(157) 评论(0) 推荐(0) 编辑