luogu P4076 [SDOI2016]墙上的句子】的更多相关文章

luogu loj 题意看了我半天(逃 (应该是我语文太差了) 题意是要确定每一行和每一列的看单词的顺序,使得同时正着出现和反着出现在里面的单词数量最少,每行和每列的性质是这一行所有单词反过来的单词要么字典序大于等于原来的,要么小于等于原来的 首先回文单词一定会出现,可以直接加入答案,以后就不用管了.对于剩下的单词,如果不想让他贡献答案,那就要使的每次读这个单词都是一个样子,例如"ABC" "CBA",那么第一个正着读,第二个反着读答案最小.为了方便,我们只保留单词…
题目描述 考古学家发现了一堵写有未知语言的白色墙壁,上面有一个n行m列的格子,其中有些格子内被填入了某个A至Z的大写字母,还有些格子是空白的. 一直横着或竖着的连续若干个字母会形成一个单词,且每一行的阅读顺序可能是从左向右或从右向左,每一列的阅读顺序可能是从下往上或从上往下.也就是说对于每一行来说,从左向右可以被看做是若干个单词形成的句子,相邻两个单词被一个或多个空白格子分割开来:也有可能是从右向左被看成是一个句子,竖直方向类似. 遗憾的是,我们并不完全知道每一行每一列的阅读顺序是怎样的.但可以…
\(\mathcal{Description}\)   Link.   (概括得说不清话了还是去看原题吧 qwq. \(\mathcal{Solution}\)   首先剔除回文串--它们一定对答案产生 \(1\) 的贡献.我们称一个句子是"正序"的,当且仅当句子的所有单词同时满足自己的字典序不小于翻转后的字典序:"逆序"则当且仅当句子的所有单词同时满足自己的字典序严格大于翻转后的字典序.从这条显眼的性质入手:   此外观察者发现,对每一行(列)来说,按照确定后的阅…
题解 我一直也不会网络流--orz 我们分析下这道题,显然和行列没啥关系,就是想给你n + m个串 那么我们对于非回文单词之外的单词,找到两两匹配的反转单词(即使另一个反转单词不会出现也要建出来) 具体就是我们建一个hash表,遇见一个单词读进来,把这个单词反转之后再存进哈希表里 然后我们把一对反转单词挑出来,按照字典序,字典序小的往字典序大的连一条流量为2的边 那么现在我们考虑一下加入阅读方式都已经被全部确定,那么网络流的建图方式就应该是 如果顺着给定的顺序是字典序较小的,那么就向给定循序读的…
原题传送门 看到这种题,想都不用想,先写一个树链剖分 然后发现修改操作增加的是等差数列,这使我们想到了李超线段树 先进性树剖,然后用李超线段树维护区间最小,这样就做完了(写码很容易出错) 复杂度为\(O(n\log^3n)\),少见的复杂度啊qaq,但常数不用怕 #include <bits/stdc++.h> #define ll long long #define N 100005 #define M 100005 #define inf 123456789123456789LL #def…
题目链接 \(Click\) \(Here\) 其实是看后缀数组资料看到这个题目的,但是一眼反应显然后缀自动机,每次维护添加节点后的答案贡献即可,唯一不友好的一点是需要平衡树维护,这里因为复杂度不卡而且也不需要用到\(ch\)数组的遍历访问,我采用了\(map\)的写法. 其实是因为不会平衡树维护啦,如果有机会还是要学一下啊..这个题可是没给不用平衡树的部分分啊\(Qwq\)(直接全体\(1e9\)) #include <bits/stdc++.h> using namespace std;…
晚上XZTdalao给我推荐了这道数论题.太棒了又可以A一道省选题了 其实这道题也就考一个错排公式+组合数+乘法逆元 我们来一步一步分析 错排公式 通俗的说就是把n个1~n的数排成一个序列A,并使得所有的a[i]!=i(1<=i<=n) 对于这道题我们可以进行转化,要求m个a[i]==i的个数,我们可以把它转化成求(n-m)个a[i]!=i的个数 然后用到错排公式: d[i]=(i-1)*(d[i-1]+d[i-2]) 其中d[i]表示i个数的错排方案 组合数 这个就比较简单了,比较经典的公式…
BZOJ 4515 树链剖分 + 李超线段树 要求支持区间插入一条线段,然后查询一个区间内的最小值.可以使用李超线段树解决,因为要维护一个区间内的最小值,所以每一个结点再维护一个$res$表示这个区间内的最小值.因为本题把问题搬到了树上,剖一下就可以了. 我们可以把一个点$x$到根的距离$dis_x$记为一个点在二维平面上的横坐标,这样子可以保证一条重链上的点的距离递增,并且不改变点之间的距离. 考虑到一条树链$(x, y, z)$($z$是$lca(x, y)$)上的数字的覆盖情况是先从$x$…
反正现在做题那么少就争取做一题写一题博客吧 看到题目发现数字种类不多,而且结合价值的要求可以容易地想到使用费用流 但是我们如果朴素地建图就会遇到一个问题,若\(i,j\)符合要求,那么给\(i,j\)连的应该是双向边,但双向边怎么跑网络流? 所以我们就要考虑怎么给边定向,我们稍加观察就会发现如果\(i,j\)合法,\(j,k\)也合法,那么\(i,k\)显然是不合法的(分四类情况讨论一下都是不合法的) 考虑那个整除出一个质数的条件,我们发现如果我们定义\(ct_i\)为\(a_i\)的所有质因数…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…