- 博客(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
764
原创 树形dp 入门
以前看过点树形dp,不过全忘了。今天做了一道入门级的简单题,回忆了一下。所谓树形dp就是在一棵树上进行状态转移。有时候他的状态转移方程比普通dp还简单,只不过建图比较麻烦,顺便复习了一下邻接表的用法,真是好久不练就都忘了。 下面是一道最基础的题,要求父节点和儿子节点不能同时选,求最大权值,很明显状态转移方程就是dp[i][1]+=dp[j][0]; dp[i][0]+=max(dp[j][0]
2016-03-13 15:03:59
572
原创 线段树求解区间第k大
具体哪道题目就不说了,区间第k大可以说是很常见的题目。写了一上午线段树终于是记起了一点以前学过的东西。 这里说的是没有修改的区间查询。对于线段树的结构体,一开始搜了一下,说是要按照归并排序的方法去建树,所以说每个节点要记录数组咯??这样的话每个节点还要记一个数组,太麻烦,空间占用也变大了。所以有另一种方法,直接用一个数组,在节点中记录该节点对应的该数组中的范围,这样就可以节省空间。 建好树之后
2016-03-13 12:27:14
1250
1
原创 HDU1494 跑跑卡丁车 --简单DP
因为是DP专题里面的题目,肯定就是DP了,首先注意到在加速的赛段是不会积攒能量的,而跑几圈也就是相当于把赛道给加长了,没什么本质区别,很容易想到递推式,我用的是三维数组,其实可以压缩到一维,首先,第一位代表当前到达的赛段,第二位表示跑完这一段还有几个加速器,第三位表示跑完这一段还有多少能量,明显只跟前一个赛段有关,所以第一维可以去掉,然后加速器可以看成5个能量,加速一次消耗5个能量,最多有14格能
2015-11-23 17:43:23
880
原创 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
1746
原创 http method&header+php+取证分析
0、1、简单的http方法,直接在地址栏定义变量,这样就可以把变量传到页面后端。如果使用post方法要自己写一个网页,挂在本机就可以,然后提交到目的页面。 2、对于http headers,可以改变自己的身份。Firefox下可以直接下一个插件user agent switcher。修改方法很容易,教程很多不赘述。 3、取证分析、这个比较麻烦,,,,可能我做的比较麻烦,首先wireshark捕
2015-11-08 20:53:53
734
原创 hdu 5504 5505
11.8 rigou阿,刚才都写好了结果手贱给关了,还tm没包存。 第一题,水题,注意处理零的情况,不用unsigned也能过,我反正没用。 #include #include #include using 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
522
原创 多校1007(最短路+最小割)
Tricks Device Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1399 Accepted Submission(s): 335 Problem Description Innocent Wu follo
2015-07-22 21:07:11
518
原创 ~~2015山东省省赛总结--by Merc.A
说说今年省赛吧。 从周六开始去山科大开始,(其实一开始我以为是去石油的,结果都跟那边同学说好了,又被人白白鄙视了一顿,题外话。吹了一路的海风导致晚上七点就昏昏欲睡,跟队长在房里睡到八点,然后我就找大脑袋跟鹤爷出去逛(这俩货出门买了点吃的转身就回去炉石了,真是。。),晚上刘老师还给我们说了一下明天的注意。以及白天的热身赛,不得不说,热身赛真是暴露问题了,基本把人品都掉光了,一道高精度的水题
2015-05-10 23:39:10
757
原创 POJ1422二分图匹配
给你一个有向无圈图,伞兵可以沿着路一直走,问最少需要多少伞兵才能把路全走完,就是求最小边覆盖=点数-选定的边。而选定的边就是把有向图拆点之后的最大匹配。。。 果然匈牙利建图是最蛋疼的,然后就是模板了 #include #include int 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
535
原创 hdu1176免费馅饼(数塔)
刚学dp的时候觉得最简单的就是数塔,状态转移方程一眼就看出来了,今天看见这题才知道原来还可以这么出。。。以时间为行,x为列可以建立一个矩阵,求一条最大路径,要注意一开始的位置是在5,所以要是从上往下做要考虑到第一秒只能在4,5,6这三个位置,第二秒是在3,4,5,6,7,一直到第四秒,太麻烦。所以要从下往上推,这样只需找到第零秒,x=5的位置就是答案了,真是给跪了。。 #include #def
2015-04-17 20:05:04
446
原创 hdu1512 monkey king 左偏树
题目大意:有n个猴子,一开始每个猴子只认识自己。每个猴子有一个力量值,力量值越大表示这个猴子打架越厉害。如果2个猴子不认识,他们就会找他们认识的猴子中力量最大的出来单挑,单挑不论输赢,单挑的2个猴子力量值减半,这2拨猴子就都认识了。现在给m组询问,如果2只猴子相互认识,输出-1,否则他们各自找自己认识的最牛叉的猴子单挑,求挑完后这拨猴子力量最大值。 就是一个并查集加左偏树。(左偏树这合并号强大
2015-04-09 23:27:48
705
原创 POJ2240 Arbitrage (Floyd
题意就是要求能否盈利,注意存在自身换自身而且还少换多的情况,直接Floyd过 #include #include #include #include #include using 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
490
原创 POJ3693后缀数组+RMQ
每日,, 只粘代码吧,思路一片混乱,等明天想清楚了再说吧,总之就是后缀数组+RMQ,以及字典序的判断(=。=| wa到哭 #include #include #define rep(i,n) for(int i = 0;i < n; i++) #include #include using namespace std; char s[100010]; #define maxn 100000+1
2015-04-06 20:44:29
504
原创 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
494
原创 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
637
原创 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
587
原创 POJ2774 Long Long Message 后缀数组(裸模板=。=)
省赛加油。 第一次做后缀数组的题,每日一题系列。 裸的后缀数组,讲两个字符串合并,中间加一个其他字符隔断,找出height最大的,且在两个字符串中。 不知道为什么用了两个模板全挂了,连罗穗骞的也不能幸免,明天早仔细研究,智商还是跟不上啊。 #include #include #include using namespace std; const int MAX=210000; in
2015-03-31 22:06:54
636
原创 HDU 4998 Rotate 计算几何
当题意就是一个物体每次绕着一个点旋转一个角度,旋转n次后等价于从开始状态绕一个点旋转一定角度后直接到达最终状态。求这个点的坐标和旋转角度。 当时做的时候就自己yy了一个做法就在那搞,,没想到居然过了,现在来看我都有点佩服自己当时是怎么想的了。 #include #include #define PI 3.1415926535 struct s { double xx,yy; }; s
2014-12-20 16:07:20
636
原创 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
564
转载 hdu1269 tarjan强联通分量
第一次看这种强联通的题,,找了个模板套了一下,这是地址: http://blog.csdn.net/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
471
原创 POJ 1273~Drainage Ditches(网络最大流ek,dinic)
直接上模板吧,个人感觉EK算法比较好理解,dinic看了好久才看懂
2014-10-25 18:43:59
635
原创 FZU2155 盟国 (并查集的虚拟节点)
#include #include int 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
574
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人