- 博客(88)
- 收藏
- 关注
原创 Piggy-Bank 完全背包
2123: Piggy-Bank题目描述Before ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). T...
2019-06-20 15:11:16
276
原创 从内到外的螺旋遍历 :蛇形矩阵
给定一个包含 nxn个元素的矩阵,请按照逆时针螺旋顺序,返回矩阵中的所有元素。(蛇形矩阵:小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字)示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [5,6,3,2...
2019-06-05 20:49:34
2050
原创 leetcode 螺旋矩阵
给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]...
2019-06-05 20:42:00
390
原创 最长公共子序列
最长公共子序列问题题目描述Find a longest common subsequence of two strings.输入First and second line of each input casecontain two strings of lowercase character a…z. There are no spaces before, inside or a...
2019-06-04 09:24:17
147
原创 最大公约数
#include<iostream>#include<cstring>using namespace std;int gcd(int a,int b){ if(a==0) { return b; } else if(b==0) { return a; } else{ return gcd(b,a%b); } }int main(...
2019-05-22 18:51:00
152
原创 进制转换
1942: 数制转换时间限制:1 Sec内存限制:32 MB题目描述求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。输入输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换...
2019-05-22 18:50:22
176
原创 进制转换:十进制-》n进制
1941: 又一版 A+B时间限制:1 Sec内存限制:32 MB题目描述输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。输入输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。当m为0时输入结束。输出输出格式:每个测试用例的输出占一行,输出A+B的m进...
2019-05-22 18:47:25
726
原创 数值转换复习
1906: 特殊乘法时间限制:1 Sec内存限制:32 MB题目描述写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5输入两个小于1000000000的数输出输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。...
2019-05-22 18:43:31
148
原创 恶搞指数
1021: 恶搞指数题目描述小明的朋友过生日,小明准备了一件礼物,不过小明想恶搞一下他的朋友,所以他准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。用()表示一个盒子,B表示礼物,小明想让你帮他算出恶搞指数,即最少需要拆多少个盒子才能拿到礼物。输入输入包含多组测试数据。每组测试数据是一个长度不大于1000,只包含(,...
2019-05-11 00:06:41
695
原创 出栈合法性
1094: 出栈合法性题目描述已知自然数1,2,...,N(1<=N<=100)依次入栈,请问序列C1,C2,...,CN是否为合法的出栈序列。输入输入包含多组测试数据。每组测试数据的第一行为整数N(1<=N<=100),当N=0时,输入结束。第二行为N个正整数,以空格隔开,为出栈序列。输出对于每组输入,输出结果为一行字符串。如给出的序列是合法...
2019-05-11 00:04:23
2320
原创 带括号的表达式计算
题目描述算数四则运算的规则是1)先乘除,后加减;2)从左算到右;3)先括号内,后括号外。由此,算式4+2*3-10/5的计算顺序为4+2*3-10/5=4+6-10/5=4+6-2=8。给定一个以“#”作为结束符的算式,求出算式的结果。输入以“#”结尾的表达式,运算数为正整数。每个表达式占一行。输出输出表达式运算的结果。样例输入4+2*3-10/5#3...
2019-05-10 23:56:52
2595
原创 计算表达式
题目描述对于一个不存在括号的表达式进行计算输入存在多种数据,每组数据一行,表达式不存在空格输出输出结果样例输入6/2+3+3*4734/2-56*2-7*8样例输出18199#include<iostream>#include<stack>#include<cstring>#include<st...
2019-05-10 23:54:03
228
原创 快速排序:三个注意点
O(n*logn)的快排,交换啊a[i]和a[j]之前,一定要保证i<j每次递归都要保证l<r,防止数组越界#include<iostream>#include<algorithm>using namespace std;int a[100]; int n;//三个注意点,每个都必须要写对,否则就报错,一定要保证l<r,i<...
2019-05-06 20:59:25
505
原创 Bidirectional LSTM-CRF Models for Sequence Tagging 阅读有感
BiLSTM+CRF 通吃序列标注任务,这些任务包括:词性标注POS(Part of speech),名词词组分块(NP-CHUNKING)和命名实体识别。命名实体识别的一个商业应用:识别用户搜索句子中的商品(实体,使用用户查询句子训练),然后提供该商品的广告。这个点子牛逼哦,问答机器人那可以试着做一个应用连接百度搜索。此篇论文之前的序列标注任务,多使用线性统计模型,如隐马尔科夫HMM,最...
2019-04-25 20:06:29
560
原创 表达式求值 自己实现的坑
表达式求值题目描述:对于一个不存在括号的表达式进行计算输入:存在多种数据,每组数据一行,表达式中数字后存在空格输出:输出结果样例输入:6 / 2 + 3 + 3 * 4样例输出:18wc,这个题,自己实现有很多很多坑1.运算符优先级,自己的优先级小于自己!矩阵0多1少2. 如果表达式中有空格,一定使用gets读取表达式!!3.注意可能会需要使用do...
2019-02-28 21:49:00
284
原创 高精度减法
高精度减法题目描述输入两个正整数,输出第一个数减去第二个数的差,可能是整数,负数或0。输入输入文件只有两行,第一行一个整数x,第二行一个整数y。其中0<=x<=10200,0<=y<=10200输出输出文件有1行,第一个数减去第二个数的差。高精度减法注意两点:1.大数减小数2.消除前导0#include<stdio.h>...
2019-02-28 21:47:14
409
原创 高精度乘以高精度模板
高精度乘法:高精度乘以高精度题目描述 高精度乘法。输入两个正整数,求它们的积。输入 两行,每行为一个高精度整数,长度不超过255。输出 一行,相乘的结果。做题一定要注意边界情况。#include<stdio.h>#include<string.h>using namespace std;char str1[265];c...
2019-02-24 23:16:33
1130
原创 高精度乘以低精度模板
高精度乘低精度整数 高精度乘低精度整数:输入一个高精度整数和一个低精度整数,求它们的乘积。输入 两行,第一行为高精度整数a,长度不超过255;第二行低精度整数m。输出 一行,相乘的结果。做题一定要注意边界情况。这题的边界就是0。#include<stdio.h>#include<string.h>using namespac...
2019-02-24 23:15:22
1665
1
原创 高精度加法模板
高精度加法 题目描述 高精度加法。输入两个正整数,求它们的和。输入 两行,每行为一个高精度整数(非负数,长度不超过255)输出 一行,相加的结果。#include<stdio.h>#include<string.h>using namespace std;char str1[265];char str2[265]...
2019-02-24 23:14:26
197
转载 什么时候用bfs什么时候用dfs
1.BFS是用来搜索最短径路的解是比较合适的,比如求最少步数的解,最少交换次数的解,因为BFS搜索过程中遇到的解一定是离根最近的,所以遇到一个解,一定就是最优解,此时搜索算法可以终止。这个时候不适宜使用DFS,因为DFS搜索到的解不一定是离根最近的,只有全局搜索完毕,才能从所有解中找出离根的最近的解。(当然这个DFS的不足,可以使用迭代加深搜索ID-DFS去弥补)2.空间优劣上,DFS是有优势的...
2019-02-22 17:39:37
981
转载 彻底搞懂错排问题
问题:现有10本书按照顺序摆放,现要求重新排列,使得新的书的顺序中每一本书都不在原来的位置,求有多少种排列方式?这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题OK,现在详细分析这个问...
2019-02-21 14:04:21
6423
12
转载 无穷大INF尽量设置成0x3f3f3f3f 就是0x四个3f 而不是0x7ffffff
在算法竞赛中,我们常常需要用到一个“无穷大”的值,对于我来说,大多数时间我会根据具体问题取一个99999999之类的数(显得很不专业啊!)在网上看别人代码的时候,经常会看到他们把INF设为0x7fffffff,奇怪为什么设一个这么奇怪的十六进制数,一查才知道,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一...
2019-02-21 10:39:54
574
原创 piggy bank 完全背包
题目描述Before ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). The idea behind is ...
2019-02-20 23:00:57
221
原创 珍惜现在,感恩生活 多重背包
题目描述急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?------------------------------------------------------------------------...
2019-02-20 22:54:19
131
原创 01背包 空间优化
01背包 空间优化O(N)版本 #include<stdio.h>#include<algorithm>#define INF 0x7fffffffusing namespace std;struct coin{ int v; int w;}list[505];int dp[10005];int main(){ int e,f; while...
2019-02-20 22:22:26
252
原创 采药 01背包
采药题目描述辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总...
2019-02-19 22:30:34
226
原创 Greedy Tino 动态规划
Greedy Tino题目描述蒂诺写了很长的故事。但!中文... 所以我必须直接告诉你这个问题,并抛弃他漫长的故事。那就是蒂诺想要携带一些带有“携带杆”的橘子,并且他必须使携带杆的两侧重量相同。每个橙子都有它的重量。所以贪婪的蒂诺想要知道他能承受的最大重量。输入第一行输入包含数字t,这意味着有t个测试数据。对于每个测试用例,第一行包含数字n,表示橙子的数量。第二行包含n个数字...
2019-02-19 22:26:47
283
原创 搬寝室 动态规划
题目描述搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正...
2019-02-19 22:25:41
175
原创 拦截导弹 最长上升子序列 LIS
题目描述某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。输入每组输入有两行,第一行,输入雷...
2019-02-18 22:38:54
335
原创 错排问题 递推
题目描述大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉...
2019-02-18 22:37:51
418
原创 上楼梯问题 典型递推
题目描述现在有 N 阶楼梯,小明上楼梯时一次只能上 一阶 或者 两阶 ,小明想知道上完这 N 阶楼梯最多有多少种方法。聪明的程序员们能帮助他算算吗?输入第一行输入一个 T ,表示有T组测试数据,每组测试数据有一个整数N,表示有N阶楼梯。输出输出上完N阶楼梯最多的方法数,每组测试数据占一行。(这里保证正确的结果不超过32位整型的范围) #include<iostre...
2019-02-18 22:36:08
1037
原创 高精度乘法
高精度×高精度有特定的规则,不同于高精度×低精度。高精×低精可以通过简单修改高精度加法实现。高精度乘法实现请观察如下代码。 注意大数类在这种情况下size的修改。#include<stdio.h>#include<string.h>using namespace std;struct bigInteger{ int size; int digit[1...
2019-02-15 23:01:10
124
原创 高精度加法
通过自己实现bigInteger类实现的高精度加法 #include<stdio.h>#include<string.h>using namespace std;/*高精度整数大数bigInteger类 每4位数字为一个单位保存于digit数组中size代表还未占用的单元 以123456789为例 digit[0]=6789digit[1]=234...
2019-02-15 22:57:27
105
原创 分解质因数
求一个数的所有质因数#include<stdio.h>using namespace std;int primeSize=0;//素数只筛到sqrt(n)也是有原因的// 大于sqrt(n)的质因子可能有 ,但是如果有最多只有一个 int prime[100001];int mark[100001];//素数筛预处理 void init(){ prim...
2019-02-15 22:55:30
238
原创 二分求幂 快速幂
二分求幂十进制数字转变成二进制取模运算#include<stdio.h>using namespace std;/*二分求幂 OLogN 比O N 的朴素方法快 把幂数由十进制转成二进制 把简单的一次一次累乘 转化成较少个a^(2^k)相乘 乘法次数大大减少 */ int main(){ int a,b; while(scanf("%d%d",...
2019-02-15 22:52:15
222
转载 printf的一些小知识
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>);其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出;另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的...
2019-02-15 22:23:13
206
原创 枚举小技巧
枚举的时候注意一个情况:如果有三个数需要枚举,但是这三个数符合一个公式,那么枚举的时候只需要枚举出前两个值即可,第三个数的值由公式以及前两个数的值得到。比如百鸡问题。共有三种鸡,三种鸡的数量分别是x、y和z,三种鸡的数量符合式子:x+y+z=100,那么枚举的时候,只用写两层for循环即可达到目的,节省时间开销,优化时间复杂度。很多时候就是因为多写了一层for循环导致程序运行超时。这个问...
2019-02-15 21:04:19
209
原创 素数筛
【问题描述】 输入一正整数n(n<=10000),按顺序输出2到n范围内的所有个位为1的素数prime。prime数组搭配primeSize数字记录素数数量的方法值得学习。#include<stdio.h>using namespace std;//素数集合 int prime[10000];int primeSize=0;int mark[10001];...
2019-02-14 22:36:28
163
原创 最大公约数GCD♥最小公倍数LCM
题目描述给定两个数求最小公倍数和最大公约数。输入输入包含多组样例每行包括两个整数a,b(0<a ,b<=10000); 输出每行两个数输出两个数,第一个数是最小公倍数,第二个最大公约数a和b的最大公约数等于 a%b和b 的最大公约数。a*b=GCD*LCM求模运算。#include<stdio.h>using nam...
2019-02-14 22:31:12
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人