03 2023 档案
摘要:
阅读全文
摘要:思路: 发现直接去存所有的数,一定会超时超空间 那么如何去get到某个数呢? 二分 (遇到第K大, 一般也是利用二分处理) 二分某个数看他是 第几大, 枚举ai ,然后判断相应的bi有多少个, 这里在线直接判断bi是logn的 因此要先预处理,利用捅记录数的次数然后利用前缀和处理, 这样就是 O1的
阅读全文
摘要:数据范围 L-R<=1e18 思路: 稍微一想就可以知道, 3-friendly 的数其实很多的 然后这些想想这这些情况, 被3整除利用 各个位数相加可以被3整除 然后利用 取模 优化, 1 2 ,发现: 1 1 , 2 2 ,1 ,2 是不可以的 111 ,222 ,12 , 21 都是可以的,
阅读全文
摘要:用于: 统计数位于数位的相关信息的计数问题, 通常会问在某个区间内, 利用减法思维,这样就会减少一个边界的判断 此时就会只有一个边界, 这个边界 利用 lim 处理, 在暴力枚举的时候不要超过lim 就行了 记忆化搜索递归的过程, 就是一个完全的暴力, 不过有记忆化搜索, 所以他的时间复杂度是 DP
阅读全文
摘要:
阅读全文
摘要:思路: 看到数据范围很小, 暴力, 不是n^n 暴力,而是 利用next_permutation(p+1,p+1+n); n!去实现这个东东 do .... while(next_permutation(p+1,p+1+n)); 牛逼, 这个只能用数组,不能结构体,于是就新建一个这个数组然后去映射就
阅读全文
摘要:思路: 关键是操作2的性质: 随机找->找一个路径最长的点 操作1,阻止建边顾名思义, 发现和最短路很想, 从n到每一个点的权值嘛 改变权值更新方式, 边的权值为: val[i]+前面那个点是第几大的, (这里每一个出度的点都要算) ->满足题目要求 然后 这个第几大,利用出度来优化, 更新一个后就
阅读全文
摘要:思路: 关键性质是赋值是由跟到某个点,然后权值是不减序列 从叶子节点进行回推, 由于是不减序列,而且为了然后父亲节点能够白嫖,于是让儿子节点的权值尽量大就行了, 然后就看父亲点能不能白嫖, 不能操作就+1.
阅读全文
摘要:博弈题 都可以搜索做 (不考虑时间复杂度时) 发现3x3可以接受, 用记忆化搜索优化一下 情况通过hash思想得到 直接就 3进制去get (不用去mod)
阅读全文
摘要:题目大意: 给出一个树, 每一个节点有一个 ai值 和bi值
阅读全文
摘要:思路: 第一眼看到这个题,就准备直接用莫队去做, 每一次l ,r 第一次遇到一个数的次数是奇数就不做处理, 之后就要^异或一下来处理, 次数是偶数本来就要处理, 就不用说了, 这样就符合题意 不过出题人,把莫队卡掉了 首先可以根据异或性质 把问题转化为 A 通过前缀思想处理 B通过对询问排序后处理
阅读全文
摘要:DP公式 推一下 没有看懂下面这个样例啊, 每一个元素应该没有限制套件呀
阅读全文
摘要:注意点: style 检擦是 rough的 看看如何submit 有测试去测试我的程序 构造函数的实现为空实现,不应该2个都要有吗 GPXEeption 和 IOexcepiton 的区别 多个海拔最小的点,怎么办 当只有一个点的时候,距离是有效还是无效
阅读全文
摘要:题目大意: 给出一个树, 每次给出2个相同高度的点, 然后依次向父亲走, 问 val[a]*val[b]这些值加起来是多少 思路: 直接map映射关联容器,时间复杂度过大 根号分治? 于是不决, 节点深度 小于根号n的记忆化搜索 大于根号n的暴力搜索 点很少. 对于统一深度 的点又可以离散化
阅读全文
摘要:后记; 先贪心的想想能在n内构造出的情况是什么样子的 用特殊数字去构造, 或者暴力打一个表, 来观察规律
阅读全文
摘要:File = new File (""); scanner sc= newscanner(File).. writeout...
阅读全文
摘要:try { } catch(exception ){ } finally , nxt statement || throw 给用户操作,或提示 执行顺序: try遇到 exception 时 就停止了 有匹配的exception 就运行 catch finally 无论是么时候 都要运行 nxt s
阅读全文
摘要:思路; 遇到数学公式,一层一层剥开 发现 那个式子就是 求 n 内的 每一个数 的倍数在n 以内的数量, 明显数论分块来处理这个问题 然后就是 因子的^2, ^3 , 这个子问题 1^3+2^3+3^3+……+n^3 = [n(n+1)/2]^2 取模 2^64, 直接用 unsigned long
阅读全文
摘要:思路: 题目性质: 将往上走没有收益的, 往下走也没有收益 (除非下面刚好有一个) 然后就考虑左右的清空, x轴, y轴为时间 , 然后 两两 之间可以到达时(赶在后面时间之前)来连一个边 按时间从小到大排序 DP[i] 表示 选i时吃的最多的兵 DP[I]= MAX(DP[J])+1 , j 是可
阅读全文
摘要:因为A,B长度相等, 明显要去以这个为单位长度去处理 然后 发现 1,2,,3,4... 满足调和级数 nlongn的复杂度,
阅读全文
摘要:思路: 性质一直都是1,N 的满区间 前面3个直接利用值域线段树即可 后面一个就利用优先队列存被改的数,然后暴力恢复就行, 因为最对被改m次嘛\\ #include<bits/stdc++.h> using namespace std; #define ll long long const ll m
阅读全文
摘要:提取性质: 关键: 改完一个点,就不能恢复 2个点在一起 一定不能改 于是根据上面2点,枚举每一个点 看看这个点需不需要改,如果要改就建一个边就行了, 然后拓扑序一下 另外的思路:
阅读全文
摘要:思路: 通过题目就可以转化题意为: 让 pi!=i &&pi !=ai 发现合理的队列很多,就通过随机数去产一个队列出来 shuffle: random_device gen; mt19937 rd(gen()); shuffle(p+1,p+1+n,rd); #include<bits/stdc+
阅读全文
摘要:每一个小模块的函数都要交吗 他的测试函数是不一样的呀, 只有一个大的测试东西
阅读全文
摘要:思路: 有检测时 偶数分成2个奇数最优 奇数 一偶一奇 没有检测时 就每一只放在一个笼子里面
阅读全文
摘要:法一: 贪心得缩小调价: 让每一个矩阵的值都是一样的 性质: 捞捞利用位运算的性质, 每次+4, 因为4是二ni次, 就是一直在某个位上面加一个东西 然后在第排的时候,加入新的数的时候,发现可以直+ 1<<(lg2m +1) 然后剩下的位保持不变和上面一样就行 最高位两两异或一定是可以^约掉; 法二
阅读全文
摘要:别人的思路; 对于第一个问题求最小: 尽可能让连续的2个1放一个房间就行,最多m/4 对于第二个问题: 尽可能让不是11连续的位置为 double公寓, 因为每有2个1就会减少一个 ans,(先想出所有的1然后利用减法思维,很巧妙) 2个2个判断的时候 +2的思想很妙 #include<iostre
阅读全文
摘要:性质: 栗子
阅读全文
摘要:Nand 只有2个都是1,才是0. multiple way: 看看下面是如何一步一步推导的 注意区分 multiple bit 和 multipel way
阅读全文
摘要:1 一定要在.h里面把所有东西给声明, 不然就会报错 一定要注意函数声明的格式
阅读全文
摘要:一定是下面这个语句顺序 不能交换 HAVING 使用前提是一定要先分组 GROUP BY 分组后 ,就是以组为单位了, 合成一个东西了,合成后产生的附加值就是聚合函数的内容, 就是聚合函数来增加 cout avg 啥的都是单个组的内容 order by ASC 升序(默认) DESC; (降序) h
阅读全文
摘要:找1, 圈 2的ni次 按照那个啥对表进行标记就好了 左边是隔一位那个啥. 用更少的圈,把所有1圈到
阅读全文
摘要:字符串 是开辟一个空间放, 相同的字符串用同一个地址(
阅读全文
摘要:用的时候记得打开那个 mysql 服务器
阅读全文
摘要:将问题转化为 已知的数学问题, 抽象化, 比如 01,问题 01 的排版放置, 思考如何对放的位置经行修饰以此来满足题目条件 at most 时 一定要考虑0的情况, 很多时候,都要如此 计算P的时候 不要写成 C的了 可以利用动态规划去解决问题,当不能直接想出来的时候, (
阅读全文
摘要:大佬的思路: #include<bits/stdc++.h> using namespace std; int n,k,l[200010],r[200010],pos[200010]; char c[200010]; vector<int>seq; void precalc(int u) { if(
阅读全文
摘要:乘法原则: 有序 (位置顺序造成影响) 完整 独立 (每一步) 栗子 : 加法原则: 每一个结果是互斥的 把所有互斥情况进行整合考虑 减法思维: 总的情况 不想要的情况 当正面不好想的时候,就可以反向思考
阅读全文
摘要:下载并且安装 deb文件 dpkg -i 安装 启动程序 Linxu 远程mysql?
阅读全文
摘要:思路: 这种明显先从贪心找性质进行处理,其他的不是马上能想到 如是发现 a只能往后面移动 c只能往前面移动, a和c不能交换顺序 利用减法思维, 当2个数确定了, 那么b也就确定了 其实这种贪心题, 一般就是要减法思维, 把一些难处理的地方,给他扔掉,开贪!!! #include <bits/std
阅读全文
摘要:思路: 很多交互题, 大多要用二分, 这道题也不例外, 因为满足递增的条件 但是这个的操作复杂度是 nlogn的, 6000,一定不行的, 不要看到 nlogn 就认为是一定行的(中途想到了,但是还是就放掉了,md) 于是发现都是小写字母 一定要用26这个小写字母特性条件条件 这个东西来优化一下就行
阅读全文
摘要:思路: 最小的最大值,明显二分思想 ck的时候明显用贪心 发现正着贪心比较难处理 反之贪心,很好搞, 但是又发现他的顺序是固定的 这个时候不要被骗了, 虽然是固定的,但是我们就一定要去正着做吗 依然可以反着做, +一个约束条件就行了 (当前删除的值 要比本身修改前小) #include <bits/
阅读全文
摘要:这个地方和java一样 private , set,get
阅读全文
摘要:思路: 首先有一个结论, 一个队列里面, 顺序从小到大 , 两两元素的xor 最小, 一定是 某2个相邻元素的最小, 利用这个最小值就可以去解决存在类型的问题啥的
阅读全文
摘要:一种数据结构而已, 按照字符来储存, 通过以有的信息来优化空间, 从根节点到尾部来表示这个字符串 他的很多功能要利用 树上DP的思想去使用 #include <bits/stdc++.h> using namespace std; #define ri int #define M 3000005 i
阅读全文
摘要:################################### keyyyyyy
阅读全文
摘要:结构体可以嵌套结构体 const 表示只读, 防止误操作
阅读全文
摘要:思路: 发现数据范围500, 时间复杂度为 n^3 于是明显DP 当然这里面有一个贪心思路, 当前的点比前面一个点的速度低,就没有必要删除 但是这里的dp不用这个贪心,不然实现上复杂一点 直接就连续删除就行, 因为DP的时候一定会把最优的更新出来 然后这里有一个问题, 就是不知道那个点删了没有, 就
阅读全文
摘要:需要的技能: linux下的代码编程 makefile 进行代码编译 shell 需要提出的问题: 第一个文件是只有P2吗 当前问题: 当多个错误同时犯的时候, 因该怎么办,只是返回第一个错误吗,还是返回其他错误100 宽带 高度 最大灰度错误的输入数量错误时,时新的问题吗? retur 关于错误
阅读全文
阅读目录(Content)
此页目录为空