自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 日常训练训练

思路:一条道走到黑,因为任意一步都能进行平移,拼成一条道走到黑的情况。若不会走到地雷,则有24种RLUD全排列的情况,枚举每种情况即可。stl种的next_permutation对数组进行全排列,数组初始设为0,1,2,3。可向四个方向移动,不能走到有地雷的位置,问有无可能,若有可能则输出任意一种可能的情况。

2022-09-08 21:04:51 159 1

原创 Educational Codeforces Round 124 (Rated for Div. 2)

先观察符合条件的点,即上下左右有空白的点,曼哈顿距离可以直接计算出来,再将符合条件的点加入队列。但是内部被点层层包裹的点就不能再暴力一圈一圈判断了,通过加入队列的点去判断,通过对队列的点a通过上下左右四个方向的进行bfs搜索,被搜到点b的答案就是a答案,因为b能保证理a是最近的,而a的答案一定最小,所以得证。

2022-09-06 22:01:13 136

原创 牛客多校6

2022-08-10 09:44:45 143

原创 2022牛客多校第二场

2022牛客多校

2022-07-26 09:57:51 270

原创 动态规划问题

背包问题对于第i个物品,有两种考虑一,不选,则f[i][j]=f[i−1][j]f[i][j] = f[i - 1][j]f[i][j]=f[i−1][j]二,选,且在j>=w[i]j >= w[i]j>=w[i]时,f[i][[j]+=f[i−1][j−w[i]]f[i][[j] += f[i - 1][j - w[i]]f[i][[j]+=f[i−1][j−w[i]]在选的情况下,f[i][j]f[i][j]f[i][j]已经被看作在包含第i个物品的情况,所以j一定是大于w[

2022-07-24 16:46:12 67

原创 2022杭电多校(第一场)

补题

2022-07-24 11:30:49 275

原创 Codeforces Round #775 (Div. 2, based on Moscow Open Olympiad in Informatics)

cf训练第二场

2022-07-22 09:23:31 73

原创 离散数学复习

第六章 代数单射函数:满射:B中元素都有至少一个相对的A的元素双射:满足单射和满射,真正意义上的一对一群中只有幺元是等幂的。

2022-07-20 14:54:52 3971

原创 弹子游戏linux实训

2022-07-20 14:53:15 229

原创 Codeforces Round #777 (Div. 2)

codeforces

2022-07-19 20:40:02 129

原创 操作系统复习

操作系统第二章 进程的描述和控制2.1 前趋图和程序执行2.2 进程的描述2.3 进程控制2.4 进程同步线程的基本概念第三章 处理机调度与死锁3.1处理机调度层次和调度算法的目标第六章 输入输出系统第二章 进程的描述和控制2.1 前趋图和程序执行前趋图:为了更好的描述程序的顺序和并发执行情况程序顺序执行的特征:1顺序性 2封闭性 3可再现性(只要初始条件一样,程序重复执行,结果一样)并发执行的特征:1间断性 2失去封闭性 3不可再现性(即使初始条件相同,结果却可能不同)2.2 进程的描述进程

2022-05-18 19:45:48 956

原创 区间操作—分块

分块数字序列数字序列为1 12 123 1234 12345…1234567891011…求第pos位置上的数字#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int N = 2e5 + 10;long long a[N], sum[N];

2022-04-10 08:37:56 330

原创 字符串知识点

换行符\n 不是/n错的离谱了cin :以空格,换行符,制表符(tab键 ‘\t’),因此字符串只能保存一个单词,空格,换行符,制表符还放在输入流中getline:读取一行,直到遇见换行符,丢弃换行符get:读取一行,直到遇见换行符,保留到输入序列中while(getline(cin, str)) cout << str;//15 _//I love GPLT int n; char ch; cin >> n >> ch;

2022-03-17 10:00:42 536

原创 算法学习——小技巧和坑

离散化1.保序离散化2.不要求保序

2022-03-12 11:35:24 169

原创 树的重构pta

L2-011 玩转二叉树 (中序+前序)给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。#include <iostream>#

2022-03-05 15:55:44 509

原创 数据结构——STL容器

mapunordered_mapunordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序,但仍然不会重复。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。......

2022-02-23 20:24:12 340

原创 区间问题——一次解决

前缀和一维:降低区间查询问题复杂度的一种常见预处理方法,对数组a进行前缀和初始化需要O(n)。对于数组sum[i],其意义为数组a的前i个数字之和。使用前缀和可以在O(1)O(1)O(1)时间内求出区间和,但前缀和不支持单点修改和区间修改(差分来咯)坐标从0开始。 for(int i = 1; i <= n; i ++) { cin >> a[i]; sum[i] = sum[i - 1] + a[i]; } l~r的区间和 cout << sum[r

2022-02-08 22:42:11 649

原创 2022牛客寒假算法基础集训营4(补题)

蓝慧星大部分时间都花在了这题上,一开始只是暴力的枚举,开个数组,先把红色判断完整,某段时间为红是-1,再判断蓝色,如果为蓝色就不标记,否则标记上。时间复杂度为O(nm)O(nm)O(nm)肯定会超时,数据n=1e5,至少要O(nlogn)O(nlogn)O(nlogn)或者线性复杂度O(n)O(n)O(n)区间问题一般用二分,前缀和,差分之类的。因为无序,所以用到了差分及前缀和。#include <iostream>#include <cstring>#include &

2022-02-08 22:41:46 329

原创 日常题目练习

矩阵消除游戏(位运算+贪心)一开始的想法是在每个回合中,统计行和列的最大值,比较取出,然后所在行或列为0,再进行下一轮回合,直至结束。错误原因:该方法不满足无后效性,就好像装箱问题:给你一个体积为V的箱子,再给你若干件体积不同的物品,希望选一些物品尽量装满,你会上来就选择最大的吗?我们会很容易的想到,也许拼两个小的比装一个大的更好。对于做个题其实也一样,你选了最大的,后面选的就少了……例子:3 3 2100 100 12 4 24 2 2(难受)我们知道如果只是行的选择或者只是列的选择就可

2022-02-07 16:59:28 1576

原创 数据结构——并查集

并查集路径压缩优化(时间复杂度nlognnlognnlogn):int find(int x){ if (p[x] != x) p[x] = find(p[x]);//路径压缩优化 return p[x];}int main(){//... int pa = find(a), pb = find(b); if (*op == 'M') p[pa] = pb; else { if (pa == pb)

2022-02-06 22:48:26 205

原创 2022牛客寒假算法基础集训营3

E——智乃的数字积木(easy version)#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 1e5 + 10, mod = 1e9 + 7;int a[N];bool st[N];bool cmp(char a,char b){ return a &gt

2022-01-30 17:20:11 1906

原创 2022牛客寒假算法基础集训营2补题

2022牛客寒假算法基础集训营2F、小沙的算数(二进制,快速幂)当时错误思路:先计算某个数的除最高位的1外1的个数,然后用组合来找规律。。。。正确思路:计算出m二进制形式的1的所有个数,在n个位置上放置时。先找最高位的1能放n个位置上。再找次高位的1能放的位置,因为1与1在m的二进制形式中的位置不同,所有放的位置相互独立,所以次高位也有n种放法。。。最后发现结果为n^cnt种方法。做题目时,顾全大局,不能死扣一个点,有时退一步再思考会发现海阔天空!还有一个点,在快速幂计算时,需要注意n的范围为1

2022-01-28 19:29:06 174

原创 学习——st表

st表思想:倍增二维数组f的含义int f[MAXN][21]; // 第二维的大小根据数据范围决定,不小于![请添加图片描述](https://img-blog.csdnimg.cn/a3d4a572f2754944b6fd4189aedf1bba.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2b5a6J5qiK,size_20,color_FFFFFF,t_70,g_se,x_16)

2022-01-27 22:05:56 345

原创 学习——图论

Dijkstra算法求最短路 朴素版时间复杂度O(n^2)思路:将所有点分为两个集合,一个为以确定的点的集合,另一个为还未确定的集合int g[N][N];//邻接矩阵存图int dist[N];//点到集合的最短距离bool st[N];//最短路集合int dijkstra(){ memset(dist, 0x3f, sizeof dist); dist[1] = 0; for (int i = 0; i < n - 1; i ++ ) {

2022-01-27 22:05:26 82

原创 学习——数论

快速幂将指数b拆分,用二进制表示,在第i位为1,就代表b由a的2的i次方表示long long qsm(long long a, long long b){ long long res = 1; while(b) { if(b&1) res = res * a % mod; a = a * a % mod;////更新a,a依次为a^{2^0},a^{2^1},a^{2^2},....,a^{2^logb} b >&

2022-01-25 16:57:54 177

原创 2021-11-08

用扩欧求逆元的结果处理https://www.luogu.com.cn/problem/solution/P1082

2021-11-08 20:01:44 72

原创 2021-05-19

杭电oj P1999 不可摸数题目#include <iostream>#include <math.h>using namespace std;int a[1000000];int main(){ int t, n; cin >> t; for(int i = 1; i <= 1000000; i++) { for(int j = i * 2; j <= 1000000; j+=i)

2021-05-19 21:42:21 56

原创 2021-05-18

杭电oj P2097 sky数题目#include <iostream>using namespace std;int main(){ int n; cin >> n; while(n) { int d = n, sum1 = 0, sum2 = 0, sum3 = 0; while(d) { sum1 += d % 10; d /= 10

2021-05-18 17:43:39 80

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除