07 2022 档案

摘要:2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest A - Alex Origami Squares 长为h, 宽为w 如果w * 3 > h,则正方体边长为w 如果w * 3 < h,则正方体边长为max(h / 3, w / 2) #i 阅读全文
posted @ 2022-07-29 08:44 Flying_bullet 阅读(29) 评论(0) 推荐(0) 编辑
摘要:分解质因数,对于$\forall$ $x$$\in$ [1, m],来说,任意一个质因数的倍数及其本身都与题目中给定的数的最大公约数,至少有一个不是1 #include <iostream> using namespace std; const int N = 1e5 + 10; bool st[N 阅读全文
posted @ 2022-07-18 19:58 Flying_bullet 阅读(29) 评论(0) 推荐(0) 编辑
摘要:一道全排列的题,可以用dfs,也可以用stl内置的函数next_permutation ####dfs版本 #include <algorithm> #include <iostream> #include <vector> using namespace std; vector<string> c 阅读全文
posted @ 2022-07-18 17:28 Flying_bullet 阅读(18) 评论(0) 推荐(0) 编辑
摘要:需要string头文件 string a; a.resize(100); scanf("%s", &a[0]);//通过a的首地址输入 printf("%s", a.c_str()); //c_str()获取字符串首地址 阅读全文
posted @ 2022-07-15 11:01 Flying_bullet 阅读(78) 评论(0) 推荐(0) 编辑
摘要:###方法一 筛一次素数,然后遍历即可 #include <iostream> using namespace std; const int N = 1e7 + 10; bool st[N]; int p[N], cnt; void get() { st[1] = 1; for (int i = 2 阅读全文
posted @ 2022-07-14 19:51 Flying_bullet 阅读(22) 评论(0) 推荐(0) 编辑
摘要:模拟题,注意判断条件 #include <iostream> #include <map> using namespace std; string a; map<int, int> t; int maxx = 0, minn = 0; void solve() { int l = 0, r = a. 阅读全文
posted @ 2022-07-13 14:16 Flying_bullet 阅读(132) 评论(0) 推荐(0) 编辑
摘要:先跑一次最短路,然后通过动态规划找出最短路的个数 #include <algorithm> #include <cstring> #include <iostream> #include <queue> using namespace std; typedef long long ll; const 阅读全文
posted @ 2022-07-12 19:58 Flying_bullet 阅读(28) 评论(0) 推荐(0) 编辑
摘要:本质上是最短路+二分 本题要求是再求最短路的基础上限制边长,边长最长是 $dis*(1 + x / 100)$,在求出限制边长后,可以通过二分找出答案 在二分中,大于限制边长的不予考虑 #include <cstring> #include <iostream> #include <queue> u 阅读全文
posted @ 2022-07-12 11:10 Flying_bullet 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题意是给定一个数,找出$[1, n]$区间内和等于$(n - 1) * n / 4$的数,因为区间内的数的和具有单调性,且数据范围只能用$log(n)$的算法来做,考虑二分查找 我写的二分本质上是向左找数,因为计算从1到n的和,再除以二,因为是向下取整,会有精度损失,正常二分找的数的和是要比理想中的 阅读全文
posted @ 2022-07-08 15:10 Flying_bullet 阅读(19) 评论(0) 推荐(0) 编辑
摘要:###单调队列 ####概念 维护区间内单调的序列 ####滑动窗口 这道题队列维护的是数组的下标 [1 3 -1 -3 5 3 6 7],k 为 3. 下面我们来求最小值 i = 0, 队列为空,1入队 i = 1, 3大于1,3入队 i = 2, -1小于3,不满足单调递增,1,3出队, -1入 阅读全文
posted @ 2022-07-06 16:28 Flying_bullet 阅读(19) 评论(0) 推荐(0) 编辑
摘要:###扩展域并查集 扩展域并查集常用来维护多组关系的集合合并问题 比如维护两个有敌对关系的集合,就可以用扩展域并查集 ###食物链 首先我们定义一个物种a a的天敌为a + n a的猎物为a + n * 2 可以得出 a + n -> a -> a + n * 2 a + n * 2 -> a + 阅读全文
posted @ 2022-07-06 11:27 Flying_bullet 阅读(108) 评论(0) 推荐(0) 编辑
摘要:求最短路的时候一定要判断重边 cin >> c; map[i][j] = min(map[i][j], c); 阅读全文
posted @ 2022-07-04 15:01 Flying_bullet 阅读(16) 评论(0) 推荐(0) 编辑