接下来的学习规划
前言转专业结束也有一个星期了,进入了计算机学院,也算是完成了一个阶段性的目标吧(有空再写一贴)。打算学习一些技术栈了。大二上册需要补很多课,也许抽不出时间。。 开发还是想学后端。计划是先学习java,跟着cs61b做一些proj。因为61b也有对于python过渡的铺垫,而且我也没系统地学过数据结构。之后再尝试做一做烂大街的项目。前端的话,找不到工再看看。 安全 先把之前的坑给填掉,好多比赛的题目还没有复现。 另外,对于ctf以外的内容还是很欠缺,渗透和攻防这方面之前没有接触过。 最后,还要多练练docker和出题。
Python_语法糖
itertools 全排列和全组合combinations和permutations两者都是itertools中的函数,可以实现生成字符串、字典、列表,元组中的排列和组合后的元素,形式为元组。先从itertools中引入。 123456789from itertools import combinations,permutations# 语法为combinations(iterable,元素个数)——# permutation中,元素个数不写则默认为全部n,m = map(int,input().split())l = [str(x) for x in range(1,n+1)]for i in combinations(l,m): print(' '.join(i))#全组合for j in permutations(l): print(' '.join(j))#全排列 另外,全排列和全组合也可以通过dfs实现 12345678910111213141516171819202122232425262728def...
从回文日期学习datetime
先放上两种做法 1234567891011121314151617181920212223242526#思路是对年代进行迭代,进行回文操作后查看日期是否合法from datetime import datetimedef judge(y,m,d): try: datetime(y,m,d) return True except ValueError: return Falset1 = input()t2 = input()start = int(t1[:4])end = int(t2[:4])cnt = 0for y in range(start,end+1): y_str = f'{y:04d}' m = int(y_str[::-1][:2]) d = int(y_str[::-1][2:]) if judge(y,m,d): res =...
十六届蓝桥杯PythonA组复盘
A简单的暴力枚举 1234567cnt = 0for r in range(0,256): for g in range(0,256): for b in range(0,256): if b > g and b > r: cnt += 1print(cnt) B当时比赛的时候卡了很久wwww,看了题解也不会。。。 C模运算的使用,但是也可以无脑拓宽长度,这样就不用取模了 1234h,w = map(int,input().split())a = '2025'*9999for i in range(h): ...
npcc决赛web_wp
这周末有蓝桥杯和大英赛,抽空看看.tgctf也没什么时间看:( webezphpfilter chain 签到12345678910<?phpclass A { public $a; public $b;}$test = new A();$test->a = null;$test->b = &$test->a; // 创建引用echo serialize($test); & 符号表示引用(Reference),它可以让两个变量指向同一个内存地址。当我们用 &$test->a 时,表示直接操作对象属性的内存地址 sakivite文件任意读漏洞 2025-30208 ?raw?? | ?import&raw?? 2025-31125 ?raw?import | ?inline&import 2025-31486 ?.svg?.wasm?init成功了,只有这个不依赖于@fs pin码生成1.username 读...
xy2025部分wp
webSign_in类同sekaictf_2022的bottle poem .///..///..///secret.txt绕过检查 得到cookie加密密钥:Hell0_H@cker_Y0u_A3r_Sm@r7 更改cookie赋予逻辑,本地运行得到admin的cookie: "!w7ggni+OONpuUroWJe5pEGGQSE1aUyCHrz6RoSzaQEA=?gASVGQAAAAAAAABdlCiMBG5hbWWUfZRoAYwFYWRtaW6Uc2Uu" 发现是sha256签名加密.尝试进行pickle反序列化,将回显放在http头 1234567891011121314151617181920212223242526272829303132import os, hmac, hashlib, base64, pickle, requestsdef tob(s, enc='utf8'): if isinstance(s, str):...
01背包学习
通过这个问题开始对DP算法进行学习个人的理解就是只归不递想要v时大,就要v-1时大,想要v-1时大,就要…首先将问题分为两个角度 状态表示$f(i,j)$i 表示了前i个物品而j是其中的一个限制维度 表示了什么集合?所有只考虑前i个物品,且总体积不超过j的选法的集合 具有什么属性?集合中的最大值 状态计算划分方法需要做到:不重复,不遗漏本题可以以j为界一边为所有不选择第i个物品的方案:即$f(i-1,j)$另一边为选择第i个物品的方案:变化的部分为前面的选择,不变的为现在加上了i.所以想让全部的价值最大,应该为让前面变化的部分价值最大那我们就对前面的部分进行进一步分析.首先$V_总 <= j$ 那也就是说$$V_前 <= j-V_i$$那么我们就知道了子问题所考虑个数和限制条件,即求$f(i-1,j-v_i)$,最后加上$w_i$就是总的最大值了.最后两个方案取最大 最终代码1234567891011n,v = map(int,input().split())grid = []for _ in range(n): ...
Python语法辨析与补充
Python函数与语法统计元素相关函数count的使用.l.count(1) set()123456789101112131415161718192021222324252627282930313233s = set() # 空集合s = set([1, 2, 3]) # 从列表创建 → {1, 2, 3}s = set("hello") # 从字符串创建 → {'h', 'e', 'l', 'o'}s = {1, 2}s.add(3) # 添加单个元素 → {1, 2, 3}s.update([4, 5]) # 批量添加元素 → {1, 2, 3, 4, 5}s.remove(3) # 删除元素,若不存在会报 KeyErrors.discard(3) #...
英文数字计数
本题需要掌握的是各个位上的数字提取和分类讨论的能力首先在千位以下的数字,需要列出的是3种情况。1-10 11-20 然后10-100这是由英文的命名规则所决定的.很显然,小于100的数字我们都可以解决了.1-10,10-20使用列表.大于20的数字,分离十位和个位即可.大于100的时候,整百还是好处理的.提取百位个数+7.然后100和1000也可以单独拿出来.剩下的就是__hundred and __ 的形式 .那么方法就是提取百位//100 剩下的十位使用刚才的规则.代码如下: 123456789101112131415161718192021a1 = [0,3,3,5,4,4,3,5,5,4,3]a2 = [0,6,6,8,8,7,7,9,8,8,6]a3 = [0,3,6,6,5,5,5,7,6,6,7]def f(x): if x <= 10: return a1[x] elif x <= 20: return a2[x-10] return a3[x//10] + a1[x%10]def g(x): ...