摘要: 基本算法2-1 贪心选择放置放大器的点 设$dep[i]$表示$i$子树内离他最远的距离,$dis[i]$表示$i$到他父亲的距离 只有当$dep[i]+dis[i]>初始值$才需要一个放大器,然后把这个点的dep[i]清零 这样贪心一定最优 code 1 #include <bits/stdc++ 阅读全文
posted @ 2019-10-17 15:36 喵の耳 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 在咕了 Updated 基本算法1-2 把$p,j$看成$1,-1$ 前缀和维护区间 区间$[l,r]$合法当且仅当$sum[l]≤sum[i]≤sum[r]$ 当存在$p>x$且$sum[x]>sum[p]$时$x$不合法 发现$x$满足单调性 单调队列维护然后在单调队列上二分 一个记录当前仍符合 阅读全文
posted @ 2019-10-17 14:22 喵の耳 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目及思路来自 hzwer.com 题目来自LOJ数列分块入门by hzw 持续咕咕咕中~ 数列分块入门1 区间加,单点查询 code 1 void add(int a,int b,int c){ 2 for(int i=a;i<=min(b,blo[a]*block);i++){ 3 v[i]+= 阅读全文
posted @ 2019-10-16 19:21 喵の耳 阅读(185) 评论(0) 推荐(1) 编辑
摘要: 状态转移: 设$f[i][j]$为第$i$天一共有$j$张股票 1. 不卖也不买 $f[i][j]=max(f[i][j],f[i-1][j])$ 2. 买入 $f[i][j]=max(f[i][j],f[i-w-1][j+k]-k*bp[i])$ 3. 卖出 $f[i][j]=max(f[i][j 阅读全文
posted @ 2019-10-16 15:13 喵の耳 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 基本算法1-1/2-3 堆贪心 贪心每次取湿度最大的,堆维护 code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespace gengyf{ 4 const int maxn=5e5+10; 5 inline int read() 阅读全文
posted @ 2019-10-16 14:56 喵の耳 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 首先转化题意 给定一个$n*m$的矩形,每行取一个数使得取出的数总和最大 满足 1.每行取出的数在上一行取出的数的右边 2.每一行取走的数的列数大于该行的行数 3.每一行能取的最大花瓶数小于等于$m-(n-当前行数)$ 转移 设$f[i][j]$表示从第一行到第$i$行选择第$j$个的最大价值 转移 阅读全文
posted @ 2019-10-15 15:27 喵の耳 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 又更新且咕咕咕的东西 阅读全文
posted @ 2019-10-15 11:51 喵の耳 阅读(47) 评论(0) 推荐(1) 编辑
摘要: 位运算一定要加括号!!! 我因为这个调了40分钟 嗯?01网格图,再看看数据范围,$n,m≤12$,嗯,状压没跑了 $F[i]$表示第$i$行的状态 $f[i][j]$表示前$i$行状态为$j$的合法方案数 $g[i]$表示状态是否合法 左右都是0的状态才合法,当且仅当$i<<1$和$i>>1$都为 阅读全文
posted @ 2019-10-14 20:01 喵の耳 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 刚讲过的题 向左跳会跳到 ${a_{i-1}-(a_1-a_{i-1})}$ 即 ${2*a_{i-1}-a_i}$ 向右跳会跳到 ${a_{i+1}+a_{i+1}-a_i}$ 即 ${2*a_{i+1}-a_i}$ 对点$i$进行操作,期望为 ${a_{i+1}+a_{i-1}-a_i}$ 暴力 阅读全文
posted @ 2019-10-14 10:16 喵の耳 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 将集合点作为左部点,景点作为右部点,跑二分图最大匹配 主要是建图不太好想 考虑什么时候小狗能和主人汇合,因为小狗的速度可以是主人的两倍 枚举每个集合点和景点,如果主人从集合点$A$到集合点$B$的距离大于小狗从集合点$A$到景点再到集合点B的距离$÷2$就可以连边 code 1 #include < 阅读全文
posted @ 2019-10-11 15:50 喵の耳 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 暴力大法吼啊 先跑两遍$dfs$求树的直径,记录下直径上的点,暴力跑从每个点出发不经过直径的的树上最远距离点的路径(领会精神 最后都经过的路径就是答案 某位大佬说的 理论上复杂度$O(n*sum)$当树是一条链时会退化(?)成$O(n^2)$ 然而某谷数据水,没判也能A code 1 #includ 阅读全文
posted @ 2019-10-10 15:38 喵の耳 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 前言 今天实在是太冷了!!! o(*////▽////*)q 导致我这个菜鸡硬生生把一道数位dp写成了组合数水过(还不是因为数位dp题解没看懂 显然题意都告诉你了,$sum(i)$表示二进制位下的几个一,可以想到组合意义,在一个$i$位的二进制数中填$j$个1的方案数 预处理个50*50的杨辉三角, 阅读全文
posted @ 2019-10-10 15:16 喵の耳 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一个状态超多的dp 考虑对食物转移,设f[][0/1/2/3]表示不被选/被左吃/被右吃/被两边吃 只要考虑全每一种状态即可 dp code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespace gengyf{ 4 #define 阅读全文
posted @ 2019-10-10 09:00 喵の耳 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 标题没有打错没有打错没有打错 真·最短路计数和标签"最短路计数" NOIp2017 逛公园 弱化 P1608 路径统计 在跑spfa的同时记录一个tot数组统计路径条数 如果搜到的点到起点的距离等于当前点到起点的距离加上这两点间的那条边的距离,那么就将搜到的点的路径数加上当前点的路径数 如果更新了搜 阅读全文
posted @ 2019-10-08 15:29 喵の耳 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 先%王第一$OTZ$,$tql$ 然后...题解我咕了,移步王第一 code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespace gengyf{ 4 #define ll long long 5 const int maxn=1 阅读全文
posted @ 2019-10-08 09:44 喵の耳 阅读(136) 评论(0) 推荐(0) 编辑