- 博客(132)
- 收藏
- 关注
原创 20181220关于期末复习汇编等较抽象科目的一些思考
每次到了期末的这个时候,我总是发现XX课程学的跟**一样,决定回炉重造,然后满怀信心的腾出一大段时间从零开始看书,看了一遍又一遍其实我已经比较熟悉的内容(前期刚开学学的时候我还是个有梦想的青年,学的东西都很扎实),浪费了很多资源。后来觉得这个时候最重要的不是从零开始学,而是给不会的地方打补丁,从不会的开始看,要努力跳出舒适圈,迎难而上。很难的东西一遍看不懂就两遍,看到看懂为止,实在搞不懂就先...
2018-12-20 11:14:15
298
原创 CSU201812月赛-1.算闰年
#include<iostream> #include<cstring>#include<cstdio>using namespace std;int main(){ int n; while(~scanf("%d",&n)){ if(n%100){ if(n%4==0){ printf("yes\n"); } ...
2018-12-08 20:05:14
359
原创 centos7.5云服务器搭建LNMP遇到的nginx进php出现404等问题
给个衷心的建议给初次接触Linux的萌新:不要用yum安装LNMP,不要去看那些单独的搭建nginx,mysql,php(尤其是php7)等教程,不要在命令行乱下东西。建议先下个WinSCP做文件传输的可视化操作,比XFTP更稳定也更快,ftp现在太老了。我的配置:腾讯云centos7.5前言:可以说我为了解决这个php404。。把所有能查的网上资料都查了,把能排的坑都排了,搞了整整3...
2018-11-30 00:28:29
1282
原创 POJ1521哈夫曼编码
思路:参照哈夫曼编码,可以不用建树,用优先队列,每次把权值最小的两个加起来再入队,做到哈夫曼树的效果。#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<cmath>#include<queue>#inc...
2018-11-10 19:01:23
1109
原创 POJ - 1328(贪心)
#include<cmath>#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;struct Interval{ double left; double right;};bool comp...
2018-11-09 23:45:00
217
原创 UVA11572
#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#include<queue>#include<map>#include<set>using na
2018-11-08 21:56:19
313
原创 HDU - 1789贪心
#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#include<queue>#include<map>using namespace std;bool f[1005];s
2018-11-08 21:14:10
301
原创 HDU-2102 A计划 BFS
#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>using namespace std; char map[2][15][15], hash[2][15][15]; int sx, sy, ex, ey, sk, ek, S; bool l...
2018-11-08 19:52:16
282
原创 2031: Barareh on Fire(预处理+bfs)
思路:两次BFS一次处理火烧,得到每个点着火的时间,第二次bfs处理人的逃跑。注意,像这类有多组数据输入的时候一定要注意初始化条件,比如几个vis数组要置零,队列一定要记得清空。#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#includ...
2018-11-07 20:28:15
286
原创 CSU1224古怪的象棋(典型bfs)
思路:经典bfs,无脑让马走八个方向就行,注意别出边界。#include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#include<math.h>#include<cstdlib&g
2018-11-07 16:29:24
345
原创 CodeForces - 616C详解(很有意思的bfs)
思路:很有意思的一道题,首先如果暴力遍历"*",bfs(),运行到第11个测试点就超时了,因为点比较多,是1000*1000的格子,每次bfs一个点要进行4*10^6次运算(4是因为要上下左右找一次)。也就是最大运算是10^6*4*10^6等于4*10^12,远超出计算机一次能运算的10^8.正确思路:遍历" . ",把"."的连通区域bfs出来,给它赋上标记,表明这些点是一个连通区...
2018-11-07 15:54:32
944
原创 CSU1232懒汉的旅行
#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <string>#include <stack>#include <queue>#include <sstream&am
2018-11-04 21:19:41
253
原创 CSU - 1726 优先队列bfs
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<queue> using namespace std;int sx,sy,n,m;const int maxn = 105;struct node{ int x,y,st...
2018-11-04 16:54:37
274
原创 HDU - 1429胜利大逃亡(续)bfs与二进制按位操作
思路:有点像我们以前玩的魔塔,拿小写字母表示钥匙,去开大写字母的门,如果用模板的bfs去写,将vis设为二维数组,记录地图上的二维坐标,来标记走过的点,那么这样很明显会失败,因为勇士是可能要拿钥匙后,走之前标记过的回头路,所以我们要用vis三维数组存状态。第三维存钥匙的种类。那么问题来了,钥匙是个字符,而vis是三维整型数组,怎么转化呢?可以用二进制的按位与,按位或操作来实现钥匙的获...
2018-11-04 15:53:54
235
原创 HDU - 2717
#include<iostream>#include<cstdlib>#include<cstdio>#include<cmath>#include<cstring>#include<fstream>#include<queue>#define MAX 100010#define next
2018-11-04 11:05:25
373
原创 ZOJ - 1709 bfs
经典挖油的BFS,发现一个油田如果它合规,就把它放入队列中,然后继续搜寻下去。最后需要进行几次BFS(换句话说,中断过几次bfs)就说明有几个大油矿。#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<map>#include...
2018-10-28 15:50:41
316
原创 POJ - 3126
典型的bfs,直接暴力枚举四位上的数字。#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<map>#include<set>#include<cmath> using namespace std
2018-10-28 15:46:12
473
原创 POJ1654
思路:凸包算法,Andrew,坑的一点是int会爆,要用longlong,而且注意没有小数时输出整数。ps:这个题目其实有点问题,因为没有说明它是凸多边形,如果是凹多边形这么做是无意义的(开始我以为要考虑凹多边形,把算法弄得超级复杂调试了半天也不行)。#include <iostream>#include <cstdio>#include <cst...
2018-10-28 12:21:07
363
原创 UVA 10652 Board Wrapping 凸包
题意:求闭包的Andrew算法,在刘汝佳的 算法竞赛训练指南的272页有讲。#include<iostream>#include<cstring>#include<cmath>#include<vector>#include<algorithm>using namespace std;const double PI...
2018-10-27 20:51:50
232
原创 POJ1269解题报告
利用叉乘:https://blog.csdn.net/zxy_snow/article/details/6341282#include<cstdio>#include<cstring>#include<cmath>#include<iostream> using namespace std;#define abs(x) ((x)&g...
2018-10-27 19:34:58
297
原创 POJ1066向量叉乘法解题报告
首先你要知道如何判断两条线段相交:https://blog.csdn.net/qq826309057/article/details/70942061 思路:枚举外墙上每道内墙的两个端点和p(宝物)的连线这条线段和内墙的交点的次数最小值即为需要炸墙的最小次数#include<iostream>#include<cstdio>#include<cmat...
2018-10-27 16:57:37
541
原创 window10安装mongodb4.x最新版
时间:2018/9/30mongodb现在都出到第4个版本了,跟以前的版本安装方式有了较大的区别,不仅是不需要手动创建data,db,log等文件,甚至自动帮你上本地服务。操作:链接:https://www.mongodb.com/download-center/v2/community 下载好后:1. 点custom安装(自定义安装)2.选路径:d:\software\m...
2018-09-30 20:59:17
2279
6
原创 KMP算法C++实现
KMP算法在数据结构(C语言版)里算是比较难的地方了,难就难在next数组的求法,但偏偏很多资料在这一点都比较含糊,下面是我学完KMP的一些思考和代码。一、定位函数(暴力法)#include<iostream>#include<cstdio>#include<string>using namespace std;int index(stri...
2018-09-30 17:20:38
1064
原创 Python入门应注意的错误类型及问题合集(亲身经历WTF)
1.如果出现TypeError: object() takes no parameters,意思是对象不需要参数,而你传了参数,说明你的init函数可能写错了,请注意init别写成int!!!!!(当时我debug了半天),还有前后都要两个下划线def __init__(self,name):2.ModuleNotFoundError: No module named 'requests...
2018-09-27 22:56:07
321
原创 POJ-3620连通分量
题意:如果两个区域点是被淹没的并且是相邻的(上下相邻或者左右相邻),那么他就是被某个水池覆盖的区域,问你最大的水池能覆盖多少个区域。思路:找一个被淹没的区域,然后上下左右搜索相邻的被淹没区域,然后在此基础上深搜。用一个mmax维护最大水池。#include<iostream>#include<cstring>#include<cmath>usi...
2018-09-26 17:19:36
300
原创 判环 HDU - 1035
难点应该在如何判断机器人进入了一个loop,和loop的长度。思路:dfs机器人的坐标,(i,j),将它走的每个坐标标记,然后用step记录到达此处的步数,用map将两者联系起来,当机器人走到被标记的坐标时,说明进入了loop,然后用现在的step减此处坐标对应的step就是loop长度。#include<iostream>#include<cstring>...
2018-09-14 22:48:56
252
原创 CSU2087-迭代深搜dfs
思路:dfs,用vowel记录连续的元音字母,用consonant记录连续的辅音字母,深搜字符串的位置(str[i]的i),用cnt存悲剧词的个数,最后用T判断字符串中是否含'L'。#include<iostream>#include<cstring>#include<string>#include<algorithm>#inclu...
2018-09-11 11:30:51
410
原创 Prime Ring Problem HDU - 1016
经典回溯法。。。#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;int n;int a[25];bool v...
2018-09-09 21:33:53
193
原创 hdu2553-N皇后问题
全排列问题。#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<queue>#include<algorithm>#include<vector>#include<stack&am
2018-09-09 19:47:09
274
原创 单源最大权路径 CSU - 1960(DFS)
思路:由于n的数据上限为1e5,不能直接用二维数组存边的权值(x,y分别做第一维和第二维)。所以把子节点写入node里,用vector存。#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<queue>#include...
2018-09-09 10:09:51
334
原创 HihoCoder - 1049
题解:如果我要求解post-order(str1, str2)的话,首先不难发现,根据‘前序遍历’str1=‘根节点’+‘左子树的前序遍历’+‘右子树的前序遍历’,我可以知道这棵二叉树的根节点root便是str1的第一个字符!”小Ho道。“而我在知道了‘根节点’root之后,我便可以利用‘中序遍历’str2=‘左子树的中序遍历’+‘根节点’+‘右子树的中序遍历’,求解出‘左子树的中序遍历...
2018-09-07 20:56:32
248
原创 CodeForces - 348A 黑手党(二分)
题意:玩黑手党游戏,每局游戏需要一个管理者,第i个玩家想玩a[i]局,请问最少一共要玩多少局?思路:设mid为玩的局数,每个玩家最多能当mid-a[i]局管理,就是他玩够了就可以在剩下的比赛中当管理,那么mid-a[i]加起来只要能大于mid就说明满足要求。然后二分mid.#include<iostream>#include<cstring>#inc...
2018-09-07 12:19:10
414
原创 CodeForces-598C-Nearest vectors【高精度几何】
题解:用atan2(long double y,long double x)返回点(x,y)与x正半轴的夹角,取值从(-PI,PI]。得到所有的单点偏转角排序后,用相邻数组元素相减得到两点与原点连线的夹角,然后维护它的最小值就行了,注意最后还要用第一个减最后一个(构成整个循环),并且如果其若为负数还要加2*PI.#include<iostream>#include<c...
2018-09-06 21:02:18
354
原创 CodeForces - 600B (STL基础题)
You are given two arrays of integers a and b. For each element of the second array bj you should find the number of elements in array athat are less than or equal to the value bj.InputThe first li...
2018-09-06 18:50:00
522
原创 CodeForces-598A
思路:给定一个n,输出-1-2+3-4+5+6+7-8.....,等价于1+2+3+.....+n-2*(1+2+4+8+...)。前面可以由求和公式,括号里是一个等比数列。代码:#include<iostream>#include<cstring>#include<string>#include<cmath>#include&...
2018-09-06 16:56:12
883
原创 ZOJ1633 Big String
题解:虽然题目叫大串串,但很显然,这个题不能直接暴力递推写,会报MLE(内存超出限制)。。。所以逆推:用数组记录big string的长度,找到最小的大于等于n的len[i],那么可以想象,n必定>len[i-1],因为len[i]是len[i-1]加上len[i-2]构成的,那么用n减去len[i-1]后,再继续找最小的大于等于n的len[i],知道n<7,结束循环,输...
2018-09-06 12:36:00
916
原创 CSU2059(递推,找规律)
题解:每个Z有3条边,每条边可以有3个交点,也就是每个Z可以有9个交点,(类似于直线相交);得到ans(Z)=ans(Z-1)+9*(Z-1)+1;如果这样直接递推,可能会超时。。。所以采用初中学过的数列知识,继续化简。#include<stdio.h>int main(){ int T; long long m; while (~scanf("%d"...
2018-09-05 22:32:50
825
原创 hdu1207汉诺塔2
分析:设f[n]为所求的最小步数,我们将移完盘子的任务分为三步:(1)将x(1<=x<=n)个盘从a柱移到c柱,这个过程需要的步数为f[x];(2)将a柱上剩下的n-x个盘依靠b柱移到d柱,这个过程需要的步数为pow(2,(n-x))-1(3)将c柱上的x个盘依靠a,b柱移到d柱上,这个过程需要的步数为f[x];故最后答案为:f[n]=min{2*f[x]+2^(...
2018-09-05 20:33:49
396
原创 Ural(Timus) 1081. Binary Lexicographic Sequence
题意:有一串01排列的字符,长度为n,不能让两个‘1’相邻,将他们按字典序升序排列,输出第k个字符串。也就是说000可以,001可以,101可以,011不行。当时我看题目时没看仔细,以为两个‘0’也不能相邻,因为原文是这么说的:no two ones are adjacent.我理解成了是两个字符不能相邻。。。然后死活都想不出怎么做。。。题解:从高往低按位置先预处理该位置填0...
2018-09-05 16:22:45
247
原创 POJ1664(放苹果)
思路:设solve(m,n)为放m个苹果到n个盘子的方法总数。1.如果m<=n 即苹果比盘子少,那么solve(m,n)等价于solve(m,m)。2.如果m>n,即苹果比盘子多,那么:a.n个盘子全部放,不留空盘子,即用n个苹果放满n个盘子,剩下的m-n个苹果再放,即solve(m-n,n);b.留至少一个的空盘子,即用m个苹果放n-1个盘子,即solve(m,n-1)...
2018-09-04 18:59:49
555
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅