首页 > 其他分享 >ASC8 F - Counterfelt Money

ASC8 F - Counterfelt Money

时间:2023-05-27 17:23:50浏览次数:50  
标签:map ASC8 Money 矩阵 Counterfelt 枚举 哈希 我们 nm

尝试使用哈希。首先,我们可以发现,我们去枚举最终答案矩形的长和宽。然后我们会发现宽是关于长单调减少的。那么我们就可以写一个双指针,每次检查对当前的 \(x,y\),是否存在长为 \(x\),宽为 \(y\) 的相同子阵。因为是双指针,所以枚举的复杂度是 \(O(n+m)\) 的。

然后考虑匹配。我们发现,我们可以使用哈希,具体的,我们先预处理矩阵哈希表,然后在当前矩阵中枚举左上角的位置,通过当前的 \(x,y\) \(O(1)\) 求出子矩阵哈希值,存入 map 中。然后对第二个矩阵如法炮制,只是计算出哈希值之后在 map 中查找是否有相同的哈希值。

对于如何计算矩阵哈希,利用二维前缀和计算矩阵哈希是有点困难(但并非不可能的)。但是在这道题中,我们很明显可以有更优的方法。我们只是计算每一行的哈希值,在枚举左上角的时候先枚举列数,然后再枚举行。每次行编号增加只需要增加多出来的一行在当前列区间的哈希值和原先行在当前列区间的哈希值。区间哈希是 \(O(1)\) 的,总复杂度就是 \(O(nm(n+m)\log (nm))\),如果使用哈希表代替 map,甚至可以做到 \(O(nm(n+m))\)。

https://codeforces.com/gym/100213/submission/4003803 by HTTPs: sillyboy, ddldyj237, technolt

标签:map,ASC8,Money,矩阵,Counterfelt,枚举,哈希,我们,nm
From: https://www.cnblogs.com/jucason-xu/p/17437028.html

相关文章

  • P5540 [BalkanOI2011] timeismoney | 最小乘积生成树
    题意给一个无向图,边有两个权\(a\)和\(b\),定义一个生成树的权值是\(\left(\sum\limits_{e\inT}a_e\right)\left(\sum\limits_{e\inT}b_e\right)\),求最小权值生成树。权值相同请最小化\(a\)的和。\(1\len\le200,1\lem\le10000,0\lea_e,b_e\le255\)。题解纯粹记......
  • ASC8题解
    B:考虑用\(D(n,r)\)表示在\(r\)维空间中有\(n\)个超平面最多形成多少个区域,感觉不是很好做,考虑一下怎么递推。根据在二三维的经验,我们可以得到以下递推式:\(D(n,r)=D(n-1,r)+D(n-1,r-1)\),实际意义就是原来已经有了\(n-1\)个然后再加入一个之后,会与前面的\(n-1\)个超平面在\(r\)维......
  • 专访Evernote CEO Phil Libin:Evernote想留住你的记忆而不是你的Money
    在伦敦举行的 LeWeb大会以后,Evernote CEO PhilLibin 提到,Evernote现在的用户数量已从五月份的2500万上升到六月份的3400万,付费用户虽然比率仍旧很小,但也在快速增长,从五月份的100万增长到六月份的140万。就Evernote今后的发展计划,著名科技博客TechCrunch编辑INGRIDLUNDEN对Ev......
  • SEE 06 Time Value of Money
    TimeValueofMoney6.1Timeismoney“Interest”“Interestrate”6.2RealandNominalInterestRatesnominalinterestrate:theinterestrateusuallyreportedandnotcorrectedforinflation.realinterestrates:Therealinterestrateatwhichthep......
  • The Importance of Money in Life
    Whatwereyoutaughtaboutmoneyasyouweregrowingup?somethinglike"Moneydoesn'tgrowontrees",or"Moneyistherootofallevil",ormaybe"allrichpeoplearegreedy"? Well,howdoyouexpecttobecomeasuccessf......
  • 在 SQL Server 中应该选择 MONEY 还是 DECIMAL(x,y) 数据类型?
    money我很好奇数据类型和类似的东西之间是否存在真正的区别decimal(19,4)(我相信这是金钱在内部使用的东西)。我知道这money是特定于SQLServer的。我想知道是否有令......
  • D - Money in Hand -- 动态规划
    D-MoneyinHandhttps://atcoder.jp/contests/abc286/tasks/abc286_d 思路dp[i][j]:forjyuan,findifitispossibletogetjyuanwiththefirsticoins.......
  • D - Money in Hand
    D-MoneyinHandhttps://atcoder.jp/contests/abc286/tasks/abc286_d 思路创建可访问性标记mapvis 默认设置vis[0]=true表示0的钱数,可以凑成,不用选取任何......
  • Vulnhub之MoneyBox 1靶机详细测试过程
    MoneyBox作者:jason_huawen靶机基本信息名称:MoneyBox:1地址:https://www.vulnhub.com/entry/moneybox-1,653/识别目标主机IP地址┌──(kali㉿kali)-[~/Vulnhub/Mo......
  • SQL Server中,Numric,Decimal,Money三种字段类型的区别
     SQLServer中,Numric,Decimal,Money三种字段类型的区别 1,Numric,Decimal,Money三种字段类型,都是精确数据类型;前两个可以自己定义长度和小数位数,Money的定义相当于......