自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Atcoder Beginner Contest 184 F Programming Contest(暴力枚举+二分)

题意:高桥将参加编程竞赛,竞赛持续了T分钟,并提出了V问题。凭借他的超感官知觉,他已经知道它将需要ai分钟解决第i个问题。他将从N个问题中选择零个或多个要解决的问题,因此解决这些问题所花费的总时间不会超过T分钟。找到他解决问题选择所需的最长时间。1<=N<=401<=T<=10^91<=a[i]<=10^9题解:看到数据范围首先想到枚举2^N,发现肯定会超时。于是我们可以将N分成两半,然后分别枚举子集,得到两个集合。然后对两个集合的进行二分求出最大的所需

2020-11-23 20:16:15 419

原创 AtCoder Beginner Contest 184 E (bfs)

题意:一个n*m的地图,每个格子的图案为S , G , . ,#,a~z。从S走到G,每次只能从4个方向走或者相同字母任意传送,求最小步数题解:先存下来每个字母的位置。然后bfs时当前字符为a~z时,看是否是第一次走过,如果是的话就对所有为相同字符的字母进行入队,然后标记当前字母已经遍历过,否则直接跳过该操作。其他的操作就和普通的bfs一样,向4个方向遍历,具体操作看代码。#include<bits/stdc++.h>using namespace std;typedef long

2020-11-23 17:24:15 272

原创 AtCoder Beginner Contest 184 D(概率dp)

题意:我们有一个装有A金币,B银币和C青铜币的袋子。在袋子中装有100个相同颜色的硬币之前,我们将重复以下操作:操作:从袋子中随机取出一个硬币(每个硬币被选择的可能性相同)。然后,将两个硬币放回袋子中 与取出的硬币相同。查找操作完成次数的期望值。题解:我们设dp[i][j][k]表示金币为i时,银币为j时,铜币为k时的概率。初始时dp[a][b][c]概率为1。根据题意,我们每一次取出一个金币的概率为i/(i+j+k),转移方程为dp[i+1][j][k] += dp[i][j][k] * i /

2020-11-23 17:11:01 347

原创 P1020 导弹拦截(线性dp)

题意:第一问:求一个最长不上升子序列第二问:求有多少个不上升子序列题解:第一问:直接把数组倒过来求解最长不下降子序列就好了(注意要用nlog(n)复杂度的求法)第二问:用以下方式维护数组q,cnt表示有多少个不下降子序列。保证的是每个不上升子序列中的最后一个数1.若x大于q中的每一个数,则新建一个不上升子序列,放入x2.否则找到q中大于或者等于x的最小的数,替换掉,不改变x与被替换数左右相邻两数的相对大小关系,所以q一定是单调递增。#include<bits/stdc++.h>

2020-11-10 16:28:15 223

原创 P2758 编辑距离(线性dp)

题意:设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:1、删除一个字符;2、插入一个字符;3、将一个字符改为另一个字符;题解:dp[i][j]表示将a[1 ~ i]变成b[1 ~ j]的最小操作次数删除操作:dp[i-1][j]插入操作:dp[i][j-1]替换操作:1.如果a[i]==b[j](说明当前最后一个字符相等) dp[i-1][j-1]2.否则 dp[i-1][j-1]+1#include<bits/s

2020-11-10 15:34:43 420

原创 智算之道 第二场高校组 情报站详细题解(并查集)

题解:用并查集做,每次维护一下连通块的大小和这个连通块是否存在已知数(是否用过),具体看下面代码,没怎么优化,跑了80ms左右#pragma GCC optimize(2)#include<cstdio>#include<iostream>using namespace std;typedef long long ll;const int N = 300005;int a[N]; //记录当前连通快是否存在已知的数(是否用过) int size[N]; //记入连通

2020-07-19 23:32:15 139

原创 POJ-1511(堆优化版dijkstra)代码简单易懂

题目大意:求点1到其他点最短距离全部相加,然后在求第n号点到其他点最短距离全部相加题目思路:先正向建图,然后反向建图,求两次1号点到其他点的最短距离,注意输入用scanf就不会超时#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<queue>using namespace std;typedef long long ll;c

2020-06-28 16:45:37 266 2

原创 POJ - 3625 Building Roads(最小生成树prim)

题目大意:n个农场,n个农场的点告诉我们,将这n个农场联通所需的最小的代价,m个已联通的边,不需要再连。题目思路:一道明显的最小生成树的问题,我们可以先将每个点与其他点距离记录下来,这样总共就有n*n的边了,所以根据复杂度prim为n ^ 2,而Kruskal需要 n ^ 2log(n ^ 2),所以先把所有边存下来用prim算法,这题比较重要的一点是将m条已连接的边距离设置成0就好了。#include <iostream>#include<cstdio>#include

2020-05-14 19:09:39 218

原创 算法竞赛入门经典训练指南(蓝书)上的LA是什么算法网站,网址是什么

蓝书上LA网站的网址为https://icpcarchive.ecs.baylor.edu/index.php当然你也可以在vj上提交,但有时会出现错误,例如Submission error

2020-03-17 14:55:54 586

原创 Python使用numpy对excel,csv文件进行操作

(基础题)根据“某门课程平时成绩和期末考试成绩.xlsx”内容,计算课程的平时成绩和期末考试成绩的均值、标准差、方差、最小值、最大值,输出期末考试成绩排名有进步学生的名单。原表为程序代码:`import numpy as npfrom xlrd import open_workbookbook=open_workbook(r’C:\Users\hhx\Desktop\某门课程平时成绩和期末...

2020-03-15 14:24:53 25202

原创 Ubuntu安装界面显示不全,下部分界面看不到等解决办法附Ubuntu安装教程

在第一步安装的时候将语言设置为英文,先不要设置成中文,因为设置中文后会导致分辨率的变化使得看不到全部界面,先用英文安装完后再将Ubuntu设置为中文就行了在这里插入图片描述第一个是情况磁盘安装Ubantu,慎点。这里我们选择 其他创建主分区选中freespace后点击+号用一样的方法创建SWAP空间-交换空间再创建/(root)分区...

2020-03-11 21:10:54 12955 1

原创 如何快速求一个数的所有因子数 c/c++

求一个数的所有因子数#include<bits/stdc++.h>using namespace std;int main() { int a; int b[100005]; memset(b,0,sizeof(b)); scanf("%d",&a); int z=0; for(int i=1;i<=sqrt(a);i++) { if(a%i...

2019-09-27 21:39:33 21032 4

原创 Idea 环境下Java swing界面乱码问题解决

首先要先统一UTF-8字符,如图所示:file-Settings-File Encodings再通过Run-Edit-Configurations,将其中的VM options和Program arguments添加一段-Dfile.encoding=GB18030问题就解决了...

2019-08-22 10:59:46 1861 2

空空如也

空空如也

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

TA关注的人

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