题目链接 \(Description\) 棋盘上\((0,0)\)处有一个棋子.棋子只有两种走法,分别对应向量\((A_x,A_y),(B_x,B_y)\).同时棋盘上有\(n\)个障碍点\((x_i,y_i)\),棋子在任何时刻都不能跳到障碍点. 求棋子从\((0,0)\)跳到\((E_x,E_y)\)的方案数.答案对\(10^9+7\)取模. \(Solution\) 注意到\(A_x*B_y-A_y*B_x\neq0\),即两向量不共线,从某个点走到另一个点,两种方式分别所用次数\(x,y…
题目链接 bzoj4767: 两双手 题解 不共线向量构成一组基底 对于每个点\((X,Y)\)构成的向量拆分 也就是对于方程组 $Ax * x + Bx * y = X $ \(Ay * x + By * y = Y\) \(x,y\)不能为负问题转化为NE lattice path \(f(i)\)表示从0到i点不经过障碍的方案数 枚举第一个碰到的障碍点 \(f(i) = cnt(0,i) - \sum_j dp[j] cnt(j,i)\) \(cnt(x,y)\)为从点x到y的方案数 代码…
传送门 题意简述:你要从(0,0)(0,0)(0,0)走到(ex,ey)(ex,ey)(ex,ey),每次可以从(x,y)(x,y)(x,y)走到(x+ax,y+ay)(x+ax,y+ay)(x+ax,y+ay)或者(x+bx,y+by)(x+bx,y+by)(x+bx,y+by),其中有nnn个障碍点问方案数,所有出现的值的绝对值≤500\le500≤500 思路:从(0,0)(0,0)(0,0)到每个障碍点需要用几次(x+ax,y+ay)(x+ax,y+ay)(x+ax,y+ay)和几次(x…
题目传送门 传送门I 传送门II 题目大意 一个无限大的棋盘上有一只马,设马在某个时刻的位置为$(x, y)$, 每次移动可以将马移动到$(x + A_x, y + A_y)$或者$(x + B_x, y + B_y)$.棋盘上有$n$个禁止位置不能经过,问马从$(0, 0)$走到$(E_x, E_y)$的方案数. 容斥是显然的. 每确定经过$k$个禁止位置的方案数的容斥系数是$(-1)^{k}$. 考虑带上容斥系数来动态规划, 注意到去掉重复的禁止位置后,$(0, 0), (E_x, E_y)…
题解: 发现这种题目虽然可以想出来,但磕磕碰碰得想挺久的 根据数学可以知道组成方案是唯一的(集合) 然后发现每个使用的大小可能是接近n^2的 直接dp(n^4)是过不了的 那么先观察观察 我们可以把每个障碍点的表示也搞出来 这样就变成了一张网格图求起点到终点的方案数 然后考虑一下容斥,枚举第一个经过的障碍点是谁(之后就随便走了) 然后发现做这个的时候在不断递归 那可以直接按照x,y排个序 依次递推过去…
传送门 题意: 给你平面上两个向量,走到指定点,一些点不能经过,求方案数 煞笔提一开始被题面带偏了一直郁闷为什么方案不是无限 现在精简的题意.....不就是$bzoj3782$原题嘛,还不需要$Lucas$了.... 因为这是平面向量啊 基本定理与唯一表示..... 小新上课强调了辣么多次...... #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> u…
4767: 两双手 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1057  Solved: 318[Submit][Status][Discuss] Description 老W是个棋艺高超的棋手,他最喜欢的棋子是马,更具体地,他更加喜欢马所行走的方式.老W下棋时觉得无聊,便 决定加强马所行走的方式,更具体地,他有两双手,其中一双手能让马从(u,v)移动到(u+Ax,v+Ay)而另一双手能让 马从(u,v)移动到(u+Bx,v+By).小W看见…
A Simple Chess 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5794 Description There is a n×m board, a chess want to go to the position (n,m) from the position (1,1). The chess is able to go to position (x2,y2) from the position (x1,y1), only and if…
给一个n*n的矩阵,保证:(1)每行都是一个排列 (2)每行每个位置和上一行对应位置不同.求这个矩阵在所有合法矩阵中字典序排第几.考虑类似数位DP的做法,枚举第几行开始不卡限制,那么显然之前的行都和题给矩阵相同,之后都是错排.现在要求的就是,当前行在所有与上一行不交的排列中字典序排第几.同样考虑数位DP,从后往前枚举到当前位开始不卡限制.用两个树状数组分别维护:(1)这一位之后的数组成的集合 (2)这一位之后当前行和上一行均有的数的集合.那么分当前这位是否使用上一行这一位之后存在的数讨论,现在要…
[BZOJ3622]已经没有什么好害怕的了 Description Input Output Sample Input 4 2 5 35 15 45 40 20 10 30 Sample Output 4 HINT 输入的2*n个数字保证全不相同. 还有输入应该是第二行是糖果,第三行是药片 题解:好吧这题不是神题,而是套路题,容斥+DP的套路在很多题中都用到过,不过我虽然知道套路,却被这题的第一步卡住了. 我们将两个序列从小到大排序. 好吧这步看起来可能很水,正常人看到无序的序列都会先想到排序,…