关闭

[BZOJ 4542][Hnoi2016]大数:莫队

点击这里查看原题首先可以考虑,除了2和5之外,10k10^{k}不是任何素数的倍数,因此可以先解决p不为2或5的情况。对从每个位置开始的到末尾结束的子串求一下模p的值,再离散化一下(因为题目没有给出p的范围),这样的话如果两个位置i,j模p的值相同,那么S[i…j-1]就是符合条件的一个子串。莫队处理即可 再来考虑下2和5的情况,可以发现,如果某个数是2或5的倍数,那么它的个位一定也是2或5的倍数...
阅读(60) 评论(0)

[BZOJ 1089][SCOI2003]严格n元树:DP+高精度

点击这里查看原题DP,gig_{i}表示高度小于i的树的个数,gi=∑i−1j=0f(j)g_{i}=\sum_{j=0}^{i-1}f(j), fif_{i}表示高度为i的树的个数。 于是可得fi=∑j=1n(nj)∗fji−1∗gn−ji−1f_{i}=\sum_{j=1}^{n} \binom{n}{j}*f_{i-1}^{j}*g_{i-1}^{n-j}此题需要用到高精度#include...
阅读(54) 评论(0)

[BZOJ 4454]C Language Practice:GCD

点击这里查看原题此题太过丧心病狂,建议看这里 另外这题要学会卡时,一定要加inline才勉强在20.7s内跑过#include #define ll long long #define inf 99999999 using namespace std; const int M=1005,N=1e6+5; int n,m,a[M<<1],b[M<<1],cnt,pr[N...
阅读(51) 评论(0)

[BZOJ 3876][Ahoi2014]支线剧情:上下界网络流

点击这里查看原题本题是有源汇上下界最小费用流,具体建图如下: 从每个点u向它能到达的点v连容量inf费用为w的边,从s’向v连容量1费用w的边,从u向t’连容量1费用0的边 从每个非根的点u向t连容量inf费用0的边(因为随时可以跳出这段剧情) 从t向s连容量inf费用0的边 #include #define ll long long #define inf 99999...
阅读(54) 评论(0)

[BZOJ 2502]清理雪道:上下界网络流

点击这里查看原题点击这里查看上下界网络流教程这个题很明显就是: 从ss到所有点连下界00上界infinf的边(因为可以从任何点出发) 从所有出度为零的点到tt连下界00上界infinf的边(最优方案一定是到达该点才结束) 所有点向他能到达的点连下界11上界infinf的边(每条边至少走一次) 那么实际建图就是这样的:对于每个点计算它的入度减出度的差d[i]d[i],若d[i]>0d[i]>0,则从s...
阅读(46) 评论(0)

[BZOJ 1822][JSOI2010]Frozen Nova 冷冻波:最大流

点击这里查看原题首先暴力判断哪些巫妖可以打到哪些小精灵,先判距离是否小于半径,然后判断树是否阻挡。判断树的方法是先计算出巫妖和小精灵连线的一般式ax+by+c=0,然后据此计算树的圆心到两点连线的距离dis=|ax+by+x|a2+b2√dis=\frac{\left | ax+by+x \right |}{\sqrt{a^{2}+b^{2}}},是否小于树的半径。 接下来就是二分时间time,源...
阅读(35) 评论(0)

[BZOJ 3261]最大异或和:可持久化字典树

点击这里查看原题插入操作只会插入到末尾,因此可以用可持久化字典树,rt[i]表示维护的是前i-1个数的异或值,同时维护所有数的异或值tot,因此要得到a[i]~a[n]的异或值就是用rt[i]的查询值异或tot。 那么对于询问而言,我们在字典树上贪心即可/* User:Small Language:C++ Problem No.:3261 */ #include #d...
阅读(60) 评论(0)

[BZOJ 1221][HNOI2001] 软件开发:费用流

点击这里查看原题建议看这里http://www.acyume.com/archives/1069/* User:Small Language:C++ Problem No.:1221 */ #include #define ll long long #define inf 999999999 using namespace std; const int N=2005,M...
阅读(50) 评论(0)

[BZOJ 3112][Zjoi2013]防守战线:单纯形

点击这里查看原题 (那个链接里没有题面,题面在这里)单纯形裸题,因为题目中是求最大值,因此需要使用对偶原理/* User:Small Language:C++ Problem No.:3112 */ #include #define ll long long #define inf 999999999 using namespace std; const double...
阅读(57) 评论(0)

[BZOJ 2657][Zjoi2012]旅游(journey):树的直径

点击这里查看原题这道题应该把城市看成点,相邻的城市之间连边,这样会形成一棵树,答案即为树的直径。/* User:Small Language:C++ Problem No.:2657 */ #include #define ll long long #define inf 999999999 using namespace std; const int M=2e5+5,...
阅读(44) 评论(0)

[BZOJ 1070][SCOI2007]修车:费用流

点击这里查看原题费用流经典好题。将每个维修人员拆成n个点,第i个维修人员的第j个点与第k辆车连边表示k是i修的倒数第j辆车,因此费用为v[k][i]*j。 将源点与所有车连容量为1费用为0的边,车与维修人员拆成的所有点连容量为1费用为v[k][i]*j的边,维修人员拆成的所有点与汇点连容量为1费用为0的边 (这道题我分别WA、RE了一次,WA是没注意到读入的顺序是m,n而不是n,m;RE是因为对...
阅读(52) 评论(0)

[BZOJ 2656][Zjoi2012]数列(sequence):高精度+递推

点击这里查看原题读入n,转为2进制,每次记录(x,x+1)两个值,如果当前位为1,转化为(2x+1,2x+2),否则转化为(2x,2x+1)(用二进制来表示x就是n的当前位为1,则在x后面添1,否则添0),即可得到ana_{n}的值 高精度细节很多,要小心/* User:Small Language:C++ Problem No.:2656 */ #include #...
阅读(39) 评论(0)

[BZOJ 3811]玛里苟斯:线性基(详细证明)

点击这里查看原题极其复杂的题目……看了一早上题解才看懂 分类讨论 k=1时,考虑每一位对答案的影响,若至少存在一个数第j位为1,那么异或和中第j位为1的概率为0.5,否则为零。因为取到奇数个第j位为1的数的概率和取到偶数个的概率相等。 k=2时,把异或和转化为2进制,那么每个异或和的平方为∑i∑jbibj∗2i+j\sum _{i} \sum _{j}b_{i}b_{j}*2^{i+j},那么...
阅读(63) 评论(0)

[BZOJ 2115][Wc2011] Xor:线性基

点击这里查看原题结论:答案一定是任意一条1~n的路径异或某些环得到的值 接下来是证明为什么每个环都可以取到:如果要取某个环,可以从1出发到这个环上,走一圈后原路回到1,这样就得到了这个环的异或值。 因此将所有的环加入线性基中求基,然后求一条从1到n的路径,贪心的从高位到低位与基异或/* User:Small Language:C++ Problem No.:2115 */ #include<bi...
阅读(82) 评论(0)

[HDU 3949]XOR:线性基

点击这里查看原题线性基教程https://blog.sengxian.com/algorithms/linear-basis 本题要求第k小的异或和,那么可以将k转为2进制数,对于第i位,如果为1,那么答案异或上g[i]。注意的一点是如果基的元素数小于n,那么存在异或和为0的方案,因此需要将k减1/* User:Small Language:C++ Problem No.:3949 */ #inc...
阅读(57) 评论(0)

[BZOJ 3524][Poi2014]Couriers:可持久化线段树

点击这里查看原题主席树,建立权值线段树进行查询/* User:Small Language:C++ Problem No.:3524 */ #include #define ll long long using namespace std; const int M=5e5+5; int n,q,cnt,rt[M]; struct no{ int ls,rs,su...
阅读(68) 评论(0)

[BZOJ 3302][Shoi2005]树的双中心:TreeDP

点击这里查看原题首先可以想到n^2做法,枚举每一条边,切断这条边变成两棵树,对两棵树各O(n)求一遍重心,加和即为答案 但是题目中有一个重要条件,高度h不超过100,因此可以O(h)求重心,即每次向权值和最大的儿子转移(维护时需要维护最大和次大)。 总复杂度O(nh)/* User:Small Language:C++ Problem No.:3302 */ #include<bits/stdc...
阅读(54) 评论(0)

[BZOJ 1013][JSOI2008]球形空间产生器sphere:高斯消元

点击这里查看原题设球心坐标为(x1,x2,x3,…,xn),某个点的坐标为(y1,y2,y3,…,yn),点到球心的距离为L,那么 L2=(y12−2∗x1∗y1+x12)+(y22−2∗x2∗y2+x22)+(y32−2∗x3∗y3+x32)+...+(yn2−2∗xn∗yn+xn2)L^{2}=({y_{1}}^{2}-2*x_{1}*y_{1}+{x_{1}}^{2})+({y_{2}}^{...
阅读(65) 评论(0)

[BZOJ 1053][HAOI2007]反素数ant:搜索

点击这里查看原题实际上是求n以内因数最多的数。初看数据范围会以为是数论题,实际上可以贪心,素数的次数相同时小素数比大素数更优。预处理出前若干个素数,发现前10个素数之积已超过2e9,因此可以搜索。/* User:Small Language:C++ Problem No.:1053 */ #include #define ll long long #define inf...
阅读(41) 评论(0)

[BZOJ 3674]可持久化并查集加强版:可持久化并查集

点击这里查看原题按秩合并,即深度小的根的fa指向深度大的根;如果深度相同,那么随便合并,之后深度+1/* User:Small Language:C++ Problem No.:3674 */ #include #define ll long long #define inf 999999999 using namespace std; const int M=2e5+...
阅读(46) 评论(0)
156条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:15331次
    • 积分:1626
    • 等级:
    • 排名:千里之外
    • 原创:155篇
    • 转载:1篇
    • 译文:0篇
    • 评论:2条
    联系方式
    QQ:573036783
    Email:shiyiyueliuri@gmail.com
    可以聊OI、文化课也可以闲聊
    欢迎联络
    My friends
    最新评论