题意:在h×w的棋盘中从左上角走到右下角,只能向右或向下走,有n个点不可以经过,一共有多少种方案。解法:dp。先对点按横坐标排序(横坐标相等按纵坐标,也可以反过来)dp[i]表示不经过其他非法点走到第i个非法点的路径数,则有dp方程:dp[i] =c(point[i].x + point[i].y ...
分类:
其他好文 时间:
2015-07-24 17:26:56
阅读次数:
103
这场CF又掉分了。。。 这题题意大概就给一个h*w的棋盘,中间有一些黑格子不能走,问只能向右或者向下走的情况下,从左上到右下有多少种方案。 开个sum数组,sum[i]表示走到第i个黑点但是不经过其他黑点的方案数。 式子是sum[i]=c(x[i]+y[i],x[i])-Σ(sum[j]*c...
分类:
其他好文 时间:
2015-07-23 06:37:06
阅读次数:
107
之前的文章请看:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制
现在实现走棋的功能。
首先需要获取点击到的棋子,用QWidget中的函数
mouseReleaseEvent
实现函数:
void Board::mouseReleaseEvent(QMouseEvent *ev)
{
// 首先要获取鼠标点击的位置
QPoint pt = ev->pos();...
分类:
其他好文 时间:
2015-07-22 18:59:56
阅读次数:
136
//从0到n有n+1个格子
//对于格子i,掷一次骰子的数为x,那么可以从位置i到位置i+x
//格子之间有连线,如果格子a和b有连线,那么从a到b不用掷骰子
//求从0到n的骰子掷的次数的期望
//dp[i] = 1/6*segma(dp[k]) + 1 (i
#include
#include
#include
using namespace std ;
const int ...
分类:
其他好文 时间:
2015-07-20 19:27:20
阅读次数:
104
def eight_queen(): def if_inline(point1, point2): if(point1[0] == point2[0] or\ abs(point1[0] - point2[0]) == abs(point1[1] - poi...
分类:
编程语言 时间:
2015-07-19 00:09:17
阅读次数:
268
#-*- coding: utf-8 -*-# 随机抽取扑克牌的程序,调用该脚本,每输入一次回车就会随机返回一张扑克牌import randomvalues = range(1, 11) + "Jack Queen King".split()suits = 'diamonds clubs heart...
分类:
编程语言 时间:
2015-07-13 23:49:14
阅读次数:
240
题意:给出n*n的棋盘,白方在(1,1),黑方在(1,n)处,每一步可以上下左右对角线走,哪个先抓到另一个,则它获胜可以画一下,发现n是奇数的时候,白方先走,无论它怎么走,黑方和它走对称的,黑方都一定能赢n是偶数的时候,将白方走到(1,2)就变成奇数的情况,白方必胜 1 #include 2 #.....
分类:
其他好文 时间:
2015-06-29 14:42:36
阅读次数:
107
题目链接:点击进入
定义dp[i][j]表示将一个皇后放在第i列第j行有多少种放法.则转移方程dp[i][j]+=dp[i-1][k].如果flag[i]==’?’,1<=j<=n,否则j只能取一个值,而1<=k<=j-2,j+2<=k<=n.代码如下:#include
#include
#include
using namespace std...
分类:
其他好文 时间:
2015-06-10 09:00:03
阅读次数:
103
题目链接:http://acm.acmcoder.com/showproblem.php?pid=4405
题意:棋子,从0到n,置骰子,置到几就往前走几步,前进中会有捷径,比如2和5连到一起了,那你走到2时可以直接跳到5,如果5和8连到一起了,那你还可以继续跳到8,最后问跳到n时平均置几次骰子。也就是求期望。
解法:普通概率DP,dp[n] == 0 ;向前递推。
代码:#include <...
分类:
其他好文 时间:
2015-06-09 11:48:52
阅读次数:
159