Problem A

Problem B

考虑第二种优惠,每一个物品如果原价购买了,

那么向可以免费拿的那个物品连一条边(在树上被指向的那个点是父亲)

如果不考虑环的话,考虑树上DP。

设$f[i][0]$表示买掉以$i$为根的子树需要的最小花费,

设$f[i][0]$表示买掉以$i$为根的子树并且$i$这个点是原价购买的最小花费。

那么买掉$i$子树的最小花费和为$f[i][1] - p[i]$,就可以转移了。

分开考虑每个连通块。

每个连通块是一个环的结构。

先用刚才树DP的做法得到每个点的值,然后在环上DP。

具体一点,把环断开来,枚举链头是原价买的还是被链尾打包了。

然后就类似刚才的方法DP下去就可以了。

Problem C

Problem D

Problem E

设$f[i][j]$为以$i$为根的子树所有连通块大小为$j$的权值和。

这是一个可逆的DP。

把一个点加到某个点的儿子集合中去,这个DP比较显然,我只要合并两个数组就可以了。

这样的话把一个点从某个点的儿子集合中剥离出来,也是可以做到的。

操作$0$的话很简单,从这个点到$10$级祖先一个个剥离,然后更新这个点的数组,

然后一个个放回去就可以了。

操作$1$的话,从这个点到$10$级祖先一个个剥离,

然后从这个点的父亲开始一个个放回去(这个点要给别人了)

然后被加的那边也是类似的操作。

操作$2$也就是询问很神奇。首先继续从这个点到$10$级祖先一个个剥离。

这个过程其实也可以看作是把$10$棵树各自分离。

然后询问的时候把当前点想象成根,把他的原来的祖先的数组合并到他那里

这样处理就很方便,然后撤销就可以了。

Problem F

Problem G

Problem H

Problem I

模拟,考虑两条对角线控制的$8$个点,这$8$个点为$1$组,然后讨论下取个最大值就可以了。

Problem J

比赛的话也只能靠做做这种题活命了……

给每个点赋一个比较大的数,如果一个点被操作了$x$次,并且被操作的数都是这个点的权值本身$y$的话。

那么我们可以给他计算一下在他身上操作过的数的和。

最后如果等于$xy$,那么就活着。

那么问题转化成了二维前缀和,就可以做了。

Problem K

首先行和列是可以分开考虑的。

对于每一行,求出这一行的循环节可以是哪些数。

这个哈希搞一下就可以了。

这个循环节跟平时的不太一样,

意思是如果复制无限次后能覆盖当前整行就行。

显然如果一个数可以作为所有行的循环节,那么这个数就可以作为矩阵的长。

那么列这边也是同样的道理。

最后求一下子矩阵最大值的最小值,滑动窗口就行。

转载于:https://www.cnblogs.com/cxhscst2/p/9385350.html

2018 牛客多校 2相关推荐

  1. 2018牛客多校第一场 Monotonic Matrix (LGV引理)

    链接:https://www.nowcoder.com/acm/contest/139/A 来源:牛客网 题目描述 Count the number of n x m matrices A satis ...

  2. Splay ---- 2018牛客多校第三场 区间翻转搞区间位移 或者 rope可持久化块状链表

    题目链接 题目大意: 就是每次把牌堆中若干个连续的牌放到堆顶,问你最后牌的序列. 解题思路: Splay 区间翻转的模板题: 对于一个区间[1,2,3,4,5,6,7,8][1,2,3,4,5,6,7 ...

  3. 2018牛客多校第一场 B.Symmetric Matrix

    题意: 构造一个n*n的矩阵,使得Ai,i = 0,Ai,j = Aj,i,Ai,1+Ai,2+...+Ai,n = 2.求种类数. 题解: 把构造的矩阵当成邻接矩阵考虑. 那么所有点的度数都为2,且 ...

  4. 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...

  5. 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他...

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...

  6. 2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲

    2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲 题目链接 做法:模拟即可 #include <bits/stdc++.h> #define P pair<int,in ...

  7. 牛客多校三 B Black and white

    牛客多校三 B Black and white 在n*m的棋盘上,每个格子有一个数,初始可以选一定的格子标记为黑色,在任意四个形如(i1, j1)(i1, j2)(i2, j1)(i2, j2)的格子 ...

  8. 2019牛客多校第一场

    2019牛客多校第一场 题号 题目 知识点 A Monotonic Matrix B Symmetric Matrix C Fluorescent 2 D Two Graphs E Removal F ...

  9. LCS(2021牛客多校4)

    LCS(2021牛客多校4) 题意: 让你构造三个字符串s1,s2,s3,长度均为n,要求LCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=c 题解: 先考虑三个串互相LCS为 ...

最新文章

  1. element-ui表格缩略图悬浮放大
  2. flex属性值----弹性盒子布局
  3. 分数调查 HihoCoder - 1515(带权并查集)
  4. JPA休眠替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?
  5. python如何实现小车行走_[详细推导]基于EKF的小车运动模型的python编程实现
  6. 大数据分析方法有哪些
  7. 三网物联卡的优缺点有哪些
  8. c语言 fread读指定字节,fread函数 c语言中fread函数怎么用
  9. 跳过密码卸载OfficeScan
  10. webservice 实例 创建与 调用
  11. 东财《组织行为学X》综合作业
  12. word自动生成目录如何设置第一页和页码不齐问题
  13. echarts渐变色
  14. 微信公众号和web项目聊天表情转化
  15. 移动硬盘无法识别是怎么回事?还能数据恢复吗?
  16. centos(11)-ps进程管理
  17. 先验分布 后验分布 似然估计
  18. 数据库中的多表联查(四表联查)
  19. 毕业设计-基于微信小程序与云开发的成绩查询系统
  20. 【Algorithm】Prim

热门文章

  1. echart单击后获取横坐标值_新、老、离职员工名单只要刷新一下就能轻松获取|Excel125...
  2. AcWing 4. 多重背包问题(多重背包 朴素版)
  3. 大php,厉嗨了我大PHP
  4. node.js学习之路(1)
  5. 《OpenGL ES 3.x游戏开发(上卷)》一2.4 文件I/O
  6. Druid、C3P0、Tomcat Pool的性能测试与选型
  7. Sep 12.1.4112.4156部署客户端
  8. 0. SQL Server监控清单
  9. 分享:Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据
  10. Linux Shell常用命令学习(1)