摘要: /* 有关二进制的基本操作分为两类: 1:二进制中 1 的个数; 2:二进制中的lowbit操作;(即二进制数中最后一位 1 的位置) */ //二进制输出:(以10为例) int n; cin>>n; for(int k = log2(n);k >= 0; k--) cout<<(n >> k & 阅读全文
posted @ 2022-07-30 08:17 硬核小马 阅读(73) 评论(2) 推荐(0) 编辑
摘要: /* 双指针算法可以解决像最长不重复子序列一样的问题 思路:先暴力想思路判断check()的条件,再将n^2利用模板优化为n的双指针算法; 总思路模板: for(int i = 1,j = 1;i < n;i++) { while(j < i && check()) { j++; s[a[i]]-- 阅读全文
posted @ 2022-07-29 02:37 硬核小马 阅读(19) 评论(0) 推荐(0) 编辑
摘要: //前缀和算法( 一维 ) #include<bits/stdc++.h> using namespace std; const int N = 10010; int a[N]; int s[N]; int main() { ios::sync_with_stdio(false); int n; c 阅读全文
posted @ 2022-07-28 18:56 硬核小马 阅读(18) 评论(0) 推荐(0) 编辑
摘要: //高精度加法模板 #include<bits/stdc++.h> using namespace std; vector<int>add(vector<int> &A,vector<int>&B) { vector<int>C; int t = 0;//进位; for(int i = 0;i < 阅读全文
posted @ 2022-07-28 11:55 硬核小马 阅读(17) 评论(0) 推荐(0) 编辑