首页 > 其他分享 >AT_arc166_c [ARC166C] LU / RD Marking

AT_arc166_c [ARC166C] LU / RD Marking

时间:2024-07-14 22:41:20浏览次数:14  
标签:rd Marking int 斜线 arc166 RD ARC166C

这种类型的题(对脑电波题)有些题能秒,有些题想多久都想不出来。。。

显然本题能一起染黑的边存在某种关系,我们考虑一条边可以和哪两条边一起染色,乍一看如果还没看出来有什么性质,我们就考虑把连着的边再这样考虑一遍。

突然,灵光乍现!我们这样连可以连出来个斜线!也就是说我们可以将网格图拆开,分开讨论每一个斜线。我们把每个斜线拉直变成序列,发现这显然可以 dp 处理,设 \(f_{i,0}\) 表示到第 \(i\) 位末尾有偶数个点染黑, \(f_{i,1}\) 表示到第 \(i\) 位末尾有奇数个点染黑,转移非常 easy:

\[f_{i,0}=f_{i-1,0}+f_{i-1,1} \]

\[f_{i,1}=f_{i-1,0} \]

然后我们再回到网格图,手玩一下就会发现分开的斜线含有的边的数量是一个类似分段函数的东西,不妨设 \(n<m\),前 \(n\) 条斜线的长度是差为 \(2\) 的等差数列,后面有 \(m-n\) 条长度为 \(2n+1\) 的斜线,再往后有跟第一段等价的一段。

那么我们预处理出累乘的值,每次询问再用快速幂算出第二段的值就做完啦!

时间复杂度 \(\mathcal{O}(n+T\log n)\)。

代码:

int f[N][2], g[N];
signed main ()
{
  f[0][0] = 1;
  g[0] = 1;
  rep (i, 1, N - 1) f[i][0] = (f[i - 1][0] + f[i - 1][1]) % P, f[i][1] = f[i - 1][0];
  rep (i, 1, N - 1) if (i & 1) g[i + 1] = g[i - 1] * f[i + 1][0] % P;
  int T = rd ();
  for (; T; -- T)
  {
    int n = rd (), m = rd ();
    if (n > m) swap (n, m);
    printf ("%lld\n", g[n * 2] * g[n * 2] % P * qpow (f[n * 2 + 1][0], m - n) % P);
  }
}

标签:rd,Marking,int,斜线,arc166,RD,ARC166C
From: https://www.cnblogs.com/lalaouyehome/p/18302152

相关文章

  • Invicti Standard 09 Jul 2024 v24.7.0
    新的安全检查添加了新的安全检查,以识别通过PolyfillJS进行的供应链攻击增加了对GeoServerSQLi漏洞(CVE-2023-25157 )的检测添加了对各种WordPress插件的检查改进改进信用卡披露安全检查为特工和InvictiHawk之间的通信添加了自定义标头将“可能的X......
  • 在WPS和WORD里打字会多出拼音来
    在WPS和WORD里打字会多出拼音来  今天在正常使用WPS的同时,自动更新了几个软件,然后输入汉字的同时会出现汉字的汉语拼音,问题如图所示。一开始以为是输入法出了问题,切换了三个输入法(搜狗、拼音、微软),都是同样的现象。后来发现应该是WPS或者WORD的问题,神奇的是,同样的doc文件,用W......
  • WordPress:快速搭建站点,wp安装及模版介绍
    最近搭建个人站点比较多,都是想把业务做到国外,通过google来引流,那我们今年就来介绍一个比较受欢迎的站点平台wordPress。WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用......
  • 题解:CodeForces 1511 C Yet Another Card Deck[暴力/模拟]
    CodeForces1511CC.YetAnotherCardDeckDescriptionYouhaveacarddeckof\(n\)cards,numberedfromtoptobottom,i. e.thetopcardhasindex\(1\)andbottomcard —index\(n\).Eachcardhasitscolor:the\(i\)-thcardhascolor\(a_i\......
  • containerd 容器基础环境组件的搭建
    1基础环境说明(1)本次所有部署软件版本说明软件名称版本号操作系统内核(后续升级为lt-5.4.278)CentOS7.9.2009(3.10.0-1160.el7)1c1GB20GBCentOS-7-x86_64-Minimal-2009.isocontainerdv1.6.6cfsslv1.6.1cniv1.1.1crictlv1.24.2nerdctl1.7.6......
  • D2. Sum over all Substrings (Hard Version)
    原题链接题解code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lldp[1000005]={0};voidsolve(){lln,ans=0;cin>>n;strings;cin>>s;s=""+s;//使字符串1索引化for(lli=1......
  • 在windows下部署thingsBoard本地安装详细教程
    ThingsBoard是一个开源的物联网平台,用于数据收集、处理、可视化展示以及设备管理。ThingsBoard使用行业标准物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard结合了可扩展性,容错性和性能,因此您永远不会丢失数据。ThingsBoard提供设备和资产的管理:通过......
  • Oracle Record Variables 记录变量
    OracleRecordVariables(Oracle记录变量)是Oracle数据库编程中PL/SQL语言的一个关键特性,它允许开发者将多个相关的、分离的、基本数据类型的变量组合成一个复合数据类型,类似于C语言中的结构体(STRUCTURE)。这种复合数据类型被称为RECORD(记录)。在PL/SQL中,记录变量提供了一种非常......
  • 测试人必会 K8S 操作之 Dashboard
    在云计算和微服务架构的时代,Kubernetes(K8S)已成为管理容器化应用的标准。然而,对于许多新手来说,K8S的操作和管理常常显得复杂而神秘。特别是,当你第一次接触K8SDashboard时,你是否也感到有些无所适从? K8SDashboard是Kubernetes提供的一种用户友好的图形界面工具,它让用......
  • 运维系列:数据库服务器 重启mysql服务出现 ERROR 1045: Access denied for user: ‘roo
    @[TOC](数据库服务器重启mysql服务出现ERROR1045:Accessdeniedforuser:‘root@localhost’(Usingpassword:NO)怎么)数据库服务器重启mysql服务出现ERROR1045:Accessdeniedforuser:‘root@localhost’(Usingpassword:NO)怎么解决?系统是ubuntuse......