
题解
fo0Old
This is fold from China.
展开
-
矩阵快速幂 黑科技
ll qpow(ll x,ll y){ ll res=1; for(;y;y>>=1,x=x*x%mod) if(y&1)res=res*x%mod; return res;}int n;namespace xx{const int N=10010;ll res[N],base[N],z[N],md[N];vector<int>G;void mu原创 2017-09-04 20:10:55 · 529 阅读 · 0 评论 -
分块
1.区间加, 查询单点值struct block{ static const int __=50005; static const int _b_=300; ll a[__];int n,bsz,bel[__]; ll ad[_b_]; ll operator[](int x){return a[x]+ad[bel[x]];} void build()原创 2018-02-06 21:31:16 · 374 阅读 · 0 评论 -
fold的毒瘤题
easy:做法1.可以仿照最小生成树的Kruskal做法, 将边权按照从小到大排序 对于每个询问: 按边权从小到大依次连接各个边, 同时用并查集维护特殊点的连通性, 一旦某条边加入后, 遍历所有的特殊点发现它们属于同一集合, 那么答案就是这条边的边权 复杂度: O(m⋅logm+q⋅m⋅n)O(m\cdotp logm+q\cdotp m\cdotp n)做法2.对于某个权值xx, 如果权值不超原创 2018-03-10 20:51:02 · 808 阅读 · 0 评论 -
Anxdada的询问(two stack)
很多人会很自然的想到用two pointer来维护区间乘积, 但是从区间[l,r][l,r][l,r]转移到[l+1,r][l+1,r][l+1,r]的时候, 如果a[l]a[l]a[l]在模ppp意义下的逆元不存在, 那么就无法转移two stack:用2个栈来维护区间[l,r][l,r][l,r]中数的乘积 其中一个栈S1S1S_1维护的是区间[l,k](l≤k)[l,k](l≤...原创 2018-03-17 18:09:16 · 564 阅读 · 0 评论 -
2018年成都信息工程大学第七届ACM程序设计竞赛 题解报告
Problem A(读信)签到题: 把所有字母全部转换成大写(或小写), 然后判断一下是否是回文串(正着和倒着是否完全相等)就可以了 时间复杂度:O(n)O(n)O(n)Problem B(Anxdada的询问1)签到题:for(int i=1;i<n;++i) for(int j=i+1;j<=n;++j) if(a[i]+a[j]...原创 2018-05-06 16:57:38 · 2163 阅读 · 3 评论