2019年3月26日
摘要: 题意 有n张有序的卡片,每张卡片上恰有[1,m]中的每一个数,数字写在正面或反面。每次询问区间[l,r],你可以将卡片上下颠倒,问区间中数字在卡片上方的并的平方和最大是多少。q,n*m≤1,000,000。 思考 一个很重要的性质,若区间长度≥log m+1,则答案为12+22+33+...+m2。 阅读全文
posted @ 2019-03-26 17:27 GreenDuck 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1.内存过大而无法编译。 2.使用sort函数没有重载赋值符。 3.神志不清,浑身躁动。 4.优先级。 5.hash是关键字。被坑于2019_03_28。100pts-->0pts。 6.调试输出endl,不然不会刷新。 7.永远不要用stl传参,你会T的很惨。 8.快递幂写挂。 9.没想好就写。( 阅读全文
posted @ 2019-03-26 17:01 GreenDuck 阅读(155) 评论(0) 推荐(0) 编辑
2019年3月23日
摘要: FFT也能用于一些特殊的字符串匹配与最小化问题。 Prob 1 : 给出模式串A与文本串B,两个串中只有26个大写字母与通配符'?'(即可以任意匹配一个字符),求A在B中的匹配数。要求以FFT为例给出上限为O(nlogn)的算法。 Prob 2 : 给出模式串A与文本串B,字符集很小,求A在B中的匹 阅读全文
posted @ 2019-03-23 21:56 GreenDuck 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题意 给定整数n两个1-n的排列a,b,有m次操作:若opt==1,则有 l1 r1 l2 r2,求出a:[l1,r1]与b:[l2,r2]中相同元素的交的大小。若opt==2,则有 x y,交换b排列中的 第x位与第y位。 n,m≤200,000 思考 只改变b排序中元素位置,考虑每次询问a中l1 阅读全文
posted @ 2019-03-23 21:13 GreenDuck 阅读(170) 评论(0) 推荐(0) 编辑
2019年3月21日
摘要: 对于每个平面图,都有唯一一个对偶图与之对应。若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面。 直观地讲,红色标出来的图就是蓝色标出的图的对偶图。 求出一个平面图的对偶图(而且不是特殊的结构),可以贪心地找出所有最小的面。但如何描述最小?我们要 阅读全文
posted @ 2019-03-21 18:26 GreenDuck 阅读(492) 评论(0) 推荐(0) 编辑
2019年3月19日
摘要: 题意 平面直角坐标系中有一些等腰直角三角形,且直角边平行于坐标轴,直角顶点在右下方,求奇数次被覆盖的面积。N<=10。输入为x,y,r,分别表示三角形顶点的坐标与三角形的边长。 如: 总面积为0.5+2+4.5-0.5-0.5=6 思考 看到数据范围,就肯定是优美的暴力。 这题思路很清奇。首先我们要 阅读全文
posted @ 2019-03-19 17:09 GreenDuck 阅读(132) 评论(0) 推荐(0) 编辑
2019年3月18日
摘要: 题意 给出n(n<=2E5)个k(k<=5)维空间中的点,每次询问[l,r]中两个点曼哈顿距离的最大值(可以类比二维) 思考 根据初中数学,我们知道。 而每个维度上的曼哈顿距离是独立的。 k又很小,因此我们可以一股脑地分类讨论,把所有可能的结果算出来。 设f[S]表示k位二进制下k个维度的正负情况, 阅读全文
posted @ 2019-03-18 20:42 GreenDuck 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1 #include<bits/stdc++.h>//只是在虚数部分改了一下 2 using namespace std; 3 typedef long long int ll; 4 const ll maxn=1E6+5; 5 const ll mod=998244353; 6 const ll 阅读全文
posted @ 2019-03-18 19:01 GreenDuck 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1E6+5; 4 const double pi=3.1415926535898; 5 int n,m,limit,r[maxn*4],len; 6 struct co 阅读全文
posted @ 2019-03-18 18:47 GreenDuck 阅读(203) 评论(0) 推荐(0) 编辑
2019年3月16日
摘要: 题意 每次询问一段区间[l,r],求从最左边走到最右边(r+1)的概率(若走到l-1,则GG了),每个点上写有向右走的概率。支持单点修改。 思考 若只查询一次,那只要知道每个点在不走到l-1的情况下,向右移动一格的概率就行了,最后乘起来就是答案。 但我们忽略了一件事情,若从一个区间的某一点出发,从左 阅读全文
posted @ 2019-03-16 19:28 GreenDuck 阅读(230) 评论(0) 推荐(0) 编辑