摘要: 查壳 [*] '\level' Arch: amd64-64-little RELRO: No RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) ida // main int __cdecl main(int ar 阅读全文
posted @ 2024-04-11 15:18 monyhzc 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 先查壳,只开了 NX [*] '\hellopwn' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) 放进 IDA 反编译。 __int64 阅读全文
posted @ 2024-04-11 12:55 monyhzc 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 题面 题意 树上一点随机游走到另一点距离的期望 样例 Sample.in 4 2 1 2 2 3 3 4 1 4 3 4 View Code Sample.out 4 2 1 2 2 3 3 4 1 4 3 4 View Code 题解 考虑dp,发现我们很多东西不确定。但是u -> v必定会经过l 阅读全文
posted @ 2020-08-03 19:38 monyhzc 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题面 题意 满足两点间路径上所有l,r限制的最优解 样例 Example1.in 4 4 1 2 1 10 2 4 3 5 1 3 1 5 2 4 2 7 Example1.out 6 2 3 4 5 6 7 Example2.in 2 2 1 2 1 3 1 2 4 6 Example2.out 阅读全文
posted @ 2020-07-30 20:40 monyhzc 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 题面 题意 给定一个序列,求一个相邻位奇偶不同、且移动步数最少、字典序最小的方案。 样例 Input: 5 5 3 1 4 2 Output: 5 2 1 4 3 先不管字典序,把每个点插到它应该到的地方,是可以的。 考虑让字典序变小,同时代价不变。 把每个点按移动方向:向左、向右、不动分类。 如果 阅读全文
posted @ 2020-07-27 17:02 monyhzc 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题源 Input 125000000083559510 104166666578080702 Output 848357383 先不管香香鸡是什么,先来推个式子 我们记录钱可能情况钱的总数 答案就是钱的总数除以2^k f[1]=((f[0]*4)%mod+fastpow(2,i-1)%mod)%mo 阅读全文
posted @ 2020-01-15 18:50 monyhzc 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 生成函数OGG就是一个数列A的母函数 比如一个函数G是 那么G就是a的生成函数 如 那么 有什么用呢 阅读全文
posted @ 2020-01-14 20:15 monyhzc 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题源 Input 7 7 8 1 3 2 5 2 4 6 5 6 1 8 1 2 9 5 4 3 3 4 10 3 7 4 Output 1 24 一看就知道是个什么套路 记录每个点的siz , dis。在父子节点间考虑转移。 然后搞了个代码,过了个极水的样例 1 #include<stdio.h> 阅读全文
posted @ 2020-01-14 19:13 monyhzc 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题源 input 4 6 2 1 3 5 1 0 2 1 4 9 1 10 2 10 3 12 output 3 考虑裸的dp O(n^3) 40分 #include<stdio.h> #include<algorithm> #define ll long long #define For(i,a, 阅读全文
posted @ 2020-01-12 20:52 monyhzc 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题源 input 3 2 2 2 2 2 2 1 1 1 1 3 2 2 1 1 2 2 output 2 0 1 把转向前后的路径分成两条,看成两个人向右下方走。 不同的方案只要交换某一段他们的路径就好了 记交点数为cnt 答案为 2 ^( cnt - 1) 暴力 O( n ) 模拟路径记录交点即 阅读全文
posted @ 2020-01-12 19:18 monyhzc 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题源 题面 我们设 f [ i ] 为 E( len(i) ) , ff [ i ] 为 E ( len( i ) ^2 ) , fff [ i ] 为 E( len( i ) ^ 3 ) 由于期望有可加性 所以 E ( i ) = E ( i - 1 ) + E ( 1 ) f[i]=(f[i-1 阅读全文
posted @ 2019-12-19 22:18 monyhzc 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题源 题面 (点号从0开始) 看到是最短路,上个dijkstra 然后发现 500万炸了 我们看样例 发现边权为1或2 如果是2,我们就把它拆成 两条边 上个bfs 写的时候发现有重边 加了个 for(int i=head[u];i;i=edge[i].nxt) if(edge[i].v==v) c 阅读全文
posted @ 2019-12-14 11:49 monyhzc 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题源 题面 1.状压 O( n* 2^n ) 我们记录 f[s]为已经取完 s 时的期望时间 若取到了,加上新取到的概率 不然则加上什么也取不到的概率 Code: #include<stdio.h> #include<string.h> #define For(i,a,b) for(register 阅读全文
posted @ 2019-12-13 18:59 monyhzc 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题源 LELElele01题解 Nantf题解 题面 看到的楼房数肯定是不降的 于是我们考虑上线段树 考虑Query 左边的肯定能一览无余。所以若右边没有左边最高的高,就看不到了;反之则加上右边的答案 考虑Update 如果新增的没有原来的高,卵用没有,把极值改了就好了 如果新增的比原来的高,它左边 阅读全文
posted @ 2019-12-11 11:20 monyhzc 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题源 题面 本题的重点是发现abs( a[ i ] - a[ i-1 ] ) <=1 所以我们分类讨论。相邻转移即可。 然后发现有两维,M掉了 由于只要用到两个相邻的位置,位置那一维滚掉就好了 1 #include<stdio.h> 2 #define int long long 3 #define 阅读全文
posted @ 2019-12-07 10:26 monyhzc 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题源 资产阶级学术权威的题解 题面 使用DP 我们记录 dp[i][j]为 长为i,最大值不超过j的答案 pre[ i ][ j ] = sum( pre[ i ][ k ], k=[ 0 , j ] ) 首先我们会发现它们是一组长度连续增加一,且相邻两个序列只有一个数不一样(如下图) 由于保证字典 阅读全文
posted @ 2019-12-06 20:35 monyhzc 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 资产阶级学术权威的题解 显然这是一道数学题 我们可以 大力猜结论 用心推式子 显然如果不管限制,答案是 π Mi 我们发现肯定要减一个东西 显然两个数的答案可以合并,考虑只有两个数 1.若 Mi Mj 互质: 显然 { 0%Mj , 1%Mj ,2%Mj ... , (Mi-1)%Mj }={ 0 阅读全文
posted @ 2019-09-20 17:37 monyhzc 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题源 神犇题解: 吊打上面那位的神犇的题解 题面: 先看题: 莫比乌斯反演 ?! 一般的人看到 莫比乌斯反演 果断弃疗。 但是,细心一点,你会看到: n*m ... n*m ... 式子和n*m有毛子关系?不管,打个表。 还真是 n*m ! AC代码: 但为毛是 n*m 呢? 显然,根据打表结论,易 阅读全文
posted @ 2019-07-26 15:05 monyhzc 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题源 神犇题解 题意略. 显然,我们为了排列数 O(1) 查,先预处理阶乘和阶乘的逆元。 然后,看到 0 <= n <= 20 , 发现邻接表存图十分的 美妙 。 推荐用这个很像状压的存图方式: 现在我们来考虑转移, 定义 dp [ fettle ] 为 “已取fettle状态个点” 同时 “已知与 阅读全文
posted @ 2019-07-24 20:55 monyhzc 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 我们假定您已经阅读了右侧详细的博客: 戳我 本文仅限于Windows系统下讨论。 0. 数据生成 可以暴力rand,也可以卡到数据范围顶部。 例: #include<stdio.h> #include<windows.h>#include<time.h> signed main(){ srand(t 阅读全文
posted @ 2019-07-22 17:09 monyhzc 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题源 假设我们已经知道了EK的写法,考虑 玄学 优化。 主要慢在一个地方,如果一次尝试寻找增广路没有鸟用, 那就真的没有鸟用了。 显然我们可以钦定它一直增广直到不能继续为止。 何时无法继续?不连通就停。 BFS判断是否联通: 1 bool bfs(){ 2 memset(dis,-1,sizeof( 阅读全文
posted @ 2019-07-19 21:35 monyhzc 阅读(110) 评论(0) 推荐(0) 编辑