自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (3)
  • 收藏
  • 关注

原创 数据结构——树(搬运知识点以及一些简单的解释)

1、树是n (n≥0) 个结点的有限集, 如果n=0,称为空树;如果n>0(1) 有且仅有一个称为根的结点root(2) n>1时,其余结点可分为m个互不相交的有限集T1 … Tn,其中每一个集合又是一棵树,称为根的子树2、度与节点¯(1)结点的度:结点拥有的子树的个数。¯(2)树的度:树内各结点的度的最大值。¯(3)叶结点:度为0的结点。¯(4)分支结点:度不为0的...

2022-05-27 11:59:06 231

原创 电分第三章

一些知识点

2022-03-30 11:08:23 318

原创 最佳编码

#include<queue>#include<xstring>#include<iostream>#include<cstring>#include<stdio.h>using namespace std;int n, m, ans;int num[30];string str;int bfs() { int sum = 0; priority_queue <int, vector<int>,.

2022-02-28 19:40:58 161

原创 救救dingba (和天使差不多)

先摆错误代码#include<iostream>#include<queue>using namespace std;int n, m,ans;char map[201][201];int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};struct state { int x; int y; int ti; friend bool operator<(state s1,state s2) { ret

2022-02-28 16:50:20 295

原创 s-nim(一道很麻烦的题)

首先会输入一个n 代表有n种抽牌方式,紧接着n个数字输入;然后是m表示有m组数据需要判断在这n种抽牌方式下第一个抽牌的人是输或是赢 最后输出m个L/W(这里不太会处理,直接用数组存了)最后输入0表示输入结束需要注意的就是需要将n种抽牌方式进行从小到大的排序,不然sg函数中的break要改为continue,还有就是sg函数的写法需要熟练#include<iostream>#include<cstring>#include<algorithm>u

2022-02-26 21:13:34 238

原创 Public Sale (输出获胜方式)

Problem Description拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。由于Lele字典序比Yueyue靠前,所以每次都是由Lele先开始加价,请问,第一次加价的时候,Lele要出多少才能保证自己买得到这块地呢?Input本题目包含多组测试,请处理到文件结束(EOF)。每组测试占一行。每组测试包含两个整数M和N(含义见题目描述,0<N,M<1100)

2022-02-26 20:17:55 103

原创 Being a Good Boy in Spring Festival(nim博弈的取胜方式数)一些超详细的推导

m堆牌,每次只能选择一堆牌抽取任意张(所以sg(n)=n)。用s储存所有sg函数的异或值。根据题意可以知道是如果选择a【i】(第i堆,牌数为a【i】)最多可以抽a[i]张(废话),怎么样可以取胜呢——令抽取了x张牌后的nim和等于0。也就是说,s^a[i]^(a[i]-x)==0; (s^a[i]等于除了a[i]之外所以数的异或值)又因为一个数和它本身求异或值的话也就等于0,所以可以得出s^a[i]==a[i]-x (抽任意张牌,x肯定大于0),又因为x到底是几我们不确定,但是肯定大于零,所以可以把判断

2022-02-26 13:20:10 560

原创 二分匹配 棋盘游戏

大意就是在棋子只能放在给定的格子之中,并且在某一格子(x,y)放了棋子后x行,y列不能再放棋子。重要点就是如果某一点不能放棋的话,可以放置棋子的最大数量就会减少。然后要求第n块棋盘有几个重要点,最多可以放几个棋子然后比较不同的地方就是求重要点。要用已经求出的最大匹配数 rd 与去掉某点之后的最大匹配数(将map[i][j]=0(屏蔽该点之后再调用函数hugary()))最后不要忘了令map[i][j]=1;进行复原操作。#include<iostream>#include<

2022-02-25 20:11:45 2811

原创 过山车 二分匹配的最大匹配

用了匈牙利算法,简单来说就是能不能把新的左点和右点连线#include<iostream>#include<cstring>using namespace std;int an, bn, k,a,b,ans;int map[501][501],linker[501]; bool vis[501];bool dfs(int a) { for (int b = 1; b <= bn; b++) { if (map[a][b] && !vis[

2022-02-24 16:10:04 61

原创 oil deposits (dfs)

题意:有油的地块和邻近八个方向的有油地块算作1片油田。看到题之后又是正常懵逼。用x,y的位置表示每个点的状态,然后如果符合条件就将地块标记为不符合条件的地块就好了。然后在怎么找符合条件的地块卡了一下。(其实遍历就好)两个for循环一上去,符合条件就dfs 然后计数君++#include<iostream>#include<cstring>#include<stdio.h>using namespace std;int Move[8][2] = {

2022-02-23 18:39:03 55

原创 手机的诱惑

#include<iostream>#include<cstring>using namespace std;int Move[4][2] = { {1,0},{-1,0},{0,1},{0,-1} };char map[9][9];int N, M, T; bool judge;int sx, sy, ex, ey;bool in(int a, int b) { return a > 0 && a <= N && b &g.

2022-02-23 16:26:49 514

原创 dfs 求全排列

关于n=3,求全排列的流程图

2022-02-23 14:37:23 281

原创 胜利大逃亡

又卡了一会原本想用优先队列加bfs的(改一改上一题的那个模板)反而还一直超出内存,因为没有用vis标记剪枝。又想了一会,为什么这个不用呢,因为他要求的时间是每一次行动所需都相同的,不像上个rescue里面有守卫需要2点行动力,所以就是正常用bfs就好了。然后是三维数组map[a][b][c],a表示层数(或者说是深度,高度)b表示行,c表示列这样。一开始想都没想,Move用了三维数组表示移动的情况,但是其实没必要,(浪费了好长时间)。#include<iostream>#includ

2022-02-22 22:09:44 61

原创 rescue 救救天使

关键点:优先队列() 以及mintime数组存最小时间/vis标记

2022-02-22 18:32:23 85

原创 knight moves

整整一天!一开始想着用最基础的bfs(单向)并且最暴力的if()穷举8种走法,然后一直报错(还查不出来哪里错误了。)然后用循环 直接ac舒服了

2022-02-15 20:48:53 429

原创 piggy bank(背包算法)

为什么要发呢? 这个鬼题目卡了我整整5天(主要因为本人是懒狗,然后还粗心)一直ac不了 然后看别人的写法也和我差不多。最离谱的是最后才想到可能是输出的格式不对( 之前一直是piggy - bank)一定要引以为戒好吧

2022-02-15 11:22:23 348

原创 bfs 非常可乐

大体上也就是个bfs 只是情况多,然后个人感觉这算是比较麻烦的写法(但是也耗了好久,太粗心了if()后面总是漏掉{}然后一直报错。划重点:!大体上的思路就是三个杯子选两个互相倒水,不怎么动脑的话就是像上面这样,分情况写。然后就是根据当前杯子的可乐的量和目标杯子的剩余容量(也分情况,但是后面两个杯子的水量相加才等于第一个杯子的量,所以就可以直接省略掉一种情况)来决定倒水后怎么计算。

2022-02-15 11:18:08 186

空空如也

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

TA关注的人

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