随笔分类 - code
摘要:7-1 520表白 不用说 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e9; const int maxm = 1e5 + 5; const int inf = 21474
阅读全文
摘要:慢慢把一些要老忘记但是很有用的一些东西放这里 1、lower_bound是找第一个大于等于的数 2、upper_bound是找第一个大于的数 3、stringstream ssin(str) 为读取str中的单字,比如hello world ,就会读取hello和world while (ssin
阅读全文
摘要:7-1 自动编程 签到题 #include<bits/stdc++.h> typedef long long ll; const int maxm = 1e5 + 5; const int infmax = INT_MAX; const int infmin = INT_MIN; using nam
阅读全文
摘要:from : acwing #include <bits/stdc++.h> using namespace std; const int N = 100001; int n, m; int tree[N], a[N]; int lowbit(int x){ return x & -x; } voi
阅读全文
摘要:不是连续子串 #include<bits/stdc++.h> using namespace std; int a[1005], dp[1005]; int main(){ int n; cin >> n; for(int i = 1; i <= n; i ++ ) cin >> a[i]; int
阅读全文
摘要:一个1 * n的矩阵变成n * m的矩阵(m是列)原x下标在n * m里下标为x/m,x % m。 matrix.size()为矩阵行,matrix[0].size()为矩阵列
阅读全文
摘要:就ac了俩 A题求gcd>1,WA了好多发。。。。因为感觉没错,结果后面一看n的数据10^18,原来是没用long long。 经验:今后一定要看看数据范围。 B题,一开始没看懂题意,不知道什么时候不能叠,后来自己根据常识琢磨,应该是一层一层铺,然后模拟了下就ac了。 做完B题只剩10min,看了下
阅读全文
摘要:二进制颠倒用位运算 uint32_t reverseBits(uint32_t n) { uint32_t res = 0; for (int i = 0; i < 32; i ++ ) res = (res << 1) + (n >> i & 1);//n >> i & 1可以得到n二进制的第i位
阅读全文
摘要:emmm,就ac了3题 A题转换推下公式。 tB题模拟,在第一个与最后一个变x后,直接i下标+k,判断当前下标前一个befor与最后一个last距离是否>k,是的话在当前下标往前找*字符然后改为x,这下标更改为befor下标,一直循环判断到i>n。 C题找最长公共连续字符子串,因为数据小也可以暴力枚
阅读全文
摘要:就ac了一题。QAQ掉分了我好难过。 A题要画图推出来公式。 B不会,现在没看到好懂得题解。 C题,思路错了,给一些数,每天只能选其中一些,每个数不能被选超过k次,应该先将每天只能选一个得这个数先选上,因为他不得不选,之后在每天在选得人数大于2的情况依次选人,如果当天的人都>=k次,那就不行。
阅读全文
摘要:就ac2题。 A题直接模拟一遍过。 C题一开始一直不明白自己错哪了,因为都是2的倍数加起来,到最后一个的时候数应该不确定多大,再逆推回20就ac了。 E题没做对,原来是可以利用2和3的最小公倍数分别判定。
阅读全文
摘要:就ac了一题。。。 A题一遍过。 B题人傻了,不知道啥是逆元,google了下,之后代码思路都是对的,但是在进行乘法的时候有的的数没mod,只是在乘了整个数后mod,结果一直WA。。。。比赛后我都mod了一下就ac了 经验:对于要mod,应该在每个要乘或者加的数都mod下再运算。
阅读全文
摘要:就ac了2题。。。 A题一开始题意模模糊糊的似懂非懂,然后自己按样例推出了题意,简单题很容易ac了。还是自己的英语水平太菜了。。。。 B题根据0和1的位置关系能看出来,因为0不能在1后面, 所以有00前面绝对不能有11。 C题题意清楚,想法也对,但是找奇数偶数最低点走最长的路,其他都只走1,模拟没模
阅读全文
摘要:A题被hack,A题很简单,其实题目没看懂,直接看样例做的。 B题题意是以为懂了,但是样例一直看不懂。 经验:要两两相加能被一个m整除数组sum最少,利用他们的余数就可以设为a[x], x是余数,如果a[x] == a[m-x],sum++;如果a[x] != a[m-x],sum += abs(a
阅读全文
摘要:* 左左就右旋,右右就左旋 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e9; const int maxm = 1e5 + 5; const int inf = 21474
阅读全文
摘要:前中输出后 #include<iostream> using namespace std; int pre[] = {1, 2, 3, 4, 5, 6}; int mid[] = {3, 2, 4, 1, 6, 5}; void post(int root, int start, int end)
阅读全文
摘要:无向连通图,输出每个顶点的度并判断Eulerian、Semi-Eulerian和Non-Eulerian这3种情况,我们直接记录每个点所连接的点,这样直接得到它的度,然后利用深度优先和visit数组来判断图是否连通,不连通直接是Non-Eulerian情况,连通的话再判断顶点的度是否都是偶数,是的话
阅读全文
摘要:7-1 压岁钱 不用说 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e9; const int maxm = 1e5 + 5; const ll inf = 21474836
阅读全文
摘要:proper 正确 合适 vertex(vertices)顶点 respectively 个别 分别 indices 指标 索引 shipping 运输 incompatible 不相容 oxidizing 氧化 flammable liquid 易燃液体 combinatorial 组合的 opt
阅读全文
摘要:并查集就是给你一个图,里面有很多点,并就是把点合并一个集合,把a点搞为b点父亲;查就是查点在哪个集合,查a点的父亲祖先是谁。 初始化点的父亲是自己 int Find(int x){ if(father[x] != x)//如果父亲不是自己,那就递归找父亲 father[x] = Find(fathe
阅读全文

浙公网安备 33010602011771号