首页 > 其他分享 >模拟套题 12.9

模拟套题 12.9

时间:2023-12-09 16:45:06浏览次数:33  
标签:复杂度 Solution times dp Delta 12.9 三角形 模拟 套题

不敢想象这是曾经初二的人做的

T1 非皇后

大意:给定 \(R\) 行 \(C\) 列的 棋盘 你可以随便在一个格子放一个非皇后 要求不能走直线和对角线 走 \(M\) 步
将走过的格子按顺序记起来 求最终有多少种不同排列

Solution

dp 裸题

定义 \(f_{i,j,k}\) 为走了 \(i\) 次 ,到格子 \((j,k)\) 的方案
容易有转移 $f_{i,j,k}=\sum\limits f_{i-1,x,y} \space $
其中 \(x,y\) 不是同行同列不是对角线

用四个前缀和优化一下就好了

时间复杂度 \(O(RCM)\)

T2 染色

给出 \(n\) 个结点 \(m\) 条边的无向图。有k种不同的颜色,编号 \(1\) 至 \(k\) 。现在你要对这n个结点染色,每个结点只能染一种颜色。还有一个特殊要求:凡是有边相连的两个结点,它们的颜色编号的和不能等于 \(z\) 。问有多少种不同的染色方案

\(n,m\leq 18\space k\leq 10^9\)

Solution

正面思考非常麻烦 看到 \(n,m\le 18\) 那肯定和 \(2^n\) 脱不了关系

颜色很大 不能装压 还有 \(2^n\) 次方的算法还有枚举 和 容斥

显然 可以容斥

直接枚举不满足的边 然后分类讨论即可

用并查集维护 时间复杂度是 \(O((n+m)2^m\log n)\) 并查集常数很小 可以接受

最大是 993ms

T3 子序列整数

给定字符串 \(S\) 和整数 \(n\)
求出有多少个不同的 \(S\) 的子序列 \(P\) 使得 \(n|P\)
\(|S|\le 5000\space n\le1000\)

Solution

难度还行

考虑难度在于 不同的 子序列
要是没有这个条件 一个 dp 划过去即可 时间复杂度 \(O(n^2|S|)\)
怎样才能保证每次产生的都是不同的呢?

我们要保证 每个数只记最开始出现的一次

根据这个,每个数的开头都是固定的了 注意 \(0\) 不能开头

这个时候手玩样例是最佳选择

\(Instance:\)
\(12412412\)
\(1\)
\(2,12\)
\(4,14,24,124\)
\(11,21,121,41,141,241,1241\)
\(22,12,42,142,242,1242,112,212,121,412,1412,2412,12412\)
\(...\)
一手玩玩 规律马上就出来了
能往下接的必须从上一个相同的数开始

记一下 \(last_{num}\) 即可
分析时间复杂度
\(O(n^2|S|) \to O(n|S|)\) 有常数 \(10\)

因为每个点的转移都是一部分 所以时间复杂度大大降低
均摊一下就有了

T4 三角形

前置芝士:This

想了三天才做出来 用了挺多数学课是时间推
很毒瘤的一道题

image
第一步肯定是手玩样例
手玩一下 不难发现合理的只有两种情况

  • 1.在目前已经围成的三角形内部 此时随便连都是三个
  • 2.在目前围成的三角形延长线的里面 这样会扩大三角形的面积

最后成的三角形的外围是固定的
我们可以这样拆分一个排列:
\([P_1,P_2,P_3],P_4,[P_5],P_6,P_7,[P_8],···,[P_n]\)
其中 有括号的表示 三角形 的坐标发生改变
这样 每种排列都有一个唯一的跳跃
我们用一个状态来记录这些排列:\(f_{i,j,k}\) 表示第 \(i,j,k\) 个点构成了三角形
这样似乎就可 dp 转移了
但这是错的 我们的想法是转移维护三角形的扩大(情况1) 可是 这样无法维护情况 \(2\)
往三角形内部一放 可能就不是排列了
怎么办?
为此 我们再加一维 \(t\) 表示三角形内部的点

这样 每个排列就被我们表示出来了 因为三角形内部的是任意的 可以计做一维
这样 我们的 dp 就出来了

对于情况 \(1\) 有 \(f(i,j,k,t)+=f(i,j,k+1,t)\times k\)
对于情况 \(2\) 判断 \((i,j,k)\) 外面的点 \(x\) 能把这个图连成三角 \((i,j,x)\) 有\(f_{i,j,k,t}+=f_{i,j,x,P}\)
\(P\) 的处理后面会讲

最终的答案就是 \(f_{p1,p2,p3,0}\) 其中 \(p1,p2,p3\) 是最终的顶点

现在主要问题处理完了 下面就是细节

  • 怎么判断一个点在不在三角形内部?

\(Solution\)
用最简单的方法 面积法
对于三角形内任意一点 \(P\) 有 \(S_{\Delta ABC}=S_{\Delta ABP}+S_{\Delta APC}+S_{\Delta PBC}\)
其中 对于 \(S_{\Delta ABC}=\frac{1}{2}\times |A_x\times B_y+B_x\times C_y+C_x\times A_y-A_y\times B_x-B_y\times C_x-C_y\times A_x|\)

  • 怎么判断一个点在这个三角形外围能成三角?

这个是整道题最难的地方
经过大量列举分类 有两种思路

  • 1 斜率

求出三种斜率 讨论即可
分类太大 作死了没做出来

  • 2 交点

我觉得这是最好的方法
枚举这个点连接三角形的顶点

image

图上 C D 就是顶点 D 在 A B 延长线之间

怎么判断?

与其判断一个点在两条线之间 不如判断两个点在一条线两侧 即 A B 在 CD 两侧

这个用解析式做出交点判断即可 同时 C D 在交点同侧

通过推理一大坨方程就可以了

注意这里还有两个分类 就是他们 y 相同的情况

标签:复杂度,Solution,times,dp,Delta,12.9,三角形,模拟,套题
From: https://www.cnblogs.com/g1ove/p/17891075.html

相关文章

  • 玩转多开模拟器,畅享游戏多样玩法
    玩转多开模拟器,畅享游戏多样玩法随着智能手机的普及和性能的提升,手机游戏已经成为人们日常生活中不可或缺的一部分。然而,有时候我们可能会遇到一些游戏只允许单个账号登录,无法多开的情况,这就给我们的游戏体验带来了一些限制。不过,通过多开模拟器的应用,我们可以很轻松地解决这个问......
  • 12.9 蓝桥杯 huffuman树c语言
    今天学习了蓝桥杯的huffuman树,总结如下:问题描述Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。给出一列数{pi}={p0,p1,…,pn-1},用这列数构造Huffman树的过程如下:1.找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加......
  • 【洛谷 P2670】[NOIP2015 普及组] 扫雷游戏 题解(模拟)
    [NOIP2015普及组]扫雷游戏题目背景NOIP2015普及组T2题目描述扫雷游戏是一款十分经典的单机小游戏。在行列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的......
  • Acwing 840. 模拟散列表
    题面:维护一个集合,支持如下几种操作:Ix,插入一个整数 \(x\);Qx,询问整数 \(x\) 是否在集合中出现过现在要进行 \(N\) 次操作,对于每个询问操作输出对应的结果。原题链接:840.模拟散列表-AcWing题库哈希表[1]基本概念哈希表也叫散列表,通过将键映射到索引位置(在关键......
  • 用html+css+js做canvas烟花模拟网页动画代码
    圣诞节、元旦就要到了,本案例我们将用html+css+js做canvas烟花模拟网页动画代码,程序员的浪漫这不就来了嘛,与家人朋友一起看烟花吧!   附源码<!DOCTYPEhtml><htmllang="en"><head> <metacharset="UTF-8"/> <title>烟花模拟器</title> <metaname="viewport"......
  • mumu模拟器frida-server-14.2.18-android执行报错{"type":"error","description":&
    前言全局说明环境:物理机Windos11mumu模拟器下载:MuMuInstaller_3.1.5.0_nochannel-mumu12_zh-Hans_1687258372mumu模拟器:MuMuNG-setup-V3.6.4.2333-1110175123.exemumu模拟器官网:https://mumu.163.commumu模拟器官网-历史版本:https://mumu.163.com/update/一、问题c......
  • 模拟赛记录
    每周三场模拟赛,用来记录。2023.11.22计数场。\(100+0+0+0=100\)。C0392B【1109B组】预处理器题意:求有多少个长度为\(n\)的数组\(a\)满足以下条件。条件一:\(l_{i}\lea_{i}\ler_{i}\)。条件二:\(a_{i}\)模\(2\)等于\(p_{i}\)。条件三:\(s\le\suma_{......
  • 模拟集成电路设计系列博客——4.2.1 固定电阻跨导器
    4.2.1固定电阻跨导器下图展示两种相似的使用电阻来建立输入差分电压和输出电流的线性关系的电路。为了理解这两个电路的基本原理,我们首先简化假设认为两个晶体管上的\(V_{gs}\)固定,作为结果,我们看到差分电压\(v_i\)出现在(a)的两个\(R_s/2\)两侧以及(b)的\(R_s\)两侧。因此漏极......
  • 【luogu帖】CSP-J 2023 模拟赛 01 赛时答疑帖
    赛时禁止用户与他人交流比赛相关内容,禁止在答疑帖发其他无关内容。欢迎大家参与CSP-J2023模拟赛01。这里是本场比赛的答疑帖。我向各位参赛者及谷友们的支持表示感谢。请不要在赛前在本帖中发布过多灌水相关言论,赛时禁止在本帖中发布灌水相关言论。如果对题面有不理解建议......
  • 使用mumu模拟器抓包 andriod app
    背景公司H5嵌入到农行手机app里面。某天有人反馈进入国内机票订单详情时,应用崩溃了,如下图:经过测试,此问题仅在安卓手机中出现,且其他页面都正常。于是我怀疑可能是这个页面代码有问题,想着能否抓包看看大概发生了啥。手机抓包我借同事的安卓手机进行抓包,不幸的是农行app禁止我们......