随笔分类 -  OI/LeetCode

都是OI
摘要:VSCode:搭建一个简易的 C++ 环境 status: update if needed; description: 比如刷刷 LeetCode,就不需要特别多的配置,简单的环境就够了; 0x00 首先新建一个 Profile: 比如这里明命名为 C++: 0x01 安装这些插件: vim 看个 阅读全文
posted @ 2023-08-22 17:32 miyasaka 阅读(72) 评论(0) 推荐(0)
摘要:写给我的好友,供她参考 复习: 指针 动态内存 类 构造函数 成员函数 动态内存 c 和 c++ 不同风格区分: c++: new delete c: malloc() free() Remark. 函数在 C 语言中就出现了,在 C++ 中仍然存在,但建议尽量不要使用 malloc() 函数。ne 阅读全文
posted @ 2023-03-06 21:10 miyasaka 阅读(49) 评论(0) 推荐(0)
摘要:// // main.cpp // P1137 旅行计划 // // Created by CONIO on 2020/12/14. // #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #i 阅读全文
posted @ 2020-12-14 15:15 miyasaka 阅读(192) 评论(1) 推荐(1)
摘要:// // main.cpp // P1656 炸铁路 // // Created by CONIO on 2020/12/14. // #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #in 阅读全文
posted @ 2020-12-14 14:40 miyasaka 阅读(75) 评论(0) 推荐(0)
摘要:ACM Template 数据范围 类型 最小值 最大值 unsigned int 0 4294967295 (2^32 - 1) int -2147483648 2147483647 (2^31 - 1) unsigned long 0 4294967295 (2^32 - 1) long -21 阅读全文
posted @ 2020-12-13 18:41 miyasaka 阅读(115) 评论(0) 推荐(0)
摘要:"LGOJ P3388 【模板】割点(割顶)" 给定一个有向图(可能不联通),求这个图上所有的割点。所谓割点,就是在删除这个点之后,图的连通分量+1。 这里使用的是$Tarjan$算法——但是要注意,这里割点的$Tarjan$和求 "强连通分量" 的Tarjan是有区别的。区别还很多,主要是以下几个 阅读全文
posted @ 2019-11-15 14:04 miyasaka 阅读(135) 评论(0) 推荐(0)
摘要:"LGOJ P1966 火柴排队" 给定两个数组,对之一进行 相邻元素 的移动使得: $$ \sum (a_i b_i)^2 $$ 最小。 对原式做变形: $$ \sum (a_i^2+b_i^2 2a_ib_i)\\ \\ \\ =\sum a_i^2 +\sum b_i^2 2\sum a_ib 阅读全文
posted @ 2019-11-14 20:43 miyasaka 阅读(140) 评论(0) 推荐(0)
摘要:"P1484 种树" 思路太难想了…… 不难想到转移方程: $$ f[i][j]=max\{ f[i][j],f[i 1][j],f[i 2][j 1]+a[i] \}; $$ 再看了一眼数据范围……emmmmmm……糊锅了…… ~~(25行代码捞40分算了)~~ 正确做法是用 双向链表+优先队列 阅读全文
posted @ 2019-11-14 20:24 miyasaka 阅读(136) 评论(0) 推荐(0)
摘要:LGOJ P5651 基础最短路练习题 ####注意到,保证G中不存在简单环使得边权异或和不为0。 也就是说,如果某两点存在多条路径,无论这个路径是怎样走最终的异或和都是相同的。 这意味着我们可以把边权转化为点权。 这样,路径长度$d$的定义(用$\oplus $表示异或: \[ d(u,v)= w 阅读全文
posted @ 2019-11-14 11:15 miyasaka 阅读(702) 评论(0) 推荐(0)
摘要:"LGOJ P1018 乘积最大" 首先不难想到状态转移方程: $$ f[i][j]=max\{ f[s][j 1] \times calc(s+1,i) \} , s \in (0,i) , i\in [1,n], j\in [1,K] $$ $f[i][j]$表示在$i$位置时已经用了$j$个乘 阅读全文
posted @ 2019-11-14 11:01 miyasaka 阅读(112) 评论(0) 推荐(0)
摘要:"画地为佬" 没有想到什么好的算法……感觉很暴力的样子…… 大致思路是先找一个刚刚好不越界的大正方形块,然后一根一根围墙往上加。 首先考虑方块数量与围墙之间的关系: 1. 方块的数量是$1^2$ 围墙的数量是$2 \times 1 \times(1+1)$ |0| | | 2. 方块的数量是$2^2 阅读全文
posted @ 2019-11-12 23:42 miyasaka 阅读(138) 评论(0) 推荐(0)
摘要:"LGOJ P1772 [ZJOI2006]物流运输" ~~本来想着用什么状态压缩结果t飞了……~~ 普通的dp就可以了。 动态规划,最短路径 首先可以列出状态转移方程: $$ f[i]=f[i s]+s d[i s+1][i]+K, \quad s \in (0,i] $$ 其中,$d[i][j] 阅读全文
posted @ 2019-11-12 12:55 miyasaka 阅读(68) 评论(0) 推荐(0)
摘要:"[USACO5.3]校园网Network of Schools" $Tarjan$板子+特判 不是很懂这个数据范围为什么是$10^2$害的我一直在想什么$O(n^3)$、$O(n^4)$的算法…………结果似乎是个$O(n^2)$的…… 先$Tarjan$缩点; 1. 子任务A:输出入度为零的点的个 阅读全文
posted @ 2019-11-12 09:08 miyasaka 阅读(131) 评论(0) 推荐(0)
摘要:"LGOJ P5021 赛道修建" 二分答案,贪心 ~~(打完了LCA的板子才发现自己不会这么做)~~ 形如: 求最小值的最大值 求最大值的最小值 这样的东西,十有八九就是二分答案了。 在这个情景下我们二分的是当前赛道允许的最短长度$L$。我们将检查,在这个最短长度$L$的限制下,能否构造大于等于m 阅读全文
posted @ 2019-11-11 15:09 miyasaka 阅读(94) 评论(0) 推荐(0)
摘要:"P2085 最小函数值" 这题好水……但是还是写一写吧…… 問題の解 用$now[i]$记录使得当前状态下$f_i(x)$取得最小值的自变量的值。 初始化: 初始状态,我们有$n$个二次函数$f(x)=A_ix^2+B_ix+C_i,x \in \mathbb{N}^+$; 1. 对称轴$ \fr 阅读全文
posted @ 2019-11-11 14:08 miyasaka 阅读(117) 评论(0) 推荐(0)
摘要:"LGOJ P1083 借教室" 問題の解 线段树模板往上一打……T了一个点……不过o2可以AC…… 问题是在比赛中我感觉我会懒得手打线段树…… 于是我看了看标签——!!!! 差分数组+二分答案 关于为什么可以用二分: 关于二分答案: 一般来说,二分是个很有用的优化途径,因为这样会直接导致减半运算, 阅读全文
posted @ 2019-11-09 11:29 miyasaka 阅读(106) 评论(0) 推荐(0)
摘要:"原题press_here!" ~~懒得再抠题目过来了~~ 問題の解 考虑状态转移方程: $$ dp(i)=dp(i 1)+[a_i是a_1,a_2,...,a_{i 1}的某种线性组合], \quad i 1 $$ 其中,中括号内的命题为真时其值为$1$,否则为$0$。 然后是记忆化搜索 ~~想着 阅读全文
posted @ 2019-11-08 23:54 miyasaka 阅读(110) 评论(0) 推荐(0)
摘要:"原题戳这里" 题目描述 是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有 $n$ 个矿石,从 $1$到$n$ 逐一编号,每个矿石都有自己的重量$w_i$以及价值$v_i$ 。检验矿产的流程是: 1. 给定 m 个区间$L_i,R_i$ 2. 选出一个参数$W$; 3. 对于一个区间$[L 阅读全文
posted @ 2019-11-08 21:41 miyasaka 阅读(174) 评论(0) 推荐(0)
摘要:比较有趣的一个问题~ 题目描述 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。 有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。 但是,他的行程安排得很满,他已经买好了去邯郸的 阅读全文
posted @ 2019-11-08 13:03 miyasaka 阅读(122) 评论(0) 推荐(0)