- 博客(37)
- 收藏
- 关注
原创 pwnable.kr write up 之 sample login
作为一个萌新,能看懂真是不容易。这题很明显是一道溢出题,auth函数中的memcpy有溢出。因为把input复制到v4上,v4在栈中,长度为8.[bp-8h]。然而题目要求的输入不能超过12位,这样你只能够得到ebp,无法一次性把ret addr也给改了,这就很蛋疼了。(需要注意的是题目要求输入的是经过base64encode之后的字符)。而我们想要的bin/sh在程序中已经有了,就在corr
2016-05-22 19:21:40
754
原创 树形dp 入门
以前看过点树形dp,不过全忘了。今天做了一道入门级的简单题,回忆了一下。所谓树形dp就是在一棵树上进行状态转移。有时候他的状态转移方程比普通dp还简单,只不过建图比较麻烦,顺便复习了一下邻接表的用法,真是好久不练就都忘了。下面是一道最基础的题,要求父节点和儿子节点不能同时选,求最大权值,很明显状态转移方程就是dp[i][1]+=dp[j][0];dp[i][0]+=max(dp[j][0]
2016-03-13 15:03:59
563
原创 线段树求解区间第k大
具体哪道题目就不说了,区间第k大可以说是很常见的题目。写了一上午线段树终于是记起了一点以前学过的东西。这里说的是没有修改的区间查询。对于线段树的结构体,一开始搜了一下,说是要按照归并排序的方法去建树,所以说每个节点要记录数组咯??这样的话每个节点还要记一个数组,太麻烦,空间占用也变大了。所以有另一种方法,直接用一个数组,在节点中记录该节点对应的该数组中的范围,这样就可以节省空间。建好树之后
2016-03-13 12:27:14
1232
1
原创 HDU1494 跑跑卡丁车 --简单DP
因为是DP专题里面的题目,肯定就是DP了,首先注意到在加速的赛段是不会积攒能量的,而跑几圈也就是相当于把赛道给加长了,没什么本质区别,很容易想到递推式,我用的是三维数组,其实可以压缩到一维,首先,第一位代表当前到达的赛段,第二位表示跑完这一段还有几个加速器,第三位表示跑完这一段还有多少能量,明显只跟前一个赛段有关,所以第一维可以去掉,然后加速器可以看成5个能量,加速一次消耗5个能量,最多有14格能
2015-11-23 17:43:23
865
原创 web for pentester 之xss 篇
1、很明显了,地址栏里name=hacker。直接name=alert(1)。2、还是先试一下alert(1),,输出只有alert,script不见了,先换大小写试一下,成功了。。3、还是先试一下alert(1),发现还是只输出了alert(1),换大小写也没有用,我的和呢,肯定是后台被注释掉了,那就这样pt>alert(1)ript>。这样他注释掉一个我们还有一个。4、你会
2015-11-09 17:52:19
1734
原创 http method&header+php+取证分析
0、1、简单的http方法,直接在地址栏定义变量,这样就可以把变量传到页面后端。如果使用post方法要自己写一个网页,挂在本机就可以,然后提交到目的页面。2、对于http headers,可以改变自己的身份。Firefox下可以直接下一个插件user agent switcher。修改方法很容易,教程很多不赘述。3、取证分析、这个比较麻烦,,,,可能我做的比较麻烦,首先wireshark捕
2015-11-08 20:53:53
726
原创 hdu 5504 5505
11.8rigou阿,刚才都写好了结果手贱给关了,还tm没包存。第一题,水题,注意处理零的情况,不用unsigned也能过,我反正没用。#include#include#includeusing namespace std;#define inf 1<<64 long long a[100];int main(){ int T,n,flag=0,k; long lon
2015-11-08 18:36:29
508
原创 多校1007(最短路+最小割)
Tricks DeviceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1399 Accepted Submission(s): 335Problem DescriptionInnocent Wu follo
2015-07-22 21:07:11
511
原创 ~~2015山东省省赛总结--by Merc.A
说说今年省赛吧。 从周六开始去山科大开始,(其实一开始我以为是去石油的,结果都跟那边同学说好了,又被人白白鄙视了一顿,题外话。吹了一路的海风导致晚上七点就昏昏欲睡,跟队长在房里睡到八点,然后我就找大脑袋跟鹤爷出去逛(这俩货出门买了点吃的转身就回去炉石了,真是。。),晚上刘老师还给我们说了一下明天的注意。以及白天的热身赛,不得不说,热身赛真是暴露问题了,基本把人品都掉光了,一道高精度的水题
2015-05-10 23:39:10
751
原创 POJ1422二分图匹配
给你一个有向无圈图,伞兵可以沿着路一直走,问最少需要多少伞兵才能把路全走完,就是求最小边覆盖=点数-选定的边。而选定的边就是把有向图拆点之后的最大匹配。。。果然匈牙利建图是最蛋疼的,然后就是模板了#include#includeint mp[210][210],d[210],used[210];int m,n;int f(int x){ for(int i=1;i<=n;
2015-04-20 20:46:27
521
原创 hdu1176免费馅饼(数塔)
刚学dp的时候觉得最简单的就是数塔,状态转移方程一眼就看出来了,今天看见这题才知道原来还可以这么出。。。以时间为行,x为列可以建立一个矩阵,求一条最大路径,要注意一开始的位置是在5,所以要是从上往下做要考虑到第一秒只能在4,5,6这三个位置,第二秒是在3,4,5,6,7,一直到第四秒,太麻烦。所以要从下往上推,这样只需找到第零秒,x=5的位置就是答案了,真是给跪了。。#include#def
2015-04-17 20:05:04
434
原创 hdu1512 monkey king 左偏树
题目大意:有n个猴子,一开始每个猴子只认识自己。每个猴子有一个力量值,力量值越大表示这个猴子打架越厉害。如果2个猴子不认识,他们就会找他们认识的猴子中力量最大的出来单挑,单挑不论输赢,单挑的2个猴子力量值减半,这2拨猴子就都认识了。现在给m组询问,如果2只猴子相互认识,输出-1,否则他们各自找自己认识的最牛叉的猴子单挑,求挑完后这拨猴子力量最大值。就是一个并查集加左偏树。(左偏树这合并号强大
2015-04-09 23:27:48
689
原创 POJ2240 Arbitrage (Floyd
题意就是要求能否盈利,注意存在自身换自身而且还少换多的情况,直接Floyd过#include#include#include#include#includeusing namespace std;int n;mapa;queueq;double d[35],mp[35][35];int used[35],cnt[35];void floyd() //Floyd{
2015-04-08 21:36:37
486
原创 POJ3693后缀数组+RMQ
每日,,只粘代码吧,思路一片混乱,等明天想清楚了再说吧,总之就是后缀数组+RMQ,以及字典序的判断(=。=| wa到哭#include#include#define rep(i,n) for(int i = 0;i < n; i++)#include#includeusing namespace std;char s[100010];#define maxn 100000+1
2015-04-06 20:44:29
497
原创 Palindrome后缀数组判断回文子串
求一个字符串的最长回文子串,很明显,把这个串倒过来加到原来的串后面,后缀数组即可,注意中间用1隔开,最后补0,。要注意sa[i-1]和sa[i]要在两个串中且对应位置正好满足关系 : sa[i-1]+sa[i]+height[i])== 2*n+1。这个就很明显了#include#include#include#define rep(i,n) for(int i = 0;i < n; i
2015-04-02 15:35:37
486
原创 Distinct Substrings后缀数组
说好的每日一题,,今天的第二道后缀数组,睡觉前看了一眼,觉得比较简单,果然过了。求不相同的子串的个数,很明显,求出相同的有几个,即height的和,用总的情况n*(n-\+1)/2减去就好了#include#include#include#define rep(i,n) for(int i = 0;i < n; i++)using namespace std;const int
2015-04-01 21:45:28
615
原创 POJ3261Milk Patterns 后缀数组の变形
每日一题。。这几天开始搞后缀数组,果然关键时候智商果然不够用,想到现在才有点眉目,虽然这种题千篇一律的模板,但是理解了才能运用的比较好,估计明天我就能自己写模板了。。题意很明显,k个相同的子串,就是要在求height的时候多判断一下,过了。#include#include#include#define rep(i,n) for(int i = 0;i < n; i++)usin
2015-04-01 18:27:06
582
原创 POJ2774 Long Long Message 后缀数组(裸模板=。=)
省赛加油。第一次做后缀数组的题,每日一题系列。裸的后缀数组,讲两个字符串合并,中间加一个其他字符隔断,找出height最大的,且在两个字符串中。不知道为什么用了两个模板全挂了,连罗穗骞的也不能幸免,明天早仔细研究,智商还是跟不上啊。#include#include#include using namespace std;const int MAX=210000;in
2015-03-31 22:06:54
629
原创 HDU 4998 Rotate 计算几何
当题意就是一个物体每次绕着一个点旋转一个角度,旋转n次后等价于从开始状态绕一个点旋转一定角度后直接到达最终状态。求这个点的坐标和旋转角度。当时做的时候就自己yy了一个做法就在那搞,,没想到居然过了,现在来看我都有点佩服自己当时是怎么想的了。#include#include#define PI 3.1415926535struct s{ double xx,yy;};s
2014-12-20 16:07:20
627
原创 hdu3001Travelling 状态压缩dp
给你一个图,从一个点到另一个点有路,需要花费。起点是任意的,要求每个点最多走两次,把所有的点遍历完一遍,费用最小。刚开始还以为是最小生成树,仔细一看,好吧,智商确实捉急了。每个点只有三种状态,最多十个点,状态压缩吧。最多3^10=59049种状态,第二次写这个,,想了一晚上,好歹是过了。 dp[i+s[k]][k+1]=min(dp[i+s[k]][k+1],dp[i][j]+a[j][k+1
2014-11-26 21:05:30
547
转载 hdu1269 tarjan强联通分量
第一次看这种强联通的题,,找了个模板套了一下,这是地址: http://blog.youkuaiyun.com/jokes000/article/details/7538994。膜拜一下。#include #include #include #include using namespace std;#define MIN(a,b) ((a)<(b)?(a):(b))#define N 1000
2014-11-25 20:16:13
458
原创 POJ 1273~Drainage Ditches(网络最大流ek,dinic)
直接上模板吧,个人感觉EK算法比较好理解,dinic看了好久才看懂
2014-10-25 18:43:59
629
原创 FZU2155 盟国 (并查集的虚拟节点)
#include#includeint father[3000000],a[1000010],b[1000010];int k;int find(int x){ if(x==father[x]) return x; father[x]=find(father[x]); return father[x];}int main(){ char c;
2014-08-25 19:48:27
560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人