随笔分类 - 算法竞赛进阶指南
摘要:245. 你能回答这些问题吗 原题链接 查询区间最大连续和,因此除了区间端点以外,维护四个性质: 区间最大连续子段和:tsum 区间和:sum 靠左:lsum 靠右:rsum u.sum = l.sum+r.sum; u.lsum = max(l.lsum,l.sum+r.lsum); u.rsum
阅读全文
摘要:1.前缀和 原题链接 这里的数据不需要两个数组,开两个就ME了,从左往右,从上往下直接滚动s数组就行 #include<iostream> #include<cstring> using namespace std; const int N=5050; int s[N][N]; int main()
阅读全文
摘要:分形之城 原题链接 关于哪个对称,坐标两个一一对应就可以,x对应x,y对应y。 对称轴写错了QAQ,上下两个都是关于x轴做对称变换,关于y轴变号 #include<iostream> #include<cmath> using namespace std; typedef long long LL;
阅读全文
摘要:约数之和 原题链接 #include<iostream> using namespace std; const int mod=9901; int power(int a,int b) { int res=1%mod; while(b) { if(b&1) res=res*a%mod; a=a*a%
阅读全文
摘要:3.1费解的开关 原题链接 #include<iostream> #include<cstring> using namespace std; const int INF=1e6+10; char g[10][10]; void turn(int x,int y) { int dx[5]={0,-1
阅读全文
摘要:2.1递归实现指数型枚举 原题链接 从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 //递归写法一:vector存 #include<iostream> #include<vector> using namespace std; vector<int>chosen; int
阅读全文
摘要:1.1 二进制中一的个数 原题链接 #include <iostream> #define lowbit(i)((i)&(-i)) using namespace std; int main() { int n; cin>>n; while(n--) { int res=0,m; cin>>m; w
阅读全文