- 博客(23)
- 收藏
- 关注
原创 蓝桥杯 操作格子
我也是醉了,做这个题目的时候一直显示运行错误,我一直傻傻改了半个多小时的代码,反反复复,最后结果却是数据不够大,真是被自己坑到了,说出来都是泪啊#includeconst int MAX=1000000;int min[MAX],a[MAX];long long sum[MAX];int max(int a,int b){ return a>b?a:b;}void pushup(i
2015-03-31 20:29:24
386
原创 hdu2059龟兔赛跑
额,发现自己有点笨了,这道题实际上是在网上看了别人的思想才做的这道题目的大概就是乌龟和兔子赛跑,乌龟有电动车和充电站电动车有电的情况下是vt1 m/s,没电的情况下是vt2 m/s 每次充电花费time s,每次充满电可以走C米路上有N个充电站,乌龟可以选择充电或者不充电,兔子一直以恒定的速度vr m/s跑,求出来乌龟所用的最少时间和兔子时间比较每次求出从0到第j充电站是充满电的情
2014-12-13 20:38:16
361
原创 hdu2571命运
题目的大概意思就是给你一个n行的数组,每行有m个数,求出来到第n行m个数的最大和,每次可以走的地方就是【i+1】【j】和【i】【j*k】这些地方想要知道到最后一个地方最大sum值就必须的知道上一行的值或者同行的成倍数的值到底哪一个大所以从第一行的第一个数开始算,依次求出来一行里的每一列的最大值,每行的最大值无非就是上一行的对应相同列的数,或者是同行j%p==0,或者是j-1三个里的最大值加
2014-12-13 11:42:04
305
原创 hdu2084数塔
和我一周之前所做的题目很相似,这个是一道简单的dp问题想知道从第N行到最后一行的最大sum,就得知道从n-1行到最后一行的最大sum值,这样下来就是一个逆推的过程从最后一行开始求,一行一行往上求,直到第一行,但是刚开始需要把sum这个数组的值全部赋成数塔的最后一行的值#includeconst int MAX=101;int max(int c,int d){ return c
2014-12-13 10:32:25
308
原创 hdu1231最大连续子序列
依旧是动态规划的问题,给你一个长度为n的数组,求里面子序列的最大和,然后输出这个最大子序列的和,子序列开始的数和子序列结束的数这道题和1003的那道题的做法很相似,我就是在道题的代码基础上改的,这个要判别一下,整个数组是不是全部为负数,若是,则sum=0我的想法是最后判定一下它的sum值,若小于0,直接输出0和数组的第一个数和最后一个数输入6-2 11 -4 13 -5 -2
2014-12-06 10:35:29
352
原创 hdu1003 最大连续子序列和
简单的动规问题,题目的大概意思就是给一个数组,求这个数组子序列的最大值这个题目其实不需要建立数组,设一个变量sum来存储它的值,当这个sum值小于0的时候就把它置零然后再用两个变量来保存开始和结束的子序列的下标当开始做的时候我还使用了二维数组的做法,使用了三层for循环,结果可想而知,超时后来用这个方法提交的时候,好几次都是格式错误,比较坑了输入15 6 -1 5 4
2014-12-03 18:35:43
444
原创 POJ1050To the Max
这道题目的 意思大概就是,给你一个二维数组,形成一个矩阵,求出来最大连续的和,这个和的形成也是来源于其中的一个子矩阵这道题目我是看了别人的思想才做出来的,就是先求出每行的和,逐次保存,然后再求出任意从第i行到第j列的和,有一个边界的保存,就是当sum值小于零了,就把sum置零输入40 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0
2014-12-01 20:21:52
474
1
原创 POJ2479Maximum sum
刚做完2593这道题目,就做了这道题,相同的代码就A过了只不过把测试案例的个数增加了,这道题目依旧是求两个不相交子序列的和的最大值输入1101 -1 2 2 3 -3 4 -4 5 -5输出13#includeconst int max=100010;int main(){ int n,a[max],maxl[max],m; scanf("%d",&
2014-11-29 14:23:03
325
原创 POJ2593 Max Sequence
动态规划问题题目的大体意思就是给你一个长度为N的数组,然后求两个不相交的子序列的相加的最大和刚开始我没有想到分别从前后求子序列的和,并且保存最大值,后来看了别人的解题报告,忽然懂得了先从i=0开始求从0到N-1的子序列的和,保存最大值,然后从N-1开始求右边最大子序列的和然后设一个变量用来保存两个子序列和,输出最大值。自己写代码的时候有一点被自己坑到了,直接从N-1到0,其实到
2014-11-29 14:14:54
340
原创 POJ1163 The Triangle
这是一道很简单的动态规划的题目,就是求三角形从上至下的一条最长路径之和,每次都只能选择自己右下或者左下的两个点来走刚开始输入一个N 表示是一个直角边长为 N的三角形要求第一行到最底下的最长路径,就得知道从第二行到最底下的最长路径,故依次类推,推导到最后一行,实际上就成了一个递归当在最后一行的时候就是maxsum[i][j]=D[i][j],其余的则是maxsum[i][j] =max
2014-11-29 13:31:05
244
原创 POJ1458 Common Subsequence
典型的动态规划问题这道题目的大概意思就是给你两个字符串,比较一下两个字符串里有多少个字符是相同的 这道题目我用的方法是构造一个矩阵,行是s1,列是s2 ,当两个字符的前一个字符相等的时候就maxlen[i][j]=maxlen[i-1][j-1]+1.即对角线上的上面一个的值加1,否则就比较本身上方或者左方的最大值,然后存储max的值,这样对角线的最后一个值就是最大值输入abcfb
2014-11-29 13:28:14
255
原创 POJ 1781 In Danger
这道题的大概意思就是一个古老的无聊杀人游戏没第二个人都要死去但是 Josephus不想死去,想逃离自己被杀的命运由题意可知第一轮的时候,偶数的人全部被杀掉有10个人的时候,第一轮被杀死后剩下的有3,7,1,9JOS(10)=5原来的编号则变为2*i-1JOS(20)=2*JOS(10)-1依次类推的话就是JOS(5*(2的M次方))=JOS(2的M+1次方)+1那么
2014-11-23 17:33:44
375
原创 hdu1540
这道题的意思就是,给你N个村庄,然后接下来有M个测试案例当输入为D i的时候就是第i个村庄已经被破坏了当输入为Q i的时候就是求连带这个村庄的最大连续数值当输入为R的时候,#include#includeconst int N=100000;int lsum[N<<2];int rsum[N<<2];int s[N];int ms[N];int sd;int x,sum
2014-11-01 15:58:35
488
原创 poj3648
A Simple Problem with IntegersX M输入一个长度为X的数组,然后接下来有M个测试案例当为Q A B 的时候就是查询从A-B这个区间的sum值当为CA B C 的时候就是从A-B这个区间所有的节点都加上C,更新整个数组 10 51 2 3 4 5 6 7 8 9 10Q 4 4Q 1 10Q 2 4C 3 6 3Q 2
2014-10-30 11:05:40
320
原创 hdu1754
HDU1754I Hate It给定一个数组,当输入Q A B的时候是查询从A-B的区间的最大值,当输入为U A B 的时候,就是把第A个数换成B,然后更新数组5 61 2 3 4 5Q 1 5U 3 6Q 3 4Q 4 5U 2 9Q 1 55659
2014-10-30 11:03:33
344
原创 POJ3264
POJ3264 Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 35520 Accepted: 16709Case Time Limit: 2000MSDescriptionFor th
2014-10-26 17:31:12
263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人