首页 > TAG信息列表 > 骨牌
2022.8.7 躺平记录
Preface 真的摆了一整天啊啊啊啊啊啊。 Content 昨晚打比赛睡太晚,导致今天起得很晚。 早上去看题,写了道构造题,不出意外崩了,果断跑路。 下午打入门月赛,G 题死活三个点过不去,H 题想都懒得想。 然后把电脑给弟弟玩了好久,晚上九点才拿回来 QAQ。 [CF500E]New Year Domino \(N\) 个多Codeforces Round #805 (Div. 3)
比赛链接: https://codeforces.com/contest/1702 E. Split Into Two Sets 题意: \(n\)(\(n\) 为偶数)张多米诺骨牌,每张骨牌有两个数字(数字范围为 1 到 \(n\)),问是否能将所有的骨牌分成两堆,每堆中的数字没有重复。 思路: 容易知道最后划分出来的两堆骨牌覆盖了 1 到 \(n\) 的所有数字,即每[Contest on 2022.6.20] (
\(\cal T_1\) 益智游戏 Description 一个 \(n × n\) 棋盘的每个格子被继续划分为了一个 \(2 × 2\) 的小棋盘,每个小棋盘中放了一个 \(1 × 2\) 的多米诺骨牌。 每个小棋盘有个修改代价,你需要花费最小的修改代价使得所有填了多米诺骨牌的小格子中心之间的距离不为 \(\sqrt 2\).cf1551 D2. Domino (hard version)
题意: 给定空的 n×m 棋盘,用 1×2 横骨牌和 2×1 竖骨牌放满棋盘。要求不能重叠且横骨牌的数量恰为 k。 输入 n,m,k。n,m <= 100 思路: n m 不能都为奇数。 若 n 为偶数:先考虑第一列,第一列中被竖骨牌占据的格子数必为偶数,剩下的偶数个格子要放偶数个横骨牌,因此会向第二列 “伸出”Codeforces Round #734 (Div. 3)
比赛链接 Codeforces Round #734 (Div. 3) D1. Domino (easy version) 给你 \(t\) 组数据。对于每组数据给你一个 \(n \times m\) 的网格(\(n\) 为网格高度, \(m\) 为网格宽度,且网格的数量为偶数),要求在网格中放置多米诺骨牌,每个骨牌占据 \(1 \times 2\) 的网格区域。对于这 \(\frac{1196 骨牌铺放(宁波大学oj)
题目描述 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: 输入要求 输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n .(1<=n<=50) 输出要求 对于每个测试棋盘覆盖问题(保姆级解释)
这可是保姆级解释哦! 1、问题描述: 在一个个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。棋盘覆盖问题要求用如图所示的4种不同形状的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 2、问题分析过程: ① 显然,用户输入k的值(k[CF1368G]Shifting Dominoes
壹、题目描述 ¶ 传送门 to CF. 贰、题解 ¶ 考察空格子的移动方式 —— 把一个牌动一步,再在后面接上一个牌,再......中途的任意一步都可以停下,具体地,就是下面这一幅图: 不难看出,这种移动方式具有很强的图论性质,并且,从图论上看,每个点的出度均为 \(1\),所以这个特别地2046 骨牌铺方块(杭电)
// // main.c // 杭州电子科技大学 // // Created by yonuyeung on 2021/10/20. //经过分析可知,该题涉及斐波那契数列,当n比较大时,数字也很大,所以要用longlong类型 #include<stdio.h> int main() { int n; long long a[55]={1,1,2}; for(int i=3;i<55;i++) {「CF1368G」Shifting Dominoes
题目 点这里看题目。 分析 先考虑枚举一个骨牌并将它取下来。这样,一个空格就可以通过周围的骨牌来向各个方向移动。 注意到,我们可以选取最终局面上的一个空格,并找出它原先在哪里——看一下初始平板上这个空格对应的字符,就可以确定现在这块骨牌向哪个方向移动了,我们就可以逆向操作;664
算法 目录算法棋盘覆盖一、什么是棋盘覆盖二、证明棋盘覆盖有解三、实现棋盘覆盖的思路和方法四、棋盘覆盖的具体实现代码五、算法分析 棋盘覆盖 一、什么是棋盘覆盖 在一个2kⅹ2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为特殊方格,且称该棋盘为一特殊棋盘。 显[CF1131G]Most Dangerous Shark
壹、题目描述 ¶ 传送门 to Luogu. 有 \(n(n\le 10^7)\) 个骨牌,相邻距离为 \(1\),对于第 \(i\) 个骨牌,其高度为 \(h_i\),推倒它的花费为 \(c_i\),你可以选择将它向左或向右推倒,当第 \(i\) 个骨牌被推倒时,它会以相同方向推倒与其距离 小于 \(h_i\) 的骨牌,求推倒所有骨牌的最小花费。CF1131G Most Dangerous Shark
一、题目 点此看题 二、解法 考虑每个点的推倒状态只有向左倒和向右倒,然后我们又要把所有骨牌推倒,所以设计 \(dp[i]\) 表示推倒前 \(i\) 个骨牌的最小代价,假设我们会处理 \(l[i],r[i]\) 表示向左推倒骨牌 \(i\) 覆盖的左端点,向右推倒骨牌 \(i\) 覆盖的右端点,转移: 把 \(i\) 向左21.2.22 T2 多米诺骨牌 真·详解
题面 Description 有一个 \(r * c\) 的矩形,和一些 \(1*2\) 的多米诺骨牌。如果想用这些骨牌刚好填满这个矩 形,使得没有位置是空出来的,多米诺骨牌也没有重叠。请问有多少种方法刚好填 满这个矩形呢?一种可能的填法如下图: 设定矩形是有方向的,旋转之后相同和相互对称的填法应当计算为HDU 2046 骨牌铺方格
链接 骨牌铺方格 - http://acm.hdu.edu.cn/showproblem.php?pid=2046 分析 1 二 1 二 1 二 1骨牌铺方格(递推)
原题链接 Problem Description 在2 × n的一个长方形方格中,用一个1 × 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2 × 3方格,骨牌的铺放方案有三种,如下图: Input 输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。CF1237F Balanced Domino Placements 组合数学+计数DP
题意: 戳这里 分析: 可以考虑简化问题,考虑 \(1\times n\) 的一行中,有一些不能放,放 \(a\) 个一格骨牌, \(b\) 个两格骨牌的方案数。 设 \(f(i,j)\) 表示前 \(i\)个格子放 \(j\)个两格的方案数。 那如果 \(i,i−1\) 都能放, \(f(i,j)=f(i-1,j)+f(i-2,j-1)\) 否则 \(f(i,j)=f(i-1,j)\) 最CF1368 选做
CF1368 选做 E 给定一张 DAG,保证出度不超过 \(2\),定义操作为: 选择一个点 \(x\),删去其所有出边。 选择不超过 \(\frac{4}{7}n\) 个点,使得图上不存在经过超过 \(2\) 个点的路径。 保证连边为 \(x\to y(x<y)\) \(n\le 2\cdot 10^5\) Solution 条件等价于 \(n\ge \frac{7}{4}\textrm矩阵幂求解骨牌覆盖数(SOJ 3021)
SOJ 3021: Quad Tiling 题意:给出$4\times N$的矩形以及尺寸为$2\times 1$的骨牌,求解该矩形能被骨牌覆盖的种数。 分析:起初我自己一直尝试推导出一个递推式,但是一直没有成功。后来看了网上别人给的递推式:$f(n)=f(n-1)+5*f(n-2)+f(n-3)-f(n-4)$,有了这个式子,这个题很好求解了。下面我杭电oj HDOJ 2046 骨牌铺方格(递推)
杭电oj HDOJ 2046 骨牌铺方格(递推) 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2046 Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input 输入数据由多二分图——棋盘覆盖
棋盘覆盖 给定一个N行N列的棋盘,已知某些格子禁止放置。 求最多能往棋盘上放多少块的长度为2、宽度为1的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。 输入格式 第一行包含两个整数N和t,其中t为禁止放置的格子的数量。 接下来t行每行包含两个整数x和yG - Most Dangerous Shark dp 单调栈 单调队列
题意: 一条线段上有n张骨牌(n=1e7), 相邻骨牌距离为1,每张骨牌有其高度和推倒的花费,问最少的花费推倒所有的骨牌。 题解: 首先用单调栈维护每个位置往左(右)推能推倒的最远的骨牌 dp[i]表示1-i倒下的最小花费 转移显然只有两种 一种是第i张往左推动 另一种是找到往右推动能推倒iHDUOJ:【3】2046骨牌铺方格
原题目: http://acm.hdu.edu.cn/showproblem.php?pid=2046 主要思路: 仔细观察排列的方式,当列数为n时,可理解为以下两种情况: 由n-1列在最右侧加一列 由n-2列在最右侧加两行 讨论一下为什么没有考虑n-2列加两列的情况,因为n-2列加一列就相当于n-1列了,这些情况数已经包括在了情况poj 2411 Mondriaan's Dream
http://poj.org/problem?id=2411 题意: 用1*2骨牌完美覆盖n*m棋盘,求方案数 将列的状态压缩, 一个骨牌有三种摆放方式 1表示骨牌竖着放且骨牌的上端在这一列,即这一列向下凸出 0表示骨牌竖着放且骨牌的下端在这一列,即这一列被上一列的一个竖着的骨牌覆盖,或者是骨牌横着覆盖 为什骨牌覆盖 状态压缩 动态规划
简单一点的说这个题,就是用1x2的骨牌去覆盖NxM的棋盘,有多少种方案。N, M <= 11。 初步理解 我们对N进行初步分类讨论: 当N = 1时,M为奇,无解,M为偶,有唯一解 当N = 2时,Fibonacci数列 (自己可以找例子推一下) 深入分析 可N > 2时怎么办? 由于N<=11,不难想到状态压缩,可以用二进制位运