摘要:
此题非常新颖,有一个专门的算法,所以如果没有了解过,那么就只能写暴力卡了这道题后面的几步都很简单,一个扩展gcd求逆元,一个快速幂,所以关键就是求r,而这需要对N=pq进行分解本来这个问题在是一个NP问题,不存在多项式算法(这里的多项式指的是lgN形式的式子,因为N通... 阅读全文
摘要:
此题非常新颖,有一个专门的算法,所以如果没有了解过,那么就只能写暴力卡了这道题后面的几步都很简单,一个扩展gcd求逆元,一个快速幂,所以关键就是求r,而这需要对N=pq进行分解本来这个问题在是一个NP问题,不存在多项式算法(这里的多项式指的是lgN形式的式子,因为N通... 阅读全文
摘要:
这道题在梦里就能切了,显然每一位都可以拆开,那么一次操作相当于将一个1左移或者右移,那么全部都移到一侧肯定最佳#include#define UL long longint n,v[32]={0},c[32];UL t=0;int main(){ scanf("%d"... 阅读全文
摘要:
这道题在梦里就能切了,显然每一位都可以拆开,那么一次操作相当于将一个1左移或者右移,那么全部都移到一侧肯定最佳#include#define UL long longint n,v[32]={0},c[32];UL t=0;int main(){ scanf("%d"... 阅读全文
摘要:
我倒是觉得上面那一问难一点呢。。。。下面一个SAM就没掉了,上面还要加上倍增和马拉车size为right集合大小,mx为最大长度,跑出parent树,OK搞定#include#include#include#define N 2000010using namespac... 阅读全文
摘要:
我倒是觉得上面那一问难一点呢。。。。下面一个SAM就没掉了,上面还要加上倍增和马拉车size为right集合大小,mx为最大长度,跑出parent树,OK搞定#include#include#include#define N 2000010using namespac... 阅读全文
摘要:
不要被标题迷惑了,这是个图论题目。我们发现,若Ai,j=1那么显然Xi,j=1,所以y[i]!=y[j]这时候就变成了一个类似二分图的图,若Ai,j=1我们将节点i,j连一条边表示i和j不能相等我们先对每个节点i拆点成i和i+n,跑一次2sat,若i和i+n可以互达,... 阅读全文
摘要:
不要被标题迷惑了,这是个图论题目。我们发现,若Ai,j=1那么显然Xi,j=1,所以y[i]!=y[j]这时候就变成了一个类似二分图的图,若Ai,j=1我们将节点i,j连一条边表示i和j不能相等我们先对每个节点i拆点成i和i+n,跑一次2sat,若i和i+n可以互达,... 阅读全文
摘要:
显然,如果令w[i]=s[i]-k,那么显然s[i]|w[j]就是s[j]%s[i]=k的必要条件,那么我们倒序枚举每个开头l,枚举w[l]的每个因数看看他在s[l+1]~s[n]中有没有出现,求出一个位置最靠近l的r,那么贡献就是r-l#include#includ... 阅读全文
摘要:
显然,如果令w[i]=s[i]-k,那么显然s[i]|w[j]就是s[j]%s[i]=k的必要条件,那么我们倒序枚举每个开头l,枚举w[l]的每个因数看看他在s[l+1]~s[n]中有没有出现,求出一个位置最靠近l的r,那么贡献就是r-l#include#includ... 阅读全文