自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 app使用情况

是什么影响了我们学习的步伐?手机使用情况我们统计了最近一周的手机使用时间,从每天的使用情况、app使用情况等方面分析我们都被手机的什么内容吸引?first平均每天7小时的手机使用时长,可以看出这是低头族的一员;其中3/4的时间都是画在了娱乐上面,仅有1/4的时间才是用手机学习。Top3的app分别是微博、优酷、百度,不难看出,平均每天4小时的时间,不是在追星,就是在吃瓜的路上。second这,应该是个大佬的手机使用时间,平均每天用手机1个半小时,且周末基本远离手机;其中85%的时间都是学习

2020-11-29 18:37:23 873

原创 信息检索实验三报告

信息检索与模式识别实验报告姓名:宋赖招学号:201818130183实验内容实现MAP、MRR、NDCG评估查询出来的结果;需要测试的查询出来的结果为result.txt文档里面,转化为字典形式存储在test_dict里面每一个query_id的文档的初始相关Gain在qrels.txt文件里面,转化为字典形式存储在qrels_dict里面(这个字典是排除掉了所有不相关的文档)实验步骤MAP实现过程对于每个query里面的document,记录这是遍历的第几个文档i,以及在此之前有多少

2020-10-30 09:50:19 1087

原创 图片

2020-10-17 10:45:08 186

原创 csp模拟-元素选择器

题目分析这个模拟题需要记录的是结构化文档,结构化文档需要记录的有:标签、id属性、以及有层次的包含关系。使用struct记录:struct node{ string name,tag;//标签和属性 int level;//层次 node* parent;//上一个node node(string n,string t,int l){name=n;tag=t;level=l;parent=null}}; 然后是如何读入这个具有层次的结构化文档:首先用vector< node*

2020-06-13 10:12:49 204

原创 csp模拟题-炉石传说

题目试题编号: 201609-3试题名称: 炉石传说时间限制: 1.0s内存限制: 256.0MB问题描述:《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游戏的简化规则如下:* 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。  * 玩家各控制一个英雄,游

2020-06-13 09:24:38 248

原创 week14-猫咪睡觉问题

题目分析1、用一个结构体记录状态时间段:重载<用来排序(后面要循环遍历每个看番时间段,需要有顺序)struct Time{ int begin, end; bool operator<(const Time &tm) { return begin<tm.begin; }}ans[30],be[30];//ans数组记录的是符合的睡眠时间,be数组是记录清醒时间2、循环遍历be数组(看番时间),用last记录现在遍历的清醒时间。计算当前清醒时间段(last

2020-06-13 08:57:38 193

原创 M4-宇宙狗的危机

题目分析

2020-06-13 08:28:10 127

原创 M3-T4咕咕东学英语

题目代码#include<stdio.h>#include<string.h>char a[10000000];int main(){ //读入输入数据 long long n; scanf("%lld",&n); getchar(); for(int i=0;i<n;i++) scanf("%c",&a[i]); long long A_num=0,B_num=0; long lon

2020-06-12 20:02:34 140

原创 M3-T2消消乐大师

题目代码#include<stdio.h>using namespace std;int n,m,G1[35][35],G2[35][35];void solve(int* a,int size){ int l=0,r=0; while(r<size-1){ r++; if(a[r]!=a[l]){//下一个段 //进入下一段之前判断是否能消除 if(r-l>=3){ for(int i=l;i<r;i++){ a[i]=0

2020-06-11 10:02:00 165

原创 M3-T1瑞神的序列

题目分析用数组a[ ] 存储序列。这里要求出序列中的段数,需要扫描整个序列。用 l 表示正在扫描的段的开头,r表示正在扫描的那个数字。不断的r++(向后扫描),直到遇到a[r]!=a[l]的情况,表示到下一段了,令l指向r所指向的数字。因为这里是遇到了不同的才会con++;显然最后一段没有加入进去,所以直接初始化cnt=1即可。代码#include<stdio.h>using namespace std;int n,a[2000];int main(){ scanf("%

2020-06-10 17:28:03 177

原创 week10限时模拟-东东转魔方

题目分析数组a[ ] 存放的是原魔方的情况;数组b[ ] 存放的是旋转之后魔方的情况。1、模拟旋转的6种情况:找到一个正方体,标上代表数字,分别模拟6中旋转的情况,将结果存放到b[ ]数组里面;2、判断旋转之后的魔方是否成功,即判断数组b[]的六个面是否每个面数字一样。这是一道蛮暴力的题,只要正方体叠的好,没有什么是解决不了滴。代码#include<stdio.h>using namespace std;int a[25];//可以有6个步骤bool pan(int *

2020-06-10 17:13:15 161

原创 week10限时模拟-A签到题

题目Problem Statement东东有一个字符串X,该串包含偶数个字符,一半是 S 字符,一半是 T 字符东东可以对该字符串执行 1010000 次操作:如果存在 ST 是该串的子串,则删除掉最左边的 ST。即 TSTTSS⇒TTSS、SSSTTT⇒SSTT⇒ST⇒空Input(2 ≦ |X| ≦ 200,000)Output输出最终串的长度分析需要用到vector类型,因为它可以两边进行添加和删除,更好处理。把这个字符串里的字符(从左到右)不断加入到vector里面。如果要加入

2020-06-10 16:58:03 214

原创 M4-B ZJM要抵御宇宙射线

题目分析看起来像最小覆盖圆问题,但是仔细看题目:中心点在发射点的某一个。所以这道题目就简单了很多。思路很清晰O(n^2)的暴力做法。两重循环,计算两两之间的距离,找到能覆盖所有点的最小距离:for(int i=0;i<n;i++){ for(int j=0;j<n;j++){//计算第i个点到各个点的距离最大值dmax d=pow(nd[i].x-nd[j].x,2)+pow(nd[i].y-nd[j].y,2); if(d>dmax){ dmax=d;

2020-06-10 09:53:39 187

原创 M4-A TT数鸭子

题目分析这是csp模拟题的第一题,思路还是很简单的。首先需要弄清楚,这个需要处理的是每一个整数的位。所以想到将这个整数看成是字符串来处理。然后用一个vis[]数组记录,这个位是否出现过。最后统计出现的不同位的次数,题目就解决了。代码#include<string>#include<iostream>using namespace std;int n,k,j,sum,vis[20];string t;int main(){ cin>>n>&

2020-06-10 09:42:10 188

原创 A目录管理器----一道难难的模拟题

题目分析1、首先从函数的入口开始写起,输入T组数据,n个操作2、输入n个操作的时候,发现这个操作包括 命令 和 文件名所以定义一个结构体command来存储命令,当时mkdir rm cd 操作的时候,再读入后面的文件名。3、在进行操作之前,发现需要一个数据结构记录目录,所以定义一个结构体Directory,里面存储当前目录的名字,子节点,父节点,子树大小等。4、然后再一个一个的去...

2020-04-27 17:29:49 107

原创 A作业九的签到题

题目分析k可能的最大值就是,初始时候的最大人数max加上过来的人数(即所有过来的人凑到最多人的椅子上)k可能的最小值是:y个人将x条凳子的人数坐均衡for(int i=0;i<n;i++){ tsum+=a[n-1]-a[i];}tsum是如果要坐均衡,需要多少y;所以如果y<tsum那么 k=a[n-1] (即amax)如果y>tsum,说明还需要均分下去...

2020-04-27 17:10:53 100

原创 B东东学打牌----模拟题

题目分析这是一道模拟题,一步一步分析来走:首先定义一个结构体people{name//人名xu//一手牌的规则序号key1,key2,key2//表示如果都是那一种一手牌,按关键字排序}有了上面的定义,我们只需要对每一个输入的人,分析他手中的一手牌是哪个规则序号(1:大牌 ;2:对子…),然后将这种牌的排序关键字记录到结构体里面(比如说是1大牌,关键字1就是5张牌的总和),这些...

2020-04-27 17:01:32 169

原创 A作业十

具体题目在一开始他有一个数字n,他的目标是把它转换成m,在每一步操作中,他可以将n乘以2或乘以3,他可以进行任意次操作。输出将n转换成m的操作次数,如果转换不了输出-1。Input:输入的唯一一行包括两个整数n和m(1<=n<=m<=5*10^8).output:输出从n转换到m的操作次数,否则输出-1.分析不难分析这两个数之间相差的就是2^i * 3^j ;也就是...

2020-04-27 16:41:26 147

原创 B最长上升子序列 and 最长公共子序列----动态规划

简要阐述最长上升子序列:给定n个整数A1…Aj,按照从左到右的顺序选出尽量多的整数,组成一个上升子序列。求最长子序列的长度。1、首先定状态:fi 表示以Ai为结尾的最长上升序列2、转化方程:初始化f1=1;3、答案就是max( fi )最长公共子序列:给出两个序列A,B,求长度最大的公共子序列的长度1、首先定状态: f[ i ][ j ]是A1,A2…Ai和B1,B2…Bj的最长...

2020-04-27 16:33:46 139

原创 C拿数问题----动态规划

分析首先看一道拿数问题:给n个数,每一步能拿走一个数,比如拿第i个数,Ai=x,得到相应的分数,但拿掉这个Ai之后,Ai-1和Ai+1就会变得不可拿。求最大分数用动态规划的思想解决这个题:1、首先定状态:dp[ i ] 表示仅考虑A[1…i],能拿到的最大分数。2、然后递归的定义最优值(写出动态规划方程):dp[ i ]=max(dp[ i-1 ] ,dp[ i-2 ] + A[ i...

2020-04-27 16:16:35 258

原创 201604-3路径解析

一些函数的使用getline()函数:1、作为输入输出流函数:虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。当 cin 读取数据时,它会忽略(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。而getline可以读取一行数据,包括末尾的空行和中间的空白字符用法:如getline(...

2020-04-17 14:53:57 77

原创 C班长竞选--强连通分量

kosaraju算法这是一个求连通分量的算法,利用的是DFS序;主要是两遍DFS,第一遍求DFS后序序列;第二遍利用DFS的逆后序标记属于同一个强连通分量的节点。代码如下:vector<int> G1[5005],G2[5005];//原图,反图,void dfs1(int x){ vis[x]=1; for(int i=0; i<G1[x].size(); i+...

2020-04-16 20:56:47 1370

原创 三道csp模拟题

三道csp模测题目一分析总结代码题目二分析总结代码题目三分析总结代码题目一分析这道题并不会很难,只要稍微分析,就能发现,如果数字序列中只有1个或2个不同的数,就一定满足;有4个不同的数,就一定不满足;唯一需要细加判断的就是3个不同的数,如果是等差数列(a[i+1]-a[i]==a[i]-a[i-1]),就满足条件。所以步骤是1、先为数组排序2、用一个数组记录相互不同的数(因为&gt...

2020-04-16 19:48:19 294

原创 B猫猫向前冲----拓扑排序

拓扑排序给出一个有向无环图,拓扑排序的目标是将所有节点排序,使得排在前面的节点不能依赖于排在后面的节点。kahn算法• 将入度为0的点组成一个集合S• 每次从S里面取出一个顶点u(可以随便取)放入L, 然后遍历顶点u的 所有边(u, v), 并将所有的v入度-1;如果入度更新之后是0,那么就将这个顶点放入集合S中。不断地重复取 出顶点然后重复这个过程……• 最后当集合为空后,就检查图中是...

2020-04-16 12:00:08 128

原创 A区间选点----差分约束

差分约束每一个不等式约束xi - xj <=c,都可以变成xi <= c+xj;和最短路径问题中的松弛操作对比:if(dis[v]> dis[u]+w(u,v)){dis[v] =dis[u] + w(u,v)}发现松弛操作之后就能满足这个不等式约束,而这也就是求最短路径的问题。具体就是将xi, xj作为路径上的点,c作为权重。在求解对端路径的时候,程序是按照等...

2020-04-16 11:32:24 197

原创 week7--图的最短路径问题

Floyd算法在解决最短路径的时候我们会学习到Floyd算法,如何理解这个算法呢?用dis[i][j]来记录点i到点j的最短路径,可以用下面的式子更新dis[i][j]:dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j])。也就是通过点k的路径是否更短。Floyd算法的代码实现:时间复杂度是O(n^3)void floyd(int n,int **...

2020-04-03 20:14:43 412

原创 csp201512-3(画图)

题目问题描述用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。例如,下图是用 ASCII 字符画出来的 CSPRO 字样。   本题要求编程实现一个用 ASCII 字符来画图的程序,支持以下两种操作:  Ÿ 画线:给出两个端点的坐标,画一条连接这两个端点的线段。简便起见题目保证要画的每条线段都是水平或者竖直的。水平线段用字符 - 来画,竖直线段用...

2020-04-02 21:55:39 536

原创 单调队列----滑动窗口

单调队列单调队列就是维持出队顺序是单调的。下面分析一下用数组存储是怎样维护单调队列的具体题目:ZJM 有一个长度为 n 的数列和一个大小为 k 的窗口, 窗口可以在数列上来回移动. 现在 ZJM 想知道在窗口从左往右滑的时候,每次窗口内数的最大值和最小值分别是多少. 例如:数列是 [1 3 -1 -3 5 3 6 7], 其中 k 等于 3.全部代码:#include<std...

2020-04-02 21:31:35 183

原创 树直径问题

具体题目:实验室里原先有一台电脑(编号为1),最近氪金带师咕咕东又为实验室购置了N-1台电脑,编号为2到N。每台电脑都用网线连接到一台先前安装的电脑上。但是咕咕东担心网速太慢,他希望知道第i台电脑到其他电脑的最大网线长度,但是可怜的咕咕东在不久前刚刚遭受了宇宙射线的降智打击,请你帮帮他。提示: 样例输入对应这个图,从这个图中你可以看出,距离1号电脑最远的电脑是4号电脑,他们之间的距离是3。 ...

2020-04-02 21:22:10 205

原创 一道暴力解决的模拟题----A - 掌握魔法の东东 II

题目从瑞神家打牌回来后,东东痛定思痛,决定苦练牌技,终成赌神!东东有 A × B 张扑克牌。每张扑克牌有一个大小(整数,记为a,范围区间是 0 到 A - 1)和一个花色(整数,记为b,范围区间是 0 到 B - 1。扑克牌是互异的,也就是独一无二的,也就是说没有两张牌大小和花色都相同。“一手牌”的意思是你手里有5张不同的牌,这 5 张牌没有谁在前谁在后的顺序之分,它们可以形成一个牌型。 ...

2020-04-02 21:14:23 260 1

原创 kruskal算法----最小生成树

kruskal算法这个算法可以归结为贪心算法,将图的边集进行排序,每次取最小的那个边,最后构造出一颗最小生成树。具体步骤是:1、边集排序:sort()函数就可以----复杂度为O(n*logn)2、循环取最小的边,判断这条边加入之后,和先前加入的边是否会构成圈,不会就加入。3、循环截止到取出n-1条边。问题就变为如何判断这条边加进去之后,是否还会构成圈。这就应用到并查集的知识。如果边的...

2020-04-01 20:30:39 330

原创 并查集问题

并查集并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题。这里面主要就两种操作:1、查询find()函数:就是一种递归查找,需要找x的根,就不断寻找x的父亲,直到找到那个根。int find(int x){ if(pa[x]==x) return x; return find(pa[x]);}对于查找操作,这里有一个优化的算法,使得查找的复杂度降低,那就是路径压...

2020-04-01 20:09:01 490 1

原创 尺取法----平衡字符串

具体题目一个长度为 n 的字符串 s,其中仅包含 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符。如果四种字符在字符串中出现次数均为 n/4,则其为一个平衡字符串。现可以将 s 中连续的一段子串替换成相同长度的只包含那四个字符的任意字符串,使其变为一个平衡字符串,问替换子串的最小长度?如果 s 已经平衡则输出0。#include<stdio.h>#include<st...

2020-04-01 19:12:04 203

原创 前缀与差分

前缀与差分差分的构造:这样数组A的元素A[i]=sum(B[j])0<j<=i;如果要对数组A进行区间操作,只要修改两个B数组里面的元素即可。ps:截图来自课件。具体题目:需要实现:长度为n的数组,要进行q个操作;然后就是q个具体操作:区间l–r,加上数字c。输出经过q个操作之后的数组元素。分析问题如果直接对数组做q个操作,那么复杂度是O(n*q);复杂度好像有点高,...

2020-04-01 08:52:07 153

原创 单调栈的应用----直方图中矩阵最大面积

单调栈简单定义:单调栈就是从栈顶到栈底,元素满足单调性;如单调递增栈:如何维护单调栈?以维护单调递增栈为例,当一个元素a入栈的时候,判断a和栈顶元素的大小,如果栈顶元素小于等于a,那么就弹出栈顶元素,直到栈顶元素大于a(或者栈为空)。例如,把7放入栈当中:单调栈的用处*可以判断一个数组中,任何一个元素左边(右边)第一个比自己大(小)的元素。*比如上面的例子,如果数组是10 8 6...

2020-03-31 21:23:48 296

原创 二分答案

题目给定一个 N 个数的数组 cat[i],并用这个数组生成一个新数组 ans[i]。新数组定义为对于任意的 i, j 且 i != j,均有 ans[] = abs(cat[i] - cat[j]),1 <= i < j <= N。试求出这个新数组的中位数,中位数即为排序之后 (len+1)/2 位置对应的数字,’/’ 为下取整。思路最好想的思路就是计算出新的数组,然后进...

2020-03-20 09:35:03 110

原创 B-4个数列----二分法

问题描述ZJM 有四个数列 A,B,C,D,每个数列都有 n 个数字。ZJM 从每个数列中各取出一个数,他想知道有多少种方案使得 4 个数的和为 0。思路:对于四个数列之和,最暴力的想法就是枚举四个数列的数,那样时间复杂度是O(n^4)显然复杂度太高了。我们的思路是,计算A+B的和 O(n*n)存放在数组a里面(排序),然后再计算C+D的和bi,对于每个计算出来的和bi,我们使用二分查找的...

2020-03-20 09:20:15 101

原创 贪心思想解决调度问题

问题描述:对于n个作业,每个作业有两个属性,一个是作业未完成的罚时,一个是作业的DDL。我们需要计算的是在n天里面,尽可能的完成作业减少罚时。这里的贪心思想是两点:一是先处理罚时高;二是从DDL开始往前找空闲时间,这样就可以尽可能的减少影响别的作业。代码思路是,将作业根据罚时进行降序排序;用visit[ i ]记录第i天是否已经占据了。注意寻找每个作业的处理时间的时候从ddl往前寻找#in...

2020-03-20 09:09:09 174

原创 csp模拟D题

题目:众所周知,瑞神已经达到了CS本科生的天花板,但殊不知天外有天,人外有苟。在浩瀚的宇宙中,存在着一种叫做苟狗的生物,这种生物天 生就能达到人类研究生的知识水平,并且天生擅长CSP,甚至有全国第一的水平!但最可怕的是,它可以发出宇宙射线!宇宙射线可以摧毁 人的智商,进行降智打击! 宇宙射线会在无限的二维平面上传播(可以看做一个二维网格图),初始方向默认向上。宇宙射线会在发射出一段距离后分裂,向...

2020-03-20 08:59:04 101

原创 csp模拟B题

题目:咕咕东考试周开始了,考试周一共有n天。他不想考试周这么累,于是打算每天都吃顿好的。他决定每天都吃生煎,咕咕东每天需要买ai个生煎。但是生煎店为了刺激消费,只有两种购买方式:①在某一天一次性买两个生煎。②今天买一个生煎,同时为明天买一个生煎,店家会给一个券,第二天用券来拿。没有其余的购买方式,这两种购买方式可以用无数次,但是咕咕东是个节俭的好孩子,他训练结束就走了,不允许训练结束时手里有券。...

2020-03-20 08:38:47 95

空空如也

空空如也

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

TA关注的人

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