随笔分类 - OI
摘要:题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路上面做法不讲,我们讲一种比较新奇的方法假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛怎么做呢,我们发现,可以用树的...
阅读全文
摘要:相信大家都猜到题意了,简单说一下圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,两株花不能种在相邻的位置(1号和N号也算相邻位置)一共有 M 株花,现在小D也想知道应该如何摆这 N 株花才能使美观度最大这道题显然可以用堆,每次将堆顶...
阅读全文
摘要:相信大家都猜到题意了,简单说一下圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,两株花不能种在相邻的位置(1号和N号也算相邻位置)一共有 M 株花,现在小D也想知道应该如何摆这 N 株花才能使美观度最大这道题显然可以用堆,每次将堆顶...
阅读全文
摘要:题意:给你一个序列A,要求你求出A长度最大的子序列A'使得任意A'[i]+A'[j]都为素数有一点是显然的,如果没有1,或者只有一个1,那么序列最长为2(一奇一偶),这种情况n^2枚举就好了如果有多于一个1,那么我们可以选择所有的1,和最多一个偶数注意会有长度为0和1...
阅读全文
摘要:题意:给你一个序列A,要求你求出A长度最大的子序列A'使得任意A'[i]+A'[j]都为素数有一点是显然的,如果没有1,或者只有一个1,那么序列最长为2(一奇一偶),这种情况n^2枚举就好了如果有多于一个1,那么我们可以选择所有的1,和最多一个偶数注意会有长度为0和1...
阅读全文
摘要:这道题十分神,挖坑待填DJL为了避免成为一只咸鱼,来找czgj学习Fibonacci数列。通过czgj的谆谆教导,DJL明白了Fibonacci数列是这样定义的:F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2)(n>2)Czgj深谙熟能生巧的道理,于是...
阅读全文
摘要:这道题十分神,挖坑待填DJL为了避免成为一只咸鱼,来找czgj学习Fibonacci数列。通过czgj的谆谆教导,DJL明白了Fibonacci数列是这样定义的:F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2)(n>2)Czgj深谙熟能生巧的道理,于是...
阅读全文
摘要:srwudi的跳楼机可以采用以下四种方式移动:1、向上移动x层;2、向上移动y层;3、向上移动z层;4、回到第一层。一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不...
阅读全文
摘要:srwudi的跳楼机可以采用以下四种方式移动:1、向上移动x层;2、向上移动y层;3、向上移动z层;4、回到第一层。一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不...
阅读全文
摘要:给你2个没有重复元素的序列A,B,求LCS我们将映射A[i]->i用在B上,对B求LIS即可,若A中没有B[i]直接跳过#include#include#include#includeusing namespace std;map s;int f[300010];in...
阅读全文
摘要:给你2个没有重复元素的序列A,B,求LCS我们将映射A[i]->i用在B上,对B求LIS即可,若A中没有B[i]直接跳过#include#include#include#includeusing namespace std;map s;int f[300010];in...
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)...
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)...
阅读全文
摘要:给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k=S的j,若belong[i]=belong[j]则令j=next[j],统计答案即可#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#incl...
阅读全文
摘要:给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k=S的j,若belong[i]=belong[j]则令j=next[j],统计答案即可#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#incl...
阅读全文
摘要:给你n求gcd(i,j)=i xor j的对数(i,jint main(){ int n,A=0; scanf("%d",&n); for(int i=1;i<=n;++i) for(int j=i<<1;j<=n;j+=i) if((i^j)==j-i) ++...
阅读全文
摘要:给你n求gcd(i,j)=i xor j的对数(i,jint main(){ int n,A=0; scanf("%d",&n); for(int i=1;i<=n;++i) for(int j=i<<1;j<=n;j+=i) if((i^j)==j-i) ++...
阅读全文
摘要:题意:给出n个没有区别的物品放入k个没有区别的盒子,求方案数这个题目可谓计数dp的经典我们令f[i][j][k]表示现在所有数和为i,有j个,最后一个为k的方案数那么显然,f[i][j][k]=∑f[i-p][j-1][p](1int n,k,f[5010][5010...
阅读全文
摘要:题意:给出n个没有区别的物品放入k个没有区别的盒子,求方案数这个题目可谓计数dp的经典我们令f[i][j][k]表示现在所有数和为i,有j个,最后一个为k的方案数那么显然,f[i][j][k]=∑f[i-p][j-1][p](1int n,k,f[5010][5010...
阅读全文
摘要:如果没有这个+x的话应该都能想到是按位拆开每一位处理吧现在考虑这个+x如何处理一个数v加上x,如果有(v+x)%2^i>2^(i-1)的话,那么就必然第i位为1所以我们考虑,对于每一个询问的y,若有y&(1#include#include#define f(k) (1...
阅读全文

浙公网安备 33010602011771号