传送门 思路: 直接上点分治+容斥计算每个因数对应的贡献即可. 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&(ob=(ib=buf)+fread(buf,1,rlen,stdin)); return i…
题意简述: 思路: 直接考虑把人和物品都看成二维平面上面的a,ba,ba,b两类点,然后一个aaa和bbb匹配的条件是xa≤xb&&ya≤ybx_a\le x_b\&\&y_a\le y_bxa​≤xb​&&ya​≤yb​,要求最后选出的bbb的横坐标之和最小. 这样的话,我们把a,ba,ba,b两类点分别按照xxx坐标排序,然后用类似归并排序的方法贪心选就行了. 贪心策略:从所有能够跟当前的bbb匹配的aaa类点中选一个yyy坐标最大的出来. 用setse…
这次意外考得不错…但是并没有太多厉害的地方,因为我只是打满了暴力[还没去推T3] 第一题折腾了一个小时,看了看时间先去写第二题了.第二题尝试了半天还是只写了三十分的暴力,然后看到第三题是期望,本能排斥,跑回去写第一题了. 手画第一题的样例2,指着图片一点一点调试发现思路中间就错了,然后开了份新代码重写去了,好在原来那份里大部分东西都用得上.按数据点骗分,推出了y=2的性质,最后居然多拿了25分. 只剩下二十分钟了,第三题直奔数据范围.把k=2的分手推出来,然后非常没有梦想地选择搜索过小于8的数据…
传送门 题意简述:给你一张无向图,问你满足存在从a−>b−>ca->b->ca−>b−>c且不经过重复节点的路径的有序点对(a,b,c)(a,b,c)(a,b,c)的数量. 思路: 对每一个连通块建一棵圆方树,然后可以按照圆点和方点做不同的树形dpdpdp. 圆点:找存在于两棵不同子树的点对数 方点:找存在于三颗不同子树的点对数. 代码: #include<bits/stdc++.h> #define ri register int using namesp…
传送门 题意:定义一个无穷项的多项式f(x)f(x)f(x),初始各项系数都为0,现在有几种操作 将xLx^LxL到xRx^RxR这些项的系数乘上某个定值v 将xLx^LxL到xRx^RxR这些项的系数加上某个定值v 将xLx^LxL到xRx^RxR这些项乘上x变量 将某个定值v代入多项式F(x),并输出代入后多项式的值,之后多项式还原为代入前的状况 其中第四种操作不会出现超过10次. N≤105,0≤L≤R≤105,0≤v≤109N\le10^5,0\le L\le R \le10^5,0 \…
传送门 题意简述: 给一个n∗mn*mn∗m的有障碍的网格图,问你从左上角走到左下角并覆盖所有可行格子的路径条数. 思路: 路径不是很好算. 将图改造一下,在最前面添两列,第一列全部能通过,第二列只有最上面的和最下面的可以通过,就转化成了求回路方案数. 代码: #include<bits/stdc++.h> #define ri register int #define change (f[cur].insert(stat,sum)) using namespace std; typedef…
传送门 题意简述:支持在把某个数插入到某版本的第k个位置,删除某版本第k个数,询问第k个数. 思路:用可持久化treaptreaptreap维护区间第kkk个位置的数是啥就可以了. 代码…
传送门 题意简述:给一棵带权树,问在上面随机选两个点距离是4的倍数的概率. 思路: 由于总方案数为定值n2n^2n2,所以只用求总方案数. 这个跟聪聪可可差不多,可以用类似树形dpdpdp的方法边点分治边更新答案. 代码…
传送门 生成函数基础题. 题意简述:求由1,3,5,7,9这5个数字组成的n位数个数,要求其中3和7出现的次数都要是偶数. 考虑对于每个数字构造生成函数. 对于1,5,9:∑nxnn!=ex\sum_n\frac{x^n}{n!}=e^x∑n​n!xn​=ex 对于3,7:∑nx2n(2n)!=ex+e−x2\sum_n\frac{x^{2n}}{(2n)!}=\frac{e^x+e^{-x}}2∑n​(2n)!x2n​=2ex+e−x​ 然后乘起来展开:f(x)=e5x+2e3x+ex4f(x…
传送门 带修莫队板题. 直接按照经典写法做就行了. 代码…