自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WonderKing'blog

学习算法

  • 博客(31)
  • 资源 (8)
  • 收藏
  • 关注

原创 51Nod 1163 最高的奖励(贪心)

按照奖励从大到小排序比如测试案例:70 60 50 40 30 20 10 4  2   4   3   1    4   6用一个数组ans[i]记录要完成的任务:      先将70放到4的位置,然后将60放到2的位置,然后将50放到4的位置,但是4的位置已经有70了,就往前找空位即放到3的位置。就是这个思想,比较像哈希函数解决冲突的开放地址法。#include&lt...

2018-12-23 18:06:39 180

原创 51Nod1127 最短的包含字符串(尺取法)

尺取法:由两个指针l,r移动维护,l到r为符合要求的长度,不断移动l和r,直到r到头为止。#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<vector>using namespace std;const int ...

2018-12-23 17:34:31 233

原创 51Nod1117 聪明的木匠(最小生成树)

这道题的求解思路和求最小生成树的思路相似。在队列中找最小的两个数出队相加,加得的数在进队列,直到队列剩一个数为止。#include<iostream>#include<algorithm>#include<cstring>#include<queue>#include<vector>using namespace st...

2018-12-23 16:24:30 108 1

原创 51Nod1102 面积最大的矩形

正常思路想就好了。求出每一块的最大面积,在比较出最大值。时间复杂度大概会比o(n^2)小点,但是最坏情况还是o(n^2),最好情况是o(1),平均下来应该是o(nlog2n)#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include&...

2018-12-23 12:08:58 196

原创 51Nod1101 换零钱(动归)

dp[i]:i的换法一共有13种物品,空间是n个。这是一个不求最大价值的01背包问题。具体思路言语表达不出来,看代码应该可以get到。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<string>using ...

2018-12-23 11:19:37 174

原创 51Nod1099 任务执行顺序(贪心)

刚开始是以为r最大的在前面,排序,结果只对了几个测试案例,然后看了下面的思路,顿悟了。假设只有两个任务,那么就两种结果,先执行a,后执行b。或者先执行b,后执行a。前者的结果是 max(a.oper,a.store+b.oper)后者的结果是 max(b.oper,b.store+a.oper)这个时候可以知道,结果一定是min( a.store+b.oper , b.store+a.o...

2018-12-23 10:43:11 197

原创 51Nod1097 拼成最小的数(技巧排序)

排序规则:两个字符串a,b。如果ab<ba 那就a在b之前。比如a=312,b=31.31231<31312所以312在31之前。排完序就是按照规则输出就行了。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#i...

2018-12-22 17:38:05 202

原创 51Nod1096 距离之和最小(水题)

 找中位数就行了。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<vector>using namespace std;typedef long long ll;int main(){ ll i,n,a[10...

2018-12-22 16:22:11 207

原创 51Nod1065 最小正子段和(前缀和)

先求前缀和,然后在排序,序列最小的和可能存在于相邻的两个数之差,关键在于如何判断相邻的两个人能否构成序列。比如-9 -2 8 7 6前缀和为-9 -11 -3 4 10排序后:-11 -9 -3 -4 10-11和-9就构不成序列,因为-9的下标在-11的前面.当然序列最小的和还可能存在于前缀和.#include<iostream>#include<a...

2018-12-22 16:09:07 176

原创 51Nod1043 幸运号码(动归数位dp)

我们用dp[i][j]表示的是前i位的数字和为j,j最大为9*i  ,前i位每位都是9的时候。   这样假如我们求得了dp[n][1]一直到dp[n][9*n]的数字,那么最终结果就是dp[n][1] * dp[n][1]  +   ... + dp[n][9*n] * dp[n][9*n]  .  但是这里还有一个问题就是,dp[i][j] 表示的是前i位的数字和为j,但是我们知道前面的那个 i...

2018-12-22 11:04:26 243

原创 51nod1021 石子归并(动态规划)

简单模板题#include<iostream>#include<algorithm>#include<cmath>#include<cstring>using namespace std;const int INF=1e9+7;int dp[1005][1005],num[1005];int main(){ int n; c...

2018-12-20 14:08:01 223

原创 51Nod1649 齐头并进(dijkstra)

因为每个小镇之间要么有一条铁路,要么有一条公路,所以火车和汽车不可能出现在同一个小镇上,所以求两次最短路径取最大的就行了。#include<iostream>#include<algorithm>#include<cmath>#include<cstring>using namespace std;const int INF=1e9+...

2018-12-09 12:25:56 192

原创 51Nod1596 搬货物(进位)

2的幂为1和1时,可以进位成2的幂为2。根据这一个技巧,把幂存在数组里面进位即可,最终非0的位都要搬一次。#include<iostream>#include<algorithm>#include<cmath>#include<cstring>using namespace std;const int N=1e6+5;int a[2...

2018-12-09 11:19:06 113

原创 51Nod1521 一维战舰(区间问题)

这道题好难啊!第一次做这种类型的题,不知道从何下手,上网看了很多博客,还是看不懂啊,不过确实有一些帮助,这是一道区间问题。把题目转换一下来做:长度为n的线段,现在要分成若干区间,每添加一个断点就求一次区间可以被分成多少个以d为长度的小区间。例如实例1来说样例111 3 354 8 6 1 11n=11,d=4(因为战舰不能接触,所以要+1)插入断点4,区间被分为两份...

2018-12-09 10:56:47 207

原创 51Nod1489 蜥蜴和地下室(dfs)

这道题的思路真的很难想诶。题解:对于一个蜥蜴来说,他的血线是需要减去了n个a和m个b。那么我们可以列举出每个蜥蜴所有的n和m的可能,记录最终的结果,找到最小的结果即可。因为蜥蜴最多才15个,所有这种暴力的方法是可行的,可以用bfs去实现。先杀死两端的蜥蜴。递归的时候一定要注意,去算第i个蜥蜴时,一定要保证第i-1个蜥蜴是死亡的。这样才能保证当你递归到第i-1个的时候,前面的蜥蜴都是...

2018-12-08 11:32:17 218

原创 51Nod1432 独木舟(贪心)

这道题很简单,思路也很好想,因为一只船最多两个人坐,所以就看最重的人和最轻的人体重加一起是否超过载重,如果超过了,船就只有最重的人坐。#include<iostream>#include<algorithm>#include<queue>#include<vector>#include<cstdio>using names...

2018-12-06 15:57:45 198

原创 51Nod 1428 活动安排问题(贪心+优先队列)

这道题真是折磨死我了。一看就知道是贪心,要排序,然后想了一个多小时,脑子真是越想越乱。冷静冷静冷静!慢慢想,最后想到了一个思路:用结构体存时段,按照起点从小到大排序。让第一个时段的终点进优先队列(从小到大排列)中,如果起点大于队头,就说明可以在同一个教室里面上课,就更新队头。最终队列长度就是所需的教室数。ps:提交用c++11编译器#include<iostream>...

2018-12-06 15:39:34 187

原创 51Nod1417 天堂里的游戏(解方程)

真的这道题我看不出来什么思路,看大佬的代码思路原来just解一个方程而已,有点无语。。。样例的解释很关键有题意可知,不管怎么出硬币,美女要想保证收益,则每次的收益期望是相同的,因此可以列出等式设美女出正面的概率为p,则出反面的概率为(1-p),因此可以列出方程:-a*p+(a+b)/2*(1-p)=-b*(1-p)+(a+b)/2*p;解得p=(a+3b)/(4a+4b);剩下的只需...

2018-12-06 13:55:48 582

原创 1413 权势二进制(无语啊这一题)

看了看题就被权势二进制吓住了,这是啥玩意?但是抛开二进制想想,不就是用只有0和1的数字去组成一个数吗?比如98563最高位必然要用9个1相加得到,结果出来了已经!!!!!!#include<iostream>#include<algorithm>using namespace std;int main(){ int maxx=0,num; cin&...

2018-12-04 17:20:49 164

原创 51Nod1315 合法整数集(位运算)

这道题首先要读懂题。刚开始读的时候不明白or是啥意思,后来历经千辛万苦重要查了很长时间百度才搞明白了or的意思就是‘或’,即位运算符‘|’。运算规则可以看这里C++位运算符(&、 | 、^) 那么这道题要转换成二进制做了。分两种情况:一种是不可能去删除的数,一种是可能要删除的数。1、如果一个数y符合(y|x)>x,则不可能去删除y。即x某一位是0,y集合里面的某个数的...

2018-12-04 17:11:52 228

原创 C++位运算符(&、 | 、^)

位运算符位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示:p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 假设如果 A = 60,且...

2018-12-04 16:02:09 51912 3

原创 51Nod1279 扔盘子(直接模拟过程)

 直接模拟过程。输入井宽的时候稍作处理,使其成为递减序列,然后遍历井宽就行了。#include <algorithm>#include <iostream>using namespace std;int main(){ int n,m,i,j; cin>>n>>m; int a[50005],b[50005]; cin>&...

2018-12-03 13:48:28 154

原创 对lower_bound的理解

头文件:algorithm lower_bound()返回值是一个迭代器,返回指向比key大的第一个值的位置第一个用法:返回值的下标。#include <algorithm>#include <iostream>using namespace std;int main(){ int a[]={1,2,3,4,5,7,8,9}; printf("%d...

2018-12-03 13:34:00 2994

原创 51Nod1278 相离的圆(贪心+lower_bound)

将圆的问题变换成线段的问题,按照左端点排序,如果i的右端点小于j的左端点,那么j之后的圆都和他相离。用lower_bound二分查找找到j,否则会超时。#include<iostream>#include<algorithm>using namespace std;struct node { int l,r,x,R;}a[50005];bool cm...

2018-12-02 17:36:44 199

原创 51Nod1266 蚂蚁(思维误区)

因为每只蚂蚁相遇时都朝相反方向回去。可以这样考虑,相遇时一只蚂蚁向左,一只蚂蚁向右。相遇后,一只蚂蚁向左,一只蚂蚁向右。可以发现其实可以看做两只蚂蚁相遇后不发生任何变化。#include<iostream>#include<algorithm>using namespace std;int main(){ int n,l; scanf("%d%...

2018-12-02 16:22:08 211

原创 51Nod1138 连续整数的和(公式换算)

 设长度为t,初始位置为a,有(2a-1+t)*t/2=n,a=(2n+t-t²)/2t。这一题难在如何缩短遍历的长度。1到sqrt(2*n)。这一点我还没理解#include<iostream>#include<cmath>using namespace std;int main(){ int n,i; cin>>n; int flag...

2018-12-02 12:48:15 351

原创 51Nod1133 不重叠的线段(贪心)

这道题和51Nod1091 线段的重叠(贪心) 这一题很像,同样的思想,如果那一题你理解的话,这道题肯定会写的鸭!#include<iostream>#include<algorithm>using namespace std;struct node{ int x,y;}a[10005];bool cmp(node aa,node bb){ if(aa...

2018-12-02 12:19:52 162

原创 51Nod1095 Anigram单词(map+sort)

这道题思路很简单,用map容器维护,把原有的字符串放入一个map,然后排完序后的字符串放入另一个map容器。第一个map容器作用是判断某字符串是否出现过,第二个字符串作用是记录排序后字符串出现的次数。#include<iostream>#include<algorithm>#include<cstring>#include<map>...

2018-12-02 11:42:10 232

原创 51Nod1094 和为k的连续区间(暴力)

 求出前缀和,后缀和,总和,如果k=总和-前缀和-后缀和,就输出i,j。前缀和后缀和一定要定义成long long类型,不然会溢出。#include<iostream>#include<algorithm>#include<cstring>#include<string>using namespace std;typedef lo...

2018-12-02 11:04:56 298

原创 51Nod1092 回文字符串(LCS)

这道题我现在还很迷,只知道把字符串逆序,然后求两个字符串的LCS,最后字符串的长度减去公共子串长度,就是答案。但是为什么是这样呢?我很迷啊。。。。。。。。。。。。。。。who can tell me?#include<iostream>#include<algorithm>#include<cstring>#include<string>...

2018-12-02 10:13:13 217

原创 string 逆序简单方法

#include<iostream>#include<string>using namespace std;int main(){ string a; cin>>a; string b(a.rbegin(),a.rend()); cout<<b<<endl;} 

2018-12-02 10:05:05 3906 3

secondo-RC-430-LAT1.tar.gz

secondo-RC_430-LAT1.tar.gz secondo代码 secondo数据库

2023-12-28

JPS(Jump Point Search)A*跳点搜索

JPS算法的实现!(C#版本)

2021-08-16

citydata.js

基于vue写的,用于显示中国所有的城市的js配置文件。 value: '北京市', label: '北京市' }, { children: [ { value: '和平区', label: '和平区' }, { value: '河东区', label: '河东区' } 。。。。。。

2020-03-22

pcre-7.0.zip

包含正则表达式pcre-7.0库使用所需的文件 邮箱验证的email.cpp文件以及email.exe文件

2020-03-12

邮箱依赖的jar包.zip

java代码发邮件所依赖的jar包,测试MailUtils,作用是发邮件,底层依赖的是javamail:mail.jar、activation.jar。

2020-01-13

简化数据库操作和简化事务相关操作的jar包

内含mchange-commons-0.2,mysql-connector-java-5.1.13-bin,commons-dbutils-1.4,itcast-tools-1.4,c3p0-0.9.2-pre1这五个jar包,用于简化数据库操作和简化事务相关操作。

2020-01-09

commons.zip

CommonUtils类下uuid生成随机数,ToBean键值对封装到类。包含三个jar包 commons-beanutils和commons-logging和itcast-tools

2020-01-08

2017第八届蓝桥杯大赛个人赛省赛(软件类C/C++)真题(A/B/C)

2017第八届蓝桥杯大赛个人赛省赛(软件类)真题。ps:附带个人答案

2019-03-10

stackC语言代码

stack源代码//顺序栈基本运算算法 #include <stdio.h> #include <malloc.h> #define MaxSize 2 typedef char ElemType; typedef struct { ElemType data[MaxSize]; int top; //栈指针 } SqStack; //顺序栈类型 void InitStack(SqStack *&s) { s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1; }

2018-10-12

空空如也

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

TA关注的人

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