摘要:
【链接】h在这里写链接【题意】让你在n个点组成的集合里面选取不为空的集合s.使得这里面的点没有出现某个点a和b,ax>=bx且ay>=by;问你s的个数。【题解】我们把这些点按照(x,y)升序排(x优先,y次之).然后按顺序处理这些点。会发现.我们在处理(x,y)点的时候.只有它的左上方那些点是可以... 阅读全文
摘要:
【链接】h在这里写链接【题意】给你一个长度为n的数字(n只枚举8的倍数就可以了。小于等于3位的情况,特殊判断一下就好。然后剩下的数字,先放一个最小的非0数字在开头。剩下的从小到大安排就可以了。(可以把它放在字符串vector里面.最后排下序输出最小的就好了)【错的次数】0【反思】在这了写反思【代码】... 阅读全文
摘要:
【链接】h在这里写链接【题意】在这里写题意【题解】枚举0在哪个位置就好。【错的次数】0【反思】在这了写反思【代码】#include using namespace std;const int N = 1e3;int t[N + 10], a[N + 10], n;int f(int pos) { i... 阅读全文
摘要:
【链接】h在这里写链接【题意】给你一个n*n的矩阵。其中每一列都有一个点。任意两个点构成了矩形的两个对角点->即任意两个点确定了一个矩形。->总共能确定n*(n-1)/2个矩形。现在,给你一个圈出来的矩形区域。问你有多少个矩形,是在这个矩形之内.或和矩形相交。【题解】找和询问矩形相交的矩形不好找。我... 阅读全文
摘要:
【链接】我是链接【题意】接上一篇文章【题解】接(点我进入)上一篇文章.这里讲一种用类似二维线段树的方法求矩形区域内点的个数的方法。我们可以把n个正方形用n棵线段树来维护。第i棵线段树维护的是正方形的前i列的各行之间的点数之和。也即前i列,第[x..y]行之间点的个数(也即一个(y-x+1)*i的矩形... 阅读全文
摘要:
【链接】h在这里写链接【题意】求两个串的最长公共子串。【题解】Sa[i]表示的是字典序为i的后缀的起始位置。可以把两个字符串合在一起(中间用一个比'z'大的字符分割);则如果Sa[i-1]len1;则它们表示s1和s2的两个后缀。取height[i]然后求最大值就可以了。(height[i]表示的是... 阅读全文
摘要:
【链接】h在这里写链接【题意】给出一个字符串,求出至少不重叠出现2次以上的子串有多少个。【题解】枚举要找的子串的长度i;根据height数组,找出连续>=i的height;这几个起始的位置的后缀的最长公共前缀都大于等于i;且它们起始位置开始的长度为i的串ts都是一样的。(且没有其他和它们一样起始i个... 阅读全文
摘要:
【链接】h在这里写链接【题意】找一个字典序最小的公共最长子串;【题解】后缀数组。把所有的串用不同的分隔符分开。(大于'z'的分隔符);然后求出那几个固定的数组。二分一下那个子串的长度.看看是不是在N个串里面都有这个串即可。可以用一个下标,来记录某个位置开始的后缀是第几个串里面的(即输入的N个串里面的... 阅读全文
摘要:
【链接】h在这里写链接【题意】一个硬币正面朝上的概率为q/p;抛k次,问你偶数次朝上的概率为多少。【题解】【错的次数】0【反思】在这了写反思【代码】#include using namespace std;const long long MOD = 1e9 + 7;long long ksm(lon... 阅读全文
摘要:
【链接】h在这里写链接【题意】在这里写题意【题解】在这里写题解【错的次数】0【反思】在这了写反思【代码】#include using namespace std;int n,a;int main(){ ios::sync_with_stdio(0),cin.tie(0); cin >> ... 阅读全文