05 2022 档案

摘要:井字棋https://www.acwing.com/problem/content/1727/ //set ans答案存储的是set< > 所以可以起到枚举一个队伍的作用 #include <iostream> #include <cstring> #include <algorithm> #inc 阅读全文
posted @ 2022-05-24 13:00 liang302 阅读(42) 评论(0) 推荐(0) 编辑
摘要:基础 求给出坐标轴的交集区间 求交集区间 c——————————d a—————————————b 所以交集就是 max(min(b,d)-max(a,b), 0) 当然可能没有交集 所以要和0取max max( 0,max(min(b,d)-max(a,b), 0)) ##简易扫描线 求区间即可 阅读全文
posted @ 2022-05-23 23:32 liang302 阅读(36) 评论(0) 推荐(0) 编辑
摘要:1.前缀和思想 2.树的角度 分类 二进制当前位的an 分成 0an-1 与 an 把最高位划分为一个个集合 左树是枚举1a(n-1)的情况下 进入右分支的方法就是让nums[i]的i++ 3.预处理 模板 int dp(int n){ if(!n) return 1; vector<int>num 阅读全文
posted @ 2022-05-22 15:54 liang302 阅读(32) 评论(0) 推荐(0) 编辑
摘要:技巧: 能用乘法就不用除法表示 1.进制 2.三元组 →注意到其中一个数可以枚举 3.贡献的作用 没做出来的rz题 1.让n尽量变少 有两种操作 减一个数 让一个数/2 错因:用了dfs 正确解法: while(n>0){ n=min(n/2,n-x); res++; } 2.区间分类讨论 操作一: 阅读全文
posted @ 2022-05-21 20:05 liang302 阅读(15) 评论(0) 推荐(0) 编辑
摘要:单调修改区间查询(两者相减) ##离散化 +树状数组 +LIS 最大上升子序列和 需要查询 #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; typed 阅读全文
posted @ 2022-05-21 16:48 liang302 阅读(109) 评论(0) 推荐(0) 编辑
摘要:xs[i]存储w[i]的值 | |通过排序 去重 存储有顺序去重的 w[i]的值 | |通过find(w[i]) 函数 获得w[i]在原来数组的相对顺序 求出离散化的值 lower_bound(xs, xs + sz, w[i]) - xs + 1; 阅读全文
posted @ 2022-05-21 15:22 liang302 阅读(13) 评论(0) 推荐(0) 编辑
摘要:##友好城市 https://www.acwing.com/problem/content/1014/ 画一条河的上下两岸 建桥 要求不能交叉 问最多建立多少道桥 转化成对于任何下河道的桥 转化为数组下表 上河道第几个桥变成数组的值 那么就是看LIS的值 数据给出一对值 如果不能保证单调上升说明这么 阅读全文
posted @ 2022-05-20 19:22 liang302 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1.选择“年轻”的讲师更好:年轻的老师更容易知道同学的难处,会更容易打高分 2.选择曾任职位没那么高的:当过院长级别的 变成讲师的话 一般都不好弄 要么是素质低犯大错,要么真学不到东西还为难你 3.选择近几年有过优秀丰富的大学经历的,像是近几年到过哈佛当过博士后计划的最好,“老古董”的话更严肃 4. 阅读全文
posted @ 2022-05-20 10:36 liang302 阅读(76) 评论(0) 推荐(0) 编辑
摘要:##求满足多个不等式组的元素 和题目给出上下界 与 题目所求 可以知道最最长路还是最短路 那么 求x[i]最大值 ⇔ 求所有上界的最小值 ⇔ 求所有从0→i的路径和的最小值 ⇔ 最短路求dist[i] 同理 求x[i]最小值 <=> 求所有下界的最大值 <=> 求所有从0→i的路径和的最大值 <=> 阅读全文
posted @ 2022-05-16 19:21 liang302 阅读(31) 评论(0) 推荐(0) 编辑
摘要:是不是强联通分量看他是不是能走回到祖先节点 阅读全文
posted @ 2022-05-16 12:56 liang302 阅读(20) 评论(0) 推荐(0) 编辑
摘要:#负环:一个环边权和<0 如果边权积走一圈,那么就求-logN #正环:最长路 ##a个b可以换成wc个d 求w最多设为0-1的哪个数 可以使得得到的数字最大 二分+判断负环https://ac.nowcoder.com/acm/contest/33187/D 所有边权值w*ci/ai 取-log 阅读全文
posted @ 2022-05-15 19:39 liang302 阅读(30) 评论(0) 推荐(0) 编辑
摘要:#prim 算法 使用于领接矩阵版本 与dijkstra极其相似 只是更新的矩阵的数量不同 #krukal算法 并查集 从小到大排序 一条边没有联通 就选择这条边 否则 如果联通就不选择这条边 ##求最大的边权最小 #include <iostream> #include <cstring> #in 阅读全文
posted @ 2022-05-15 18:43 liang302 阅读(26) 评论(0) 推荐(0) 编辑
摘要:注意输入!! ##并查集 注意更改合并根节点数量 要先更改数量 然后再合并结点 tle 请看看自己查父函数有没有return 或者使用 int find(int x)//找到x的祖宗节点。 { if(x!=p[x]) p[x]=find(p[x]); return p[x]; }//这样写对查询的某 阅读全文
posted @ 2022-05-15 14:19 liang302 阅读(48) 评论(0) 推荐(0) 编辑
摘要:pushup又命名更新 当子节点的数据发生了修改的时候就需要pushup 来更新当前节点 如build mofify 或者 用于重构一个答案节点quenry #pushdown 又名为延迟加和 传递 传递告诉子节点本操作做过的修改 当当前的节点的数据发生修改 或者之前修改了还没通知 下面的要使用数据 阅读全文
posted @ 2022-05-13 19:11 liang302 阅读(114) 评论(0) 推荐(0) 编辑
摘要:大小可变的二维数组 对于int p[m][n];这样大小可变的数组,可以使用如下方法: void Func(int p, int m, int n); //取p[i][j]时使用((int)p+ ni + j);代替 Func((int**)p, m, n);//调用函数的写法 原理:把p当作一个普 阅读全文
posted @ 2022-05-11 10:25 liang302 阅读(57) 评论(0) 推荐(0) 编辑
摘要:##牛的旅行https://www.acwing.com/problem/content/1127/ 求两个连通块连接后最大直径 (可能是连接之前的直径,可能是连接之后的最大值) 1.如果能到达 连接两个点的距离 建图 2.建图后floyd 3.取dmin #include <cstring> #i 阅读全文
posted @ 2022-05-06 16:32 liang302 阅读(45) 评论(0) 推荐(0) 编辑
摘要:##选择最佳线路 https://www.acwing.com/problem/content/1139/ 拓扑序 spfa不可以 但可以做负权 先求最短路 在找 bfs可以 djistkra可以 ##最短路计数https://www.acwing.com/problem/content/1136/ 阅读全文
posted @ 2022-05-05 18:09 liang302 阅读(69) 评论(0) 推荐(0) 编辑

主题色彩
点击右上角即可分享
微信分享提示